前段时间因需要扫描全网,然后就选择了用zmap  

但是很多机房限制特别多,不让长时间syn 扫描。看了一篇文章之后尝试拿了六台机器扫描了全网,大概扫描了2个小时




zmap 你的参数 --shards=N --shard=n -seed=一个固定的数

例如:

zmap -B 50M -p 80 -n 100% -o results.txt --shards=6 --shard=3 --seed=123

如果出现错误。请指定网卡(网卡名称e2tho2)  

例如:

zmap -B 50M -p 80 -n 100% -i e2tho2 -o results.txt --shards=6 --shard=3 --seed=123

–shards = 代表总数
–shard= 当前(0 开始的)
–seed= 随机密码
等待两个小时之后

扫描完之后可以自己随意扫描你需要的东西。然后就写了一个py 扫描指定一些参数

#coding: utf-8
import socket
import time, os
import threading
import sys
import requests
import argparse
from concurrent.futures import ThreadPoolExecutor

def check_dir(txt, listdir, timeout=3):
    #print(txt,listdir)
    listdir='xxx' #网站标识符文件
    f = open('ip.txt', 'a+')
    url="http://%s/%s"%(txt,listdir)
    print(url)
    rec=requests.get(url)
    if str(rec).find('200')!=-1:
        ret=rec.text
        #print(ret)
        import re
        if len(re.findall('.mfp-bg', ret))>=1:
            print('YRS OK %s'%txt)
            f.write(url+'\n')
            f.close()
        else:
            print('NOT  %s' % txt)
    else:
        print('NOT  %s'%txt)

txt = sys.argv[1]
listdir = sys.argv[2]
thread=sys.argv[3]

if not os.path.exists(txt):
    exit('not is txt file')
else:
    f=open(txt,'r')
try:
    with ThreadPoolExecutor(thread) as exector:
        for i in f:
            i=i.strip()
            response = exector.submit(check_dir, i, listdir)
            if response:
                pass
            else:
                pass
                #print(response)
except Exception as e: