本文主要是利用scapy包编写了一个简易扫描工具,支持ARP、ICMP、TCP、UDP发现扫描,支持TCP SYN、UDP端口扫描,如下:
usage: python scan.py <-p ping扫描类型> <-s 端口发现类型> [-t target] [--port ports] 简单扫描工具,可以进行存活扫描及端口扫描. 存活扫描包括:ARP扫描、ICMP扫描、TCP扫描、UDP扫描. 端口扫描包括:TCP SYN扫描、<strong style="color:transparent">本文来源gao@daima#com搞(%代@#码@网&</strong>TCP ACK扫描、TCP FIN扫描. optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit target group: 用于设置IP、PORT参数 --target TARGET target为IP或IP段,如192.168.1.1,192.168.1.x,或1 92.168.1.1-254 --port PORT port为待扫描的端口,如21,80,...或21-80 ping group: 用于开启存活扫描相关选项 -p 开启存活扫描 --ARP 启动ARP扫描 --ICMP 启动ICMP扫描 --TCP 启动TCP扫描 --UDP 启动UDP扫描 port scan group: 用于开启端口扫描相关选项 -s 开启端口扫描 --SYN 开启SYN扫描 --ACK 开启ACK扫描 --FIN 开启FIN扫描 --UPORT 开启UDP端口扫描 utils group: 用于开启扫描过程中的一些实用选项 --timeout TIMEOUT 设置发包超时时间,默认0.5秒 --retry RETRY 设置发包重试次数,默认不重试 以上做为说明,祝好运!
一、发现扫描
1.首先进行ARP扫描
python scan.py -p --target 192.168.1.1-254 --ARP [+]IP: 192.168.1.1 => MAC: 14:75:90:xx:xx:xx [+]IP: 192.168.1.111 => MAC: c6:36:55:xx:xx:xx [+]总共耗时9.84091806412秒.
通过retry参数增加发包尝试次数,如下:
python scan.py -p --target 192.168.1.1-254 --ARP --retry 2<br />[+]IP: 192.168.1.1 => MAC: 14:75:90:xx:xx:xx<br />[+]IP: 192.168.1.111 => MAC: c6:36:55:xx:xx:xx<br />[+]IP: 192.168.1.102 => MAC: 58:1f:28:xx:xx:xx<br />[+]IP: 192.168.1.114 => MAC: 6c:8d:c1:xx:xx:xx<br />[+]IP: 192.168.1.103 => MAC: 84:38:38:xx:xx:xx<br />[+]总共耗时20.429942131秒.
2.使用ICMP扫描,若没有指定任何扫描类型参数,默认会启用ICMP扫描,如下:
python scan.py -p --target 192.168.1.1-254 [+]没有指定任何ping扫描方式,默认选择ICMP扫描 [+]IP:主机192.168.1.1 echo-reply. [+]IP:主机192.168.1.111 echo-reply. [+]总共耗时10.7177450657秒.
通过timeout参数,设置较长的超时,可以防止网络状况不好造成的丢包,如下:
python scan.py -p --target 192.168.1.1-254 --timeout 2 [+]没有指定任何ping扫描方式,默认选择ICMP扫描 [+]IP:主机192.168.1.1 echo-reply. [+]IP:主机192.168.1.111 echo-reply. [+]IP:主机192.168.1.114 echo-reply. [+]总共耗时10.7566649914秒.
3.使用TCP扫描
python scan.py -p --target 192.168.1.100-120 --TCP --timeout 1 [+]请稍等,时间较长! [!]扫描... 192.168.1.100 [!]扫描... 192.168.1.101 [!]扫描... 192.168.1.102 [!]扫描... 192.168.1.103 [!]扫描... 192.168.1.104 [!]扫描... 192.168.1.105 [!]扫描... 192.168.1.106 [!]扫描... 192.168.1.107 [!]扫描... 192.168.1.108 [!]扫描... 192.168.1.109 [!]扫描... 192.168.1.110 [!]扫描... 192.168.1.111 [!]扫描... 192.168.1.112 [!]扫描... 192.168.1.113 [!]扫描... 192.168.1.114 [!]扫描... 192.168.1.115 [!]扫描... 192.168.1.116 [!]扫描... 192.168.1.117 [!]扫描... 192.168.1.118 [!]扫描... 192.168.1.119 [!]扫描... 192.168.1.120 [+]正在处理扫描信息. ==================== [+]主机 192.168.1.102 在线. [+]主机 192.168.1.103 在线. [+]主机 192.168.1.111 在线. [+]主机 192.168.1.114 在线. [+]总共耗时16.4359779358秒.