Nmap:一个网络扫描和嗅探工具 ,使用TCP/IP协议栈
作用
1.识别活跃主机
同网段嗅探
- 向每一个IP发送ARP请求,收到应答表示主机在线
不同网段嗅探(四轮)
- 向网段每个主机发送ICMP echo request (Ping报文的请求包,只能扫出未禁ping主机)
nmap -pe 目标
- 向每个IP的443端口发送SYN置位的报文(三次握手),能建立表示在线
nmap -ps 主机
- 向每个IP的80端口发送ACK置位的报文(如果收到回应的RST报文),表示在线
nmap -pa 目标
- 发送ICMP时间戳报文
nmap -pp 目标
2.探测开放端口和相应服务
TCP端口扫描
全连接扫描
- 向每一个TCP端口发起TCP三次握手,能完成代表端口开放,该过程完成TCP三次握手后断开,容易被发现
半连接扫描
- 向每一个TCP端口发起TCP三次握手,不需要完成三次握手,收到目标的二次握手后发起者回应RST报文中断连接,完成扫描。该过程未完成TCP三次握手,而是二次握手后就完成了扫描,断开连接
秘密扫描
- FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那么说明该端口是关闭的;没有收到RST包说明端口可能是开放的或被屏蔽的。
- ACK置为/标志位全空/URG PSH置位
UDP端口扫描
- 向每一个UDP端口发送数据,如果收到不可达消息(unreachable),代表端口关闭
3.扫描系统指纹(操作系统、版本信息)
- 根据不同系统对应某些信息的处理方式不同,来判断是什么系统,什么型号,版本…
- Windows下默认TTL=128,收到ACK置位的TCP报文,如果端口打开,会回应RST报文
- Linux下默认TTL=64,收到ACK置位的TCP报文,如果端口打开,不回应如何报文
所有知识为个人总结向,仅供参考