Python Masscan模块介绍及用法

2023-04-21 00:00:00 模块 介绍 用法

Masscan是一个高速端口扫描工具,可以在短时间内快速扫描大量的主机和端口。在Python中,可以使用masscan模块调用Masscan进行端口扫描。

安装Masscan

在安装之前,先检查一下系统是否已经安装过Masscan:

masscan -v

如果系统已经安装了Masscan,则可以直接使用。如果没有安装,可以通过以下命令进行安装:

sudo apt-get update
sudo apt-get install git gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
sudo make install

安装完成后,可以使用以下命令测试是否安装成功:

sudo masscan -p80 pidancode.com

如果输出类似如下内容,则说明安装成功:

Starting masscan 1.0.5 (http://bit.ly/14GZzcT) at 2019-05-23 08:22:40 GMT
 -- forced options: -sS -Pn -n
Initiating SYN Stealth Scan
Scanning pidancode.com (192.0.78.25) [1 port]
Discovered open port 80/tcp on 192.0.78.25
Completed SYN Stealth Scan at 08:22, 0.14s elapsed (1 total ports)
Nmap scan report for pidancode.com (192.0.78.25)
Host is up (0.18s latency).
PORT   STATE SERVICE
80/tcp open  http

使用Masscan模块

安装Masscan模块:

pip install masscan

使用Masscan模块进行端口扫描:

import masscan

scanner = masscan.PortScanner()
scanner.scan(hosts='pidancode.com', ports='1-65535', arguments='--rate=1000')
print(scanner.all_hosts())

for host in scanner.all_hosts():
    print('Host: %s' % host)
    for port, state in scanner[host]['tcp'].items():
        print('Port: %s\tState: %s' % (port, state['state']))

输出结果类似如下:

['pidancode.com']

Host: pidancode.com
Port: 80    State: open

以上代码将使用Masscan扫描pidancode.com的所有TCP端口,并输出开放的端口号和状态。

其中,scan函数的参数说明如下:

  • hosts: 扫描的IP地址或者IP地址段,可以使用CIDR地址格式,例如:192.168.1.1/24。
  • ports: 扫描的端口号,用逗号分隔,例如:22,80,443。也可以使用短横线连接端口段,例如:1-65535。
  • arguments: Masscan的其他参数,例如:--rate=1000,表示扫描速率为1000个包/秒。具体的参数可以参考Masscan的官方文档。

在常规的端口扫描中,Masscan比Nmap要快得多,但也存在一些限制,比如不支持操作系统扫描和服务探测。因此,根据实际的需要选择合适的端口扫描工具使用。

相关文章