【实验目的】
了解nmap全连接、半连接以及NULL扫描主机端口的方法。
【知识点】
nmap、端口扫描
【实验原理】
Nmap是一个综合的、功能全面的端口扫描工具主机发现。nmap可以用来查找目标网络中在线主机。默认情况下,nmap通过icmp回应请求、向443端口发送TCPSYN包、向80端口发送TCPACK包和icmp时间戳请求方式发现目标主机服务/版本。nmap发现端口后,可以进一步检查服务协议、应用程序名称、版本号、主机名、设备类型和操作系统信息。操作系统识别:nmap向远程主机发送系列数据包,并检查回应。然后与操作系统指纹数据库进行比较,并打印出匹配结果的细节。全连接扫描:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接将建立成功;否则,若返回-1则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。半连接扫描:扫描者向目标主机发送一个SYN,如果目标主机回复了一个SYN/ACK数据包,那么说明主机存活,如果收到一个RST/ACK数据包,那么主机没有存活。因为扫描者只向目标主机发送了SYN,并没有和目标主机进行连接,因此称为半连接。NULL扫描:RFC793中规定,当一个端口关闭时,如果它收到一个标志位为空的信息,系统应当反馈一条RST;当端口开放时,如果收到这种标志位为空的信息,系统不予响应。这种标志位为空的信息,称其为NULL,故这种扫描称为NULL扫描。
【实验目标】
利用nmap命令探测出目标系统开放的端口和服务类型
【实验步骤】
已知目标IP为192.168.1.3
在终端中输入命令nmap192.168.1.3回车,对目标主机进行端口扫描,可以看到如下的输出结果。
在终端中输入命令nmap -sT 192.168.1.3
,使用-sT来实现tcp全连接扫描,与目标端口进行三次握手,尝试建立连接,如果建立连接成功,则说明端口开放,但是扫描速度慢。
在终端中输入命令nmap -sS 192.168.1.3
,使用 SYN 扫描 (-sS),该该选项也称为“半开连接”或者“SYNstealth”。nmap 发送syn包后等待回应,如果接收SYS/ACK 包说明端口开放,如果收到RST 包,说明端口关闭,如果没有回应或者回应 icmp 不可达错误消息,则说明端口被过滤
在终端中输入命令nmap -sV 192.168.1.3
,参数-sV探测出来的服务详细版本
由于-sT和-sS、-sV在之前的文章作过演示,此处不再重复。
在终端中输入命令 nmap -sN -p 21,22,80,1433,3306,3389 192.168.1.3
,参数-sN,即NULL 扫描,不会设置任何控制位,参数-p 选项针对特定的端口进行扫描
上面的命令都是将扫描结果展示在终端中,还可以将扫描后的结果保存到文件中,便于后期的查看,在终端中输入命令 nmap -sN -p 21,22,80,1433,3306,3389 192.168.1.3 -oX dk.html
,参数-oX在当前目录下生成dk.html文件,用于保存扫描信息
输入cat dk.html
,查看扫描信息