目录
一.TCP/UDP协议探测出网
1.NC工具探测TCP协议出网
2.Telnet命令探测TCP协议出网
3.UDP协议探测出网
当红队人员在进行内网渗透时,经常会遇到目标主机不出网的场景,而主机不出网的原因有很多,常见的原因例如目标主机未设置网关,被防火墙或者其他防护设备拦截设置了出入站策略,只允许特定协议或端口出网等。当我们遇到这种情况时,可以通过本章节中所讲到的方法,利用各种包含该协议的方式探测目标主机允许哪些协议出网,根据探测到的协议信息进行隧道穿透。在已经获取到目标系统的权限前提下,可以通过下述所讲到的各种协议探测手段来进行探测是否出网。
一.TCP/UDP协议探测出网
在对目标服务器进行TCP/UDP协议探测出网前,需要满足前文中所提到的已经获取目标管理权限的前提下进行本次实验。本次实验环境拓扑如图所示
图1-1 TCP/UDP协议探测出网实验拓扑
1.NC工具探测TCP协议出网
1)根据图1-1 所描述的实验拓扑环境中,使用nc工具和Telnet命令来探测TCP协议是否出网,首先介绍一下Netcat(NC)这款工具,它是一款比较简单并且非常有用的工具,既支持通过TCP和UDP在网络连接中读写数据,也是一个稳定的后门工具,支持其它程序和脚本驱动,同时它还是一个功能强大的网络调试和探测工具,可以建立使用中所需要的几乎所有类型的网络连接,若要利用NC工具来探测TCP协议是否出网,首先我们先使用NC工具在目标服务器中执行nc.exe -lvp 8888"命令来监听目标服务器的8888端口,如图1-2所示。在使用nc开启监听执行连接的过程中,会发起TCP请求和响应时,同时也会产生数据包,通过在本地主机中使用Wireshark流量分析软件来抓取发起连接过程的数据包,后续通过抓取到的数据包来查看TCP三次握手连接过程。
图1-2 使用NC工具开启服务端监听
2)在Windows 10主机中使用nc工具连接目标服务器8888端口,检测其是否出网。执行nc.exe -nv 8.130.xxx.xxx 8888"命令,发现成功连接,显示open开启端口状态,可证明目标服务器TCP协议出网,如图1-3所示。
图1-3 客户端连接成功
3)在使用nc工具连接探测到出网成功的同时,在本地主机中可以看到从wireshark软件中抓取的数据包,分析本地主机和目标服务器TCP协议建立连接的过程,在过滤栏使用"tcp.port == 8888",过滤TCP端口,即可看到TCP三次握手成功的情况,如图1-4所示。
图1-4 TCP三次握手过程
2.Telnet命令探测TCP协议出网
1)使用Telnet命令来探测目标服务器是否出网,首先需要在目标服务器使用nc工具开启监听8888端口,执行命令nc.exe -lvp 8888,成功开启目标服务器监听,如图1-5所示。
图1-5 nc开启服务端监听
2)当开启监听后,在本地主机中使用Telnet命令连接到目标服务器。执行telnet 8.130.xx.xx 8888命令,如图1-6所示则证明连接成功,即代表允许TCP出网。
图1-6 Telnet客户端连接成功
3.UDP协议探测出网
1)探测目标服务器UDP协议是否出网前,需要上传nc到目标服务器,在目标服务器上执行nc.exe -ulvp 8888"命令来开启目标服务器监听, 如图1-7所示,其中-u参数是指nc使用udp协议进行数据传输(nc默认使用tcp)。
图1-7 nc使用Udp协议开启服务端监听
2)由于UDP是无连接传输协议,发送端和接收端之间没有握手,每个UDP报文段都会被单独处理,在Windows 10主机中启动wireshark流量分析软件,抓取本地流量包,开启监听后在Windows 10主机利用nc工具发起连接。执行nc.exe -uv 8.130.xx.xx 8888"命令,测试返回响应后,发现显示open,连接成功,如图1-8所示。
图1-8 nc客户端使用udp协议连接成功
3)通过在本地Wireshark流量分析软件抓取到的UDP数据包,可以看出本机和目标服务器通过UDP协议进行通讯,证实UDP协议出网,如图1-9所示。
图1-9 wireshark捕获Udp数据包