littlebot
Published on 2025-04-14 / 4 Visits
0

【源码】基于C语言的大规模IP端口扫描器

项目简介

本项目是一个互联网规模的端口扫描器,能在5分钟内扫描完整个互联网,单机传输速度可达每秒1000万个数据包。其使用方式(参数、输出)与著名的端口扫描器 nmap 相似,内部采用异步传输,拥有自己的TCP/IP栈,能灵活支持任意端口和地址范围的扫描。

项目的主要特性和功能

  1. 高速扫描:单机每秒可传输1000万个数据包,能短时间扫描整个互联网。
  2. 多协议支持:支持对FTP、HTTP、IMAP4等多种协议进行端口扫描和横幅检查。
  3. 异步传输:采用异步设计,有独立的发送和接收线程,运行速度取决于底层数据包传输能力。
  4. 随机化扫描:独特的随机化目标方式,支持“分片”扫描,可多机、多网卡或多IP源地址协作扫描。
  5. 多格式输出:支持XML、二进制、grepable、JSON、列表等多种输出格式。
  6. IPv4和IPv6共存:可在同一扫描中同时包含IPv4和IPv6地址。
  7. 漏洞检查:包含对特定漏洞(如Heartbleed)的检查功能。
  8. 可定制性:用户可通过配置文件或命令行参数自定义扫描范围、端口、速率等,还能创建和编辑自定义的探测包。

安装使用步骤

安装

Debian/Ubuntu系统

bash sudo apt-get --assume-yes install git make gcc cd masscan make 若要安装(Linux系统),可运行: bash make install 使用多线程编译可加快速度(树莓派需注意内存,可使用 -j4 等较小数字): bash make -j

其他系统

  • Windows(Visual Studio):使用VS10项目。
  • Windows(MinGW):输入 make
  • Windows(cygwin):无法工作。
  • Mac OS X(XCode):使用XCode4项目。
  • Mac OS X(命令行):输入 make
  • FreeBSD:输入 gmake
  • 其他:尝试直接编译所有文件,cc src/*.c -o bin/masscan

使用

扫描网段的部分端口

bash masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112

查看完整选项列表

bash masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112 --echo > xxx.conf masscan -c xxx.conf --rate 1000

横幅检查

  • 分配单独IP地址: bash masscan 10.0.0.0/8 -p80 --banners --source-ip 192.168.1.200 masscan 2a00:1450:4007:810::/112 -p80 --banners --source-ip 2603:3001:2d00:da00:91d7:b54:b498:859d
  • 端口防火墙配置(Linux): bash iptables -A INPUT -p tcp --dport 61000 -j DROP masscan 10.0.0.0/8 -p80 --banners --source-port 61000

扫描整个互联网

bash masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt -oX scan.xml --max-rate 100000 也可将配置保存到文件,如 myscan.confplaintext rate = 100000.00 output-format = xml output-status = all output-filename = scan.xml ports = 0-65535 range = 0.0.0.0-255.255.255.255 excludefile = exclude.txt 使用配置文件进行扫描: bash masscan -c myscan.conf

获取输出

  • XML格式:masscan -oX <filename>masscan --output-format xml --output-filename <filename>
  • 二进制格式:使用 --readscan 读取二进制扫描文件,结合 -oX 可生成XML结果文件。
  • grepable格式:masscan -oG <filename>masscan --output-format grepable --output-filename <filename>
  • JSON格式:masscan -oJ <filename>masscan --output-format json --output-filename <filename>
  • 列表格式:masscan -oL <filename>masscan --output-format list --output-filename <filename>

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】