- 实验目的和要求
了解信息搜集和漏洞扫描的一般步骤,利用Nmap等工具进行信息搜集并进行综合分析;掌握TCP全连接扫描、TCP SYN扫描的原理,利用Scapy编写网络应用程序,使用漏洞扫描工具发现漏洞并进行渗透测试。
- 实验步骤
1. 主机探测
主机A开启命令行,对B进行ping探测,根据B的回复,可以确定主机A和B的连通情况,还可以根据回复数据包的TTL值对操作系统进行猜测。
-
- B关闭防火墙。
回复数据包的TTL值:128 ,B运行的操作系统可能为: Windows NT/2000/XP系统 。
B开启防火墙。
扫描结果分析。
1.3 arping是一个在LAN中使用ARP地址解析协议发现目标主机的工具。arping工具测试特定IP地址在网络中是否在线。该命令只能在本地局域网内运行,无法跨越路由器和网关,常用的选项为arping -c。Wireshark抓包分析该工具的工作原理(有截图及分析)。
分析并回答:在同一子网中判断目标主机存活性,ping和arping谁更具优势?
2. Nmap扫描
(1)对活动主机进行端口扫描
主机A使用Nmap工具对主机B进行TCP端口同步扫描(范围1-150):
Nmap命令 nmap –sS –p 1-150 10.33.7.194 ;
对主机B进行UDP端口扫描(范围是110-140):
Nmap命令 nmap –sU –p 110-140 10.33.7.194 ;
(2)对活动主机操作系统进行探测
主机A对主机B进行TCP/IP指纹特征扫描:
Nmap命令 nmap –o 10.33.7.194 ;
(3)对活动主机运行服务进行探测
Nmap命令 nmap -sV 10.33.7.194 ;
(4)主机A使用Nmap命令对主机B进行IP协议探测:
Nmap命令 namp –so 10.33.7.194 ;
3、Scapy项目
Scapy是Python中构造网络数据包的模块,它可以完成绝大多数工具所能完成的功能,例如:扫描,网络发现,跟踪路由,探测,攻击等。
3.1 初识Scapy
send、sendp、sr、sr1 发送数据包函数使用
send函数工作在第三层,只发送数据包。
如:send(IP(dst="192.168.64.133")/ICMP()) '/' 表示加上一层
sendp函数工作在第二层,只发送数据包。
如:sendp(Ether()/IP(dst="192.168.64.133"),iface="eth0")
sr()函数用来发送数据包和接收响应。
如:sr(IP(dst="192.168.64.133")/ICMP())
3.2 构造数据包来实现TCP SYN端口扫描。
3.3模拟三次握手实现TCP连接(以下为目标192.168.64.133:80 为例)
from scapy.all import *
h1=IP(dst="192.168.64.133")/TCP(dport=80)
rsp=sr1(h1)
h3=IP(dst="192.168.64.133")/TCP(dport=80,flags="A",seq=rsp.ack,ack=rsp.seq+1)
rsp2=sr1(h3)
![]() |
备注(关闭内核发送RST):iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
截图显示与目标主机TCP连接建立情况。
Wireshark捕获报文,截图显示以上操作相关报文。
3. 实验小结
(1)一开始在scap中输入命令无法运行,询问同学后发现需要用管理员权限打开scap才能执行命令。
(2)在模拟三次握手实现TCP连接的过程中,一开始一直用80端口,连接一直不成功,后来重新看了一遍,发现其实也可以用21端口和445端口,很不幸我用21端口也无法成功,最后用445端口尝试了一下,成功了。