nmap扫描器
# 常用参数
nmap -T4 -A -v -Pn IP
-T4 #设置时序,越高扫描越快
-A #启用操作系统检测,版本检测,脚本扫描和跟踪路由
-v #增加详细级别(使用-vv或更高级别以获得更好的效果)
-Pn #无ping扫描# 主机发现
#Scan Types 指探测类型:
-PS #TCP SYN Ping (快)
-PA #TCP ACK Ping
-PU #UDP Ping
-PE #ICMP Ping,现在很多主机封锁这些报文,适用于管理员监视内部网络
#Options 指探测选项:
-n #不对活动的 IP 地址进行反向域名解析,用以提高扫描速度
#只列出存活主机,速度最快,其它方式会扫端口
nmap -sP 192.168.0.1-255 # 端口扫描技术
TCP连接扫描
使用操作系统的网络连接系统调用 connect(),对目标主机发起 TCP 三路握手,待完成后 Nmap 立即中断此次连接。
Nmap 通过获取每个尝试连接的状态信息来判定侦测端口的状态
SYN扫描
Nmap 产生一个 SYN 数据报文,如果侦测端口开放并返回 SYN-ACK 响应报文
Nmap 据此发送 RST 报文给侦测端口结束当前连接,这样做的好处在于缩短了端口扫描时间
UDP扫描
UDP 本身是无连接的协议,Nmap 向目标主机的端口发送 UDP 探测报文
如果端口没有开放,被侦测主机将会发送一个 ICMP 端口不可到达的消息
Nmap 根据这个消息确定端口闭合(closed)或者被过滤 (unfiltered)
通常没有回复意味着端口是开放(open)状态 。
ACK扫描
这种扫描比较特殊,它不能确切知道端口的基本状态,而是主要用来探测防火墙是否存在以及其中设定的过滤规则
FIN扫描
和 SYN 扫描相比,这种方式更为隐蔽,因此能够穿过防火墙的过滤
关闭(closed)端口将会返回合适的 RST 报文,而开放端口将忽略这样的侦测报文
具备类似防火墙不敏感特性的还有 -sN NULL 扫描,-sX X-mas 扫描。
# Nmap所识别的6个端口状态
# 防火墙/IDS逃逸
nmap -f --mtu=16 192.168.0.8 #报文分段,mtu必须是8的倍数
nmap -sI www.0day.com:80 192.168.0.8 #源IP欺骗
nmap --source-port 53 192.168.0.8 #源端口欺骗
#防火墙对服务器的设置会根据端口选择是否信任数据流
#管理员可能会认为这些端口不会有攻击发生,所以可以利用这些端口扫描
nmap --data-length 30 192.168.0.8 #在原来报文基础上,附加随机数据,达到规避防火墙的效果
nmap --spoof-mac 0 192.168.0.8 #指定一个随机的MAC地址