之前看过不少大佬的文章,提到nmap扫描准确,并且显示信息详细,但是速度太慢;masscan扫描快但是不会显示端口服务的相关信息,二者结合起来使用会有很不错的效果。后来经@罐罐大神邀请参加了济南defcon会议,在会上听@硬糖大神介绍了他设计这款扫描器的思路,于是想着自己以后有空也弄一版尝试一下。看过一些大佬们写的工具,很多都用到了数据库来存储扫描结果,我第一版只想弄一款高效易用的,存储结果就用txt保存了。

安装配置

我用的是python2.7版,首先需要下载masscan,下载地址:https://github.com/robertdavidgraham/masscan,需要安装编译,安装方法如下:

安装完成后的可执行程序在masscan/bin目录中。

代码逻辑

程序主要的逻辑是先从文本里读取目标ip列表,启用多线程扫描ip列表。扫描过程是先调用masscan扫描全端口,然后调用nmap进行端口服务识别,如果是web服务,把web的url、端口及title都打印出来;如果非web,只打印ip、端口及服务名称。

功能讲解

首先从文本中读取ip资产列表,启用多线程扫描,这里设置的是100线程,可以自己根据情况设定:

然后调用masscan进行端口扫描,这里要注意masscan的发包速率设置,如果设置过大漏报率会比较高,建议设置1000-2000,我这里设的是1000。masscan扫描完后会生成一个json文件,然后从中提取相关端口信息。这里参考了硬糖大神提到的扫描时遇到防火墙的问题,就是如果在扫描过程中发现目标主机几乎每个端口都开放,那说明很可能是有防火墙,这种情况可以设定一个端口数量阈值,超过阈值则直接跳过,扫描下一个ip(是的,目前就是跳过,就是躲开不搞的意思,以后再研究怎么硬搞),这里我设置的阈值是50:

接下来调用nmap识别端口对应的服务,如果识别出来是web服务则通过Title函数来识别对应的网站title信息:

识别网站title信息这里我首先识别了网站采用的编码,因为如果不加识别直接按UTF-8或GBK来解码有时候会出错,只有识别了对应的编码才能有针对性地解码。另外这里之前遇到过获取到的网站标题为空列表,这样会报错,虽然能在页面打印出相关的web服务信息,但最后无法将web服务保存到扫描结果里,所以这里加了个if判断,在标题为空的情况下也将web服务信息保存下来:

最后将扫描结果进行一个去重处理,打印扫描所用的时间:

扫描结果

扫描结果大概如下所示:

此致敬礼

整个过程都是尽量使用了一些简单直接的方法,数据保存、去重等都没有在数据库层面进行操作。没有涉及usage提示,也没有杠这杠那的参数选项,是上来就干的这种类型。

这个是1.0版本,肯定会有诸多不足之处,后续会考虑加入一些复杂点的功能,希望大家能多批评指正。

代码已上传至github:https://github.com/hellogoldsnakeman/masnmapscan-V1.0

Nmap配合Masscan实现高效率扫描资产相关推荐

  1. 比一比Nmap、Zmap、Masscan三种扫描工具

    络扫描是信息收集的重要手段.通过扫描可以发现存活主机.开放端口,进而发现其运行的服务.操作系统等信息,为下一步的工作奠定基础.扫描工具的选取尤为重要.目前,有不少扫描工具可供选择,且各有特色.其中,N ...

  2. 【安全狐】Nmap,Masscan扫描软件 安装教程和基本使用

    一.Nmap 初步学习 简介 Nmap是一个 [网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprintin ...

  3. Nmap 7.70新增功能——扫描主机所有IP

     Nmap 7.70新增功能--扫描主机所有IP 有时,一个主机可能存在多个IP地址,如网站服务器.用户可以使用nmap提供的--resolve-all选项进行扫描.其语法格式如下: nmap --r ...

  4. mysql数据库扫描_使用nmap对mysql 数据库进行扫描

    使用 nmap 对 mysql 数据库进行扫描nmap --script=mysql-databases.nse,mysql-empty-password.nse,mysql-enum.nse,mys ...

  5. PDA手持扫描资产标签,盘点完成后将数据上传到PC端,固定资产系统查看盘点结果...

    固定资产管理系统介绍: 致力于研发条码技术.集成条码系统的专业性公司,针对客户的不同需求,提供一站式的企业条码系统解决方案:包括功能强大的软件系统.安全可靠的无线网络.坚固耐用的硬件系统.灵活易用的管 ...

  6. 比一比Nmap、Zmap、Masscan三种扫描工具区别

    络扫描是信息收集的重要手段.通过扫描可以发现存活主机.开放端口,进而发现其运行的服务.操作系统等信息,为下一步的工作奠定基础.扫描工具的选取尤为重要.目前,有不少扫描工具可供选择,且各有特色.其中,N ...

  7. nmap太慢?快速扫描端口工具MASSCAN!

    1.简介 masscan号称是世界上最快的扫描软件,可以在3分钟内扫描整个互联网端口,但是这个是由条件的4核电脑,双端口10G网卡. masscan相比nmap之所以快很多,masscan采用了异步传 ...

  8. 局域网资产发现过程(利用工具nmap、masscan)

    1 发现局域网存活主机 利用namp发现局域网的存活主机 nmap -sP -n -oX hosts.xml -T4  X.X.X.X/YY 2 利用python解析xml文件 from xml.et ...

  9. nmap配合shell使用

    命令需求: 查看X.X.X.X/22网段所有开启5900端口的服务器,并以IP/host分行列出 nmap -p 5900 XX.XX.XX.XX/22 |sed -e '/Host is up/d' ...

最新文章

  1. Ubuntu 12.04下玩转终端管理器Byobu
  2. R向量化操作(Data Transformations)
  3. hdu 1937(尺取法)
  4. Ajax POST请求获取后台返回的数据
  5. Convert Windows 32bit dirver to Windows 64bit
  6. CSS的Padding, Margin, Border 的区别
  7. MusicXML 3.0 (31) - Tab
  8. java调用zebra斑马打印条码+英文+数字+中文
  9. Microsoft VS Code安装教程
  10. 读取cpu温度的api_温度读取vc++获取cpu温度
  11. Pandas计算同比环比指标的3种方法
  12. 产品思维训练 | 常见的用户增长手段有哪些?
  13. vue 项目内vue指令常用
  14. OpenCV 微信QRCode二维码
  15. 取消浏览器打开默认为百度搜索引擎
  16. cannot dynamically load executable的尴尬经历
  17. 简述汇编语言中的标号有什么规定_汇编语言期末复习题
  18. 阿里云物联网平台架构
  19. RKMPP库快速上手--(四)MPP编码入门
  20. if...else; 嵌套if...else

热门文章

  1. 中科院单细胞分析算法开发博士带你做单细胞转录组分析
  2. 给力!使用MacPilot解锁macOS 1200多个隐藏功能!(支持M1处理器mac)
  3. 不选择互联网行业,学弟学妹可以选择这些新兴科技行业发展!
  4. PHP制作登录异常ip检测功能实例
  5. Mysql事项,视图,函数,触发器命令
  6. centos运行python程序_CentOS 7定时执行python脚本
  7. 使用paintEvent()对窗口进行OpenGL2D绘图
  8. Qt工作笔记-QGraphicsScene练习【Qt图形框架练习】
  9. Java基础入门笔记-Hello world
  10. 6.4.3树和森林的遍历