nmap使用与分析
扫描工具 nmap是探测网络主机和开放服务的佼佼者。是Linux下使用者的最爱,现在已经有Windows的版本。 NMAP支持多种协议的扫描如UDP,TCP connect,TCP SYN,ftp proxy (bounce attack),Reverse-ident,ICMP (ping sweep),FIN,ACK sweep, Xmas Tree, SYN sweep,和Null扫描。 还提供一些实用功能,比如通过tcp/ip来甄别操作系统类型;秘密扫描、动态延迟和重发;欺骗扫描、端口过滤探测、分布扫描等
网络扫描类型
主机扫描:
找出网段内的活跃主机 ICMP Ping TCP ACK TCP SYN UDP
端口扫描:
找出主机上开放的网络服务 TCP Connect TCP SYN UDP FIN, Null, Xmas等
主机扫描
端口扫描
TCP报文
旧版TCP Flags字段:
新版TCP Flags字段:
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有 DATA数据传输,
RST表示连接重置。
SYN与FIN是不会同时为1,
当出现FIN包或RST包时,认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,客户端与服务器建立了一个连接,
PSH为1表示的是有真正的TCP数据包内容被传递.
抓取FIN包: tcp.flags==1
抓取SYN包: tcp.flags==2
抓取RST包: tcp.flags==4
抓取PSH包: tcp.flags==8
抓取ACK包: tcp.flags==16
抓取URG包:tcp.flags==32
SYN+ACK:tcp.flags==18
wireshark分析
判断端口是否开启:攻击机:tcp.flags==16或被攻击机:tcp.flags==18
通过ICMP包分析,攻击者进行了ping扫描
TCP三次握手后发起[RST,ACK]包终止连接,这是一次全连接扫描
攻击者发出SYN包,攻击机器不管是目标机器何种应答都回复[RST]分组,这是一次TCP SYN半连接扫描
攻击者发送FIN数据包来探测端口,端口关闭情况返回一个[RST]数据包
-O扫描是通过arp广播获取MAC地址然后综合端口开放进行操作系统版本判断
攻击者发送了一个UDP数据包,由于端口未打开,目标机器会返回一个“ICMP端口不可到达”数据包,端口打开的话则不发回显ICMP数据包