ligolo-MP(内网穿透、端口转发)

本文最后更新于 2026年3月12日 下午

工具介绍

Ligolo-MP 是 Ligolo-ng 的高级版本,采用客户端- 服务器架构,使渗透测试人员能够协同操作多个并发隧道。它能够自动管理所有 TUN,并提供简洁的 GUI 来追踪所有内容。

相比于 Ligolo-ng 工具,Ligolo-MP 不需要在命令行创建接口、添加路由,所有操作均可在图形化界面完成。

工具下载地址:

1
https://github.com/ttpreport/ligolo-mp

客户端、服务端、Agent:

  • Ligolo-mp-server:用于生成 agent 程序,添加路由、端口转发、多人模式用户。
  • Ligolo-client:用于在多人模式中控制服务端各项功能,单人模式无需使用。
  • Agent:由 Ligolo-mp-server 生成,可生成 Linux、Windows、macOS arm 和 amd 以及 386 架构 Agent,用于在服务端和受害者主机建立隧道。

工具运行模式:

  • 单人模式:只需要配置 Ligolo-mp-server,所有操作均在一台主机完成。
  • 多人模式:需要配置 Ligolo-mp-server 和客户端到 Ligolo-mp-server 隧道(VPN),着重解释一下,多人模式意指多个攻击者共享一个 Ligolo-mp-server,可以给不同的攻击者创建用户,每个攻击者可通过用户 json 文件管理 Ligolo-mp-server,最终所有攻击者需要通过与 Ligolo-mp-server 隧道连接访问 Ligolo-mp-server agent 路由,注意: 工具并不具备建立 Ligolo-mp-client 到 Ligolo-mp-server 隧道,该隧道需要攻击者自行创建,比如:Wireguard、OpenVPN 等,该模式不适用于初学者,需要具备成熟的集中式攻击设施和设置 VPN 隧道技能。

工具安装

访问工具 Github 地址,点击 Releases,下载匹配自己系统架构的程序,注意: ligolo-mp-server 暂时仅支持 Linux 系统,后续作者计划继续兼容其余系统架构。

1
2
# 选择最新版本
https://github.com/ttpreport/ligolo-mp/releases/tag/v2.1.0

也可通过源码编译安装,找到 Wiki 文档,作者有详细介绍,更推荐下载可执行程序。

功能介绍

下载适合自己操作系统架构 Ligolo-mp-server。

Ligolo-mp-server 常用参数:

  • -agent-addr:用于指定受害者访问 Ligolo-mp-server 的 IP 和端口,所以受害者必须可出站访问该端口(可设置 443、80 等常用端口),默认为 0.0.0.0:11601
  • -operator-addr:用于 Ligolo-mp-client 访问 Ligolo-mp-server 的 IP 和端口,仅在多人模式使用,默认 0.0.0.0:50880
  • -insecure-agents:禁用代理证书验证,默认 false,仅在多人模式使用。
  • -daemon:启用守护进程,默认 false。

设置 agent 连接端口为 443,其余保持默认,注意: 使用管理员身份运行,否则无法创建隧道接口。

1
sudo ./ligolo-mp_linux_amd64 -agent-addr "0.0.0.0:443"

首次启动 Ligolo-mp-server 会加载复制一些文件,时间稍长,进入页面后,默认存在初始化 admin 用户,点击回车继续下一步。

窗口介绍:

  • 序号一:sessions 会话,显示已经上线的节点。
  • 序号二:在窗口一选择不同 agent,该窗口会显示每个 agent 包含的网卡信息。
  • 序号三:显示路由信息,可在第一个窗口为每个 agent 创建路由,用于实现内网穿透和本地回环地址访问。
  • 序号四:定义端口转发规则,比如在某些场景中,我们获取到目标网络一个外网跳板机权限,该外网跳板机可同时访问外网和内网,我们利用该跳板机发现了内网某个系统存在 RCE 漏洞,由于该内网系统无法直接访问我们的攻击机,此时就需要通过该功能设置端口转发规则,设置访问跳板机的某个端口转发至攻击机,从而实现反弹 shell 或文件传输。
  • 序号五:显示实时日志。
  • 序号六:窗口的各种快捷键
    • Ctrl + A:该功能用于在多人模式中创建用户、生成用户配置文件、配置证书等。
    • Ctrl + N:生成 agent,受害者主机执行 agent 会连接攻击者 Ligolo-mp-server。
    • Ctrl + T:跟踪路由,类似于 traceroute 命令,用于查看到达目的 IP 的路由信息。
    • Ctrl + Q:退出。
    • Tab:切换窗口。

生成 agent:

使用 Ctrl + N 生成 agent,注意: 需设置匹配目标系统架构参数,默认会生成 agent.bin 文件,如果是 Windows 需修改后缀为 exe,Linux 则删除 bin 后缀。

删除 agent、内网穿透、添加本地环回地址访问、添加端口转发:

该类步骤均在 sessions 窗口进行,点击回车可选择对应功能。

当我们控制的主机某些服务只能在本地访问(127.0.0.1)时,可尝试 chisel 或 SSH 进行本地端口转发。利用 ligolo-mp addroute 功能也可实现该效果,只需要设置主机 IP 以及 32 掩码,然后勾选 loopback 即可。

内网穿透更为简单,只需要设置网卡的地址段取消勾选 loopback 即可。

使用 add redirector 添加端口转发,将通过 from:port 流量(TCP/UDP) 全部转发至 to:port,可将内网的流量通过跳板机转发至攻击者。

其余操作:

使用 tab 切换窗口,点击回车可对历史添加的策略进行修改删除、移动。

典型案例

以下内容仅介绍单人模式使用,多人模式需单独配置 Ligolo-mp-client 到 Ligolo-mp-server 隧道(VPN),然后攻击者通过隧道访问 Ligolo-mp-server,实现多人协作,对于初学者来讲并不涉及多人模式使用场景。

演示环境介绍

演示系统、网络说明:

名称 操作系统 网络情况 IP 地址
攻击者电脑 Linux 互联网 IP(VPS) 123.x.x.x
受害者主机一 Windows 可访问互联网和内网(双网卡) 10.168.1.91(外网)、192.168.184.128(内网)
受害者主机二 Linux 仅访问内网(单网卡) 192.168.184.129(内网)

演示系统服务说明:

名称 服务名称 监听端口
受害者主机一 HTTP 目录共享服务 监听 127.0.0.1:8080
受害者主机二 SSH 服务 监听 0.0.0.0:22

案例一:本地端口转发

受害者主机一通过 python 在本地创建 HTTP 8080 服务(用于模拟实战环境中的本地服务),外部默认无法通过主机 IP 访问该服务,我们可利用 add route 添加本地环回地址访问,实现本地端口转发。

目标: 通过 ligolo-mp-server 创建本地端口转发,使得攻击者电脑可访问受害者主机一本地 HTTP 服务。

步骤一:

上传 agent 至受害者主机一并运行(使用 Ctrl + N 生成 agent)。

步骤二:

在 sessions 窗口选中上线的 agent 点击回车,选择 add route。

步骤三:

填入需要访问本地服务的靶机 IP,掩码设置 32 位,然后勾选 loopback,注意: 这里的 IP 可以是靶机任意网卡地址。

步骤四:

开启中继,在 VPS 测试可正常访问受害者主机一本地 HTTP 服务,注意: 开启中继后会多出一块虚拟网卡。

若想访问目标系统本地环回地址,必须获取到目标系统权限,将 agent 上传至目标系统并运行,不难理解,之所以是本地环回地址,肯定是需要进入系统内部访问的,没有系统权限也不可能将系统内部网络代理出来。

案例二:内网穿透

目标: 使得攻击者可通过受害者主机一访问受害者主机二 SSH 服务(搭建隧道)。

利用已经获取的受害者一 agent,在 sessions 中再次选择 add route,与本地端口转发不同,这次需要添加的 IP 地址是内网的真实网段 192.168.184.0/24

成功添加并开启中继后,测试可正常访问内网受害者主机二 SSH 服务。

案例三:端口转发获取内网主机反弹 shell

场景说明: 我们通过受害主机一作为跳板发现内网某个系统存在 RCE 漏洞,我们需要上传 payload 至该靶机,甚至需要获取该系统反弹 shell,由于内网系统无法直接访问互联网,也就意味着必须设置端口转发规则上传文件或反弹 shell,利用 ligolo-mp 则非常简单。

实现逻辑: 实际是在受害者主机一监听一个端口并创建路由转发规则,使得内网去往受害者主机 80 端口的流量全部发送至攻击者 VPS 8080 端口。

目标: 使得内网受害者主机二可访问攻击者 WEB 共享,并可接收其发起的反弹 shell 连接。

步骤一:

依旧在 sessions 界面,选择目标 agent 回车,选中 add redirector。

步骤二:

设置通往受害者主机一 80 端口的流量全部转发至攻击者 VPS 8080 端口。

注意: 开启中继后所有配置才会生效。

测试下载文件: 在攻击者 VPS 使用 python 开启 WEB 共享(4444 端口),然后在内网受害者主机二访问受害者主机一 80 端口,实际则访问了攻击者 VPS WEB 共享。

VPS

VPS WEB 共享

受害者主机二

测试获取反弹 shell: 与访问 WEB 共享类似,利用该方法也可以获取内网受害者主机二反弹 shell。

受害者主机二

VPS

该过程共涉及两个端口,需考虑控制的受害者主机一是否有权限开放设置的端口(80),其次内网受害主机二是否可正常访问受害者主机一开放的端口(80),还需考虑受害者主机一是否可正常访问攻击者 VPS 监听的端口(8080),最后遇到问题再逐步分析。

杀软测试

Windows Defender

操作过程均在 Win11 Defender 开启状态进行(agent 未设置混淆),系统没有任何拦截,可正常进行内网穿透。

火绒终端安全

火绒个人版(最新病毒库,agent 未设置混淆),可正常进行内网穿透。

360 安全卫士

360 安全卫士(最新病毒库,开启核晶全防护),测试普通和混淆 agent 均被拦截。

普通 agent

混淆 agent

Thanks

如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡

最后,祝您生活愉快!🌞✨


ligolo-MP(内网穿透、端口转发)
https://www.f0nesec.top/2025/10/14/ligolo-mp-tools/
作者
F0ne
发布于
2025年10月14日
许可协议