Python Masscan模块介绍及用法
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要快得多,但也存在一些限制,比如不支持操作系统扫描和服务探测。因此,根据实际的需要选择合适的端口扫描工具使用。
相关文章