ligolo-MP(内网穿透、端口转发)
本文最后更新于 2026年3月12日 下午
工具介绍
Ligolo-MP 是 Ligolo-ng 的高级版本,采用客户端- 服务器架构,使渗透测试人员能够协同操作多个并发隧道。它能够自动管理所有 TUN,并提供简洁的 GUI 来追踪所有内容。
相比于 Ligolo-ng 工具,Ligolo-MP 不需要在命令行创建接口、添加路由,所有操作均可在图形化界面完成。
工具下载地址:
1 | |
客户端、服务端、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 | |

也可通过源码编译安装,找到 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 | |
首次启动 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 共享。



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


该过程共涉及两个端口,需考虑控制的受害者主机一是否有权限开放设置的端口(80),其次内网受害主机二是否可正常访问受害者主机一开放的端口(80),还需考虑受害者主机一是否可正常访问攻击者 VPS 监听的端口(8080),最后遇到问题再逐步分析。
杀软测试
Windows Defender
操作过程均在 Win11 Defender 开启状态进行(agent 未设置混淆),系统没有任何拦截,可正常进行内网穿透。

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

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


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