文章

Nmap简单UDP探测

Nmap进行TCP/UDP扫描,其中有一些参数经常记不住比如-sS/sT/sA/sW/sM,好好看下说明其实老外写的东西挺好理解的。

1
2
3
4
5
-sS TCP SYn
-sT TCP Connect()
-sA TCP ACK
-sW TCP Window
-sU UDP Scan

发生一次UDP扫描最简单的就是nmap xxx.xxx.xxx.xxx -sU -p port。

image-20250310223321727

Wireshark看下发包过程,发现并不是直接发送UDP数据包,而是在UDP数据包之前伴随着ICMP数据包和TCP数据包。

ICMP:问了AI是因为nmap默认使用ICMP数据确认主机是否存活,可以看到一开始发送了两个ICMP数据包(编号1和4),一个是Echo一个是Timestamp(具体是什么后面再说)然后服务端也响应了了ICMP的reply数据包(编号5和7)。

TCP:也是问了AI说是默认nmap会用TCP协议去确认80/443端口的服务(编号2和3),一方面确认是否主机存活,另一方面有助于获取更多主机的测绘信息,但是很明显不是完整的TCP扫描(没有最基本的三次握手)而且均被服务器响应RST数据包停止了(编号6和8),说明80/443或许根本就没有开放。

UDP:编号19和21是客户端真实想要的UDP数据包,但一般UDP数据包没有响应回包,此处就是。

image-20250310223643693

简单说说ICMP协议(Internet Control Message Protocal = 互联网控制消息协议),ICMP协议不传输应用数据,只用于通信正常与否的管理。

常用的ping命令就是用的ICMP协议(通过评估Echo请求包和响应包中的参数来分析网络故障),同时也有ICMP Flood攻击通过伪造大量的ping请求(Echo包)耗尽服务器资源。

image-20250310225311722

本文由作者按照 CC BY 4.0 进行授权