常用nmap端口扫描参数及原理
1) -sS(TCP SYN 扫描)
也称TCP半连接扫描
原理:
只发送第一次的SYN报文,不必等待连接完成,若目标返回ACK+SYN则端口为open,返回RST结束连接
若目标返回RST则段楼为close
使用TCP SYN扫描不会与端口建立连接,故不容易被防火墙记录进日志
Nmap 参数
namp -sS scanme.nmap.org
2) -sT (TCP connect() 扫描)
原理:
与目标建立连接,进行三次握手,成功建立连接则端口为open
若目标返回RST则端口为close
Nmap 参数
nmap -sT scanme.nmap.org
3) -sU(UDP 扫描)
原理:
UDP扫描发送空的(没有数据)UDP报文到每个端口,若端口返回ICMP端口不可到达错误,则改端口为close
偶尔的,端口会相应某个UDP报文,则证明端口为open,若重新尝试几次后端口没有回应,则也认为端口为open
Nmap 参数
nmap -sU scanme.nmap.org
4)-sN -sF -sX(Xmas Tree 扫描)
原理:
当端口为close时,任何不含有RST,SYN或ACK位的报文会导致一个RST返回
当端口为open时,只要不包含RST,SYN或ACK位的报文,都不会有返回
Nmap 参数
(`-sN`)
Does not set any bits (TCP flag header is 0)
(`-sF`)
Sets just the TCP FIN bit.
(`-sX`)
Sets the FIN, PSH, and URG flags, lighting the packet up like a Christmas tree.
5) -sA(TCP ACK扫描)
原理:
当发送一个含有ACK报文时都会返回RST,故ACK扫描不能确定端口为open或close,但可以利用它来确定防火墙的配置,发现防火墙规则。
向服务器发送一个含有ACK的报文,若收到RST,则说明服务器端没有过滤,不存在状态防火墙
Nmap 参数
nmap -sA scanme.nmap.org
6)-sW(TCP窗口扫描)
原理:
类似于ACK扫描,都是向服务器发送含有ACK数据包的报文,不同在于TCP窗口扫描会检查返回的RST数据包中的窗口大小
若窗口大小不为零,则端口为open
若窗口大小为零,则端口为close
Nmap 参数
nmap -sW docsrv.caldera.com