一、实验题目
本次实验主要对主机扫描和端口扫描原理的理解。使用python(scapy库)编写端口扫描程序,对目标IP(包含IP地址段)进行扫描,完成以下功能:
1)使用icmp协议探测主机是否开启;
2)对本机(关闭防火墙)的开放端口和非开放端口完成半连接、ACK、FIN、Null、Xmas、windows扫描,并与nmap扫描结果进行比较。
3)对远程(有防火墙)主机的开放端口和非开放端口完成半连接、ACK、FIN、Null、Xmas、windows扫描,并与2)进行比较,分析结果。
4)回答问题:样例程序中“conf.L3socket=L3RawSocket”的作用是什么?
二、过程
1)首先仔细观察demo代码,将IP地址设置为本地地址127.0.0.1,端口号设置为开放端口号1900,运行后得到结果如图:
使用icmp协议探测主机是否开启。packet=IP(dst=str(ip))/ICMP()/b’rootkit’,构造包,由于ICMP协议需要IP协议传输,所以需要先构造IP协议。/b是发送的数据;ping=sr1(packet,timeout=1,verbose=False),发送三层数据包,并仅仅只等待接收一个数据包的响应,timeout定义超时的时