ZMAP扫描mongodb配合多线程验证脚本
安装环境:
下载zmap:
安装zmap:
(kali安装zmap还需要另外安装json-c)
个人比较喜欢用配置文件来扫描。
用python写了个批量验证zmap的扫描结果是否存在未授权访问的脚本。
一开始的代码没设置超时,结果发现才跑了一下子就卡住了,查了半天pymongo的官方文档,找到了connectTimeoutMS、socketTimeoutMS这两个参数。
设置连接超时connectTimeoutMS,不知道为啥没起作用,又改成设置socket的超时时间socketTimeoutMS才有效。
pymongo默认连接数为100,所以代码中的线程数为99,大家可自调。
附上 习科联创写的多线程验证脚本:
sudo apt-get install build-essential cmake libgmp3-dev libpcap-dev gengetopt byacc flex git dwarfdump
下载zmap:
git clone git://github.com/zmap/zmap.git
安装zmap:
cmake -DENABLE_HARDENING=ON
make && make install
(kali安装zmap还需要另外安装json-c)
个人比较喜欢用配置文件来扫描。
zmap -C /etc/zmap/zmap.conf -o output.txt
用python写了个批量验证zmap的扫描结果是否存在未授权访问的脚本。
一开始的代码没设置超时,结果发现才跑了一下子就卡住了,查了半天pymongo的官方文档,找到了connectTimeoutMS、socketTimeoutMS这两个参数。
设置连接超时connectTimeoutMS,不知道为啥没起作用,又改成设置socket的超时时间socketTimeoutMS才有效。
pymongo默认连接数为100,所以代码中的线程数为99,大家可自调。
附上 习科联创写的多线程验证脚本:
#/usr/bin/python
#coding:utf8
import sys
import pymongo
import urllib2,threading,time
import sys
from Queue import Queue
def conn(addr,output):
try:
w = open(output,'a')
conn = pymongo.MongoClient(addr,27017,socketTimeoutMS=3000)
dbname = conn.database_names()
wr = "Ip: "+addr+"\r\n"
wr += "dbs:\r\n"
wr += str(dbname)+"\r\n"
w.write(wr)
print wr
conn.close()
w.close()
except:
print addr+" connection was failed\r\n"
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
global queue
while not queue.empty():
ip = queue.get()
conn(ip,sys.argv[1]+".txt")
if __name__ == "__main__":
queue = Queue()
a = open(sys.argv[1],'r')
for ip in a.readlines():
ip = ip.strip('\n')
queue.put(ip)
for i in range(99):
c = MyThread()
c.start()