端口扫描工具 端口扫描工具的小知识
概述
众所周知,扫描技术是网络攻防的一种重要手段,在攻和防当中都有其重要意义。借助开源的网络扫描工具nmap,本期文章实战分析SYN方式的端口扫描。
TCP的6个标志位
URG:紧急指针。用来处理避免TCP数据流中断;
ACK:置1,表示确认号(AcknowledgmentNumber)为合法,置0,表示数据段不包含确认信息,确认号被忽略;
PSH:置1,表示请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送;
RST:用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误;
SYN:同步信息,建立TCP连接而使用的握手信号;
FIN:用来释放TCP连接,表明发送方已经没有数据发送了。
SYN方式的端口扫描原理
SYN方式的端口扫描俗称半连接端口扫描,即扫描主机和目标主机之间没有建立完整的TCP 三次握手连接。
当扫描主机对目标主机进行半连接端口扫描时,扫描主机向目标主机的各个TCP端口发送SYN请求。
如果扫描主机收到目标主机某端口应答的SYN/ACK,那么可判断该端口在目标主机处于监听状态。
如果扫描主机收到目标主机某端口应答的RST/ACK,那么可判断该端口在目标主机不在监听或目标主机拒绝扫描主机连接该端口。
SYN方式的端口扫描命令
nmap -sS 192.168.1.1
备注:192.168.1.1指目标主机;
SYN方式的端口扫描报文分析
扫描主机首先打开抓包工具,然后扫描主机对目标主机进行半连接端口扫描。
使用过滤字段“tcp.seq==0 and tcp.ack==0”查看扫描主机向目标主机发送的TCP [ SYN]请求数据包,如下图所示;
使用过滤字段“tcp.seq==0 and tcp.ack==1”查看扫描主机收到目标主机应答的TCP [SYN,ACK] 数据包,该应答数据包也说明目标主机哪些TCP端口处于监听的状态;
使用过滤字段“tcp.seq==1 and tcp.ack==0 and ip.src==192.168.181.128”查看扫描主机收到目标主机应答的TCP [SYN ACK] 数据包后,扫描主机发给目标主机的TCP [RST]数据包;
使用过滤字段“tcp.seq==1 and tcp.ack==1”查看扫描主机收到目标主机应答的TCP [RST,ACK] 数据包,该应答数据包也说明目标主机哪些TCP端口未处于监听的状态;
总结
以上总结分享,希望各位小伙伴有所收获,不足之处,多多留言指正。