网络基础知识:TCP协议之扫描TCP端口

admin 2022年10月18日07:58:46评论35 views字数 3389阅读11分17秒阅读模式

转自微信公众号:计算机与网络安全


在TCP协议中,计算机与计算机之间的通信都是通过端口识别进行传输的。不同的应用程序使用的端口也不同。通过判断开放的端口,可以了解目标主机运行哪些程序。通过构造TCP Ping包实施扫描可以判断端口是否开放,但它一次只能判断一个端口。本文介绍如何批量扫描端口,以判断端口的开放情况。


1、构造TCP端口扫描包


TCP端口扫描构造的是TCP连接中的第1次握手包[SYN]包。如果端口开放,将返回第二次握手包[SYN,ACK];如果端口未开放,将返回[RST,ACK]包。用户可以借助netwox工具中编号为67的模块构造TCP端口扫描包。


在主机192.168.59.133上进行实施TCP端口扫描,探测目标主机192.168.59.156的端口开放情况。


1)判断端口20~25的开放情况,执行命令如下:


root@daxueba:~# netwox 67 -i 192.168.59.156 -p 20-25


输出信息如下:


192.168.59.156 - 20 : closed

192.168.59.156 - 21 : closed

192.168.59.156 - 22 : closed

192.168.59.156 - 23 : closed

192.168.59.156 - 24 : closed

192.168.59.156 - 25 : closed


上述输出信息显示对端口20~25进行了扫描,closed表示这些端口都是关闭状态。


2)通过抓包,可以捕获扫描发送的TCP SYN请求包和返回的TCP RST-ACK包,如图1所示。这里,捕获到12个数据包。其中,第1~3个和第5~7个包分别为向端口20~25发送的SYN请求包。其中,源IP地址为192.168.59.133(实施主机地址)。由于这些端口关闭,每个请求都返回了RST-ACK响应包。其中,第4个和第8~12个包为返回的响应包,表示端口未开放。

网络基础知识:TCP协议之扫描TCP端口

图1  捕获端口关闭数据包


3)判断端口81的开放情况,执行命令如下:


root@daxueba:~# netwox 67 -i 192.168.59.156 -p 81


输出信息如下:


192.168.59.156 - 81 : open


上述输出信息表示端口81是开放的。


4)此时捕获到的数据包,将返回的是SYN-ACK包,如图2所示。其中,第5个数据包为发送的SYN请求包;第6个数据包为返回的SYN-ACK包,表示端口81是开放的。


网络基础知识:TCP协议之扫描TCP端口

图2  捕获端口开放数据包


2、伪造TCP扫描包


直接基于本机构造TCP端口扫描包,很容易被发现。为了避免被发现,可以伪造TCP包实施扫描,如伪造IP地址和MAC地址。


在主机192.168.59.133上构造TCP扫描包,探测目标主机192.168.59.156的端口开放情况。


1)伪造IP地址为192.168.59.136,MAC地址为11:22:33:44:55:66,判断端口20~25的开放情况,执行命令如下:


root@daxueba:~# netwox 68 -i 192.168.59.156 -p 20-25 -E 11:22:33:44:55:66 -I 192.168.59.136


输出信息如下:


192.168.59.156 - 20 : closed

192.168.59.156 - 21 : closed

192.168.59.156 - 22 : closed

192.168.59.156 - 23 : closed

192.168.59.156 - 24 : closed

192.168.59.156 - 25 : closed


2)当目标主机捕获到数据包时,发现的地址是虚假的地址,如图3所示。图中请求数据包的IP地址都为192.168.59.136(伪造的IP地址),MAC地址为11:22:33:44:55:66(伪造的MAC地址)。

网络基础知识:TCP协议之扫描TCP端口

图3  捕获到伪造地址的数据包


3、防御扫描


为了防御攻击者对主机端口的扫描,可以干扰攻击者的判断。例如,当扫描未开放的端口时,也返回[SYN,ACK]包,使攻击者认为该端口是开放的。防御扫描干扰需要使用netwox工具中编号为79的模块。


已知主机A的IP地址为192.168.59.135,主机B的IP地址为192.168.59.131。在主机192.168.59.135上实施防御扫描。


1)查看主机A当前监听的端口,执行命令如下:


root@daxueba:~# netstat -l


输出信息如下:


Active Internet connections (only servers)

Proto   Recv-Q    Send-Q   Local Address   Foreign Address  State

tcp     0       0       0.0.0.0:5227     0.0.0.0:*      LISTEN

tcp     0       0       0.0.0.0:5228     0.0.0.0:*      LISTEN

tcp     0       0       0.0.0.0:5229     0.0.0.0:*      LISTEN

udp    19584    0      0.0.0.0:bootpc    0.0.0.0:*

raw6   0     0     [::]:ipv6-icmp     [::]:*    7

Active UNIX domain sockets (only servers)


上述输出信息表示主机A当前开启了端口5227、5228、5229这3个端口。


2)干扰主机B,使主机B认为除了上述3个端口以外,其他端口都是开放状态,执行命令如下:


root@daxueba:~# netwox 79 -i 192.168.59.135 -p 1-5226,5230-65535


执行命令后没有任何输出信息,但是会对命令中指定的端口都进行响应,返回[SYN,ACK]包。


3)目标主机B对主机A进行扫描,例如,对端口21、25、53、80、443进行扫描,执行命令如下:


root@daxueba:~# netwox 67 -i 192.168.59.135 -p 21,25,53,80,443


输出信息如下:


192.168.59.135 - 21 : open

192.168.59.135 - 25 : open

192.168.59.135 - 53 : open

192.168.59.135 - 80 : open

192.168.59.135 - 443 : open


以上输出信息表示目标主机A的21、25、53、80、443端口都是开放状态,而实际并没有开放。


4)通过抓包,查看捕获的数据包,如图4所示。从图中可以看到,主机B对主机A的21、25、53、80、443端口依次发送了TCP[SYN]包,并且都得到了对应的[SYN,ACK]响应包,表示这些端口是开放的。

网络基础知识:TCP协议之扫描TCP端口

图4  成功进行了干扰


通常,目标主机上都有自己的内核防火墙。当攻击主机对目标主机端口扫描时,内核防火墙也会向攻击主机回复响应包。这时,不仅netwox工具会发出响应包,内核防火墙也会进行回复,导致发送响应包[SYN,ACK]和[RST]。例如,上述对端口21、25、53、80、443进行扫描,将会得到的响应包,如图5所示。图中第13~17个数据包,分别是端口21、25、53、80、443给出的[SYN,ACK]响应包,第18~22个数据包,分别是端口21、25、53、80、443给出的[RST]响应包。

网络基础知识:TCP协议之扫描TCP端口

图5  内核防火墙的响应包


为了能够使netwox工具起到干扰作用,需要在目标主机上内核防火墙中进行配置,丢弃接收的数据包,执行命令如下:


root@daxueba:~# iptables -P INPUT DROP


如果继续接收进入的数据包,执行命令如下:


root@daxueba:~# iptables -P INPUT ACCEPT


如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell
「 超详细 | 分享 」手把手教你如何进行内网渗透
神兵利器 | siusiu-渗透工具管理套件
一款功能全面的XSS扫描器
实战 | 一次利用哥斯拉马绕过宝塔waf
BurpCrypto: 万能网站密码爆破测试工具
快速筛选真实IP并整理为C段 -- 棱眼
自动探测端口顺便爆破工具t14m4t
渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注橘猫学安全:
每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“再看

原文始发于微信公众号(橘猫学安全):网络基础知识:TCP协议之扫描TCP端口

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月18日07:58:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络基础知识:TCP协议之扫描TCP端口http://cn-sec.com/archives/1356220.html

发表评论

匿名网友 填写信息