Ligolo-ng MCP服务器

一个用于管理Ligolo-ng的模型上下文协议服务器,提供代理管理、代理控制、隧道操作等功能,适用于渗透测试和红队行动中的网络穿透。

  • by schwarztim
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 schwarztim/sec-ligolo-ng-mcp

使用说明

绝对MCP服务器

一种用于管理的模型上下文协议(MCP)服务器 环境 -一种轻量级、快速的隧道工具,用于在渗透测试和红队交战期间建立反向TCP/TLS隧道。

概述

此MCP服务器使AI助手能够通过SSH控制远程Kali Linux机器上的Ligolong操作。它提供了管理代理服务器、代理、隧道、路由和侦听器的工具,这些都是安全评估期间网络旋转所需的核心功能。

特性

  • 代理管理:启动、停止和监视Ligolong代理服务器
  • 代理控制:列出连接的代理并管理会话
  • 网络接口:创建和管理隧道的TUN接口
  • 隧道运营:通过代理会话启动/停止隧道
  • 路由管理:添加和删除目标网络的路由
  • 侦听器配置:通过代理设置端口转发
  • 代理命令生成:为目标生成代理连接命令

先决条件

  • Node.js 18+
  • SSH访问安装了Ligolong的Kali Linux机器
  • 配置了基于SSH密钥的身份验证(无密码SSH)

安装

# Clone the repository
git clone https://github.com/schwarztim/sec-ligolo-ng-mcp.git
cd sec-ligolo-ng-mcp

# Install dependencies
npm install

# Build the project
npm run build

配置

环境变量

变量 默认值 描述
KALI_HOST kali Kali计算机的SSH主机名或别名
LIGOLO_PROXY_PORT 11601 代理连接端口
LIGOLO_API_PORT 8080 Ligolo-ng web API端口
LIGOLO_INTERFACE ligolo 默认TUN接口名称

SSH配置

确保您的SSH配置(~/.ssh/config)您的Kali机器有一个条目:

Host kali
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_rsa

Claude桌面集成

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "ligolo-ng": {
      "command": "node",
      "args": ["/path/to/sec-ligolo-ng-mcp/dist/index.js"],
      "env": {
        "KALI_HOST": "kali",
        "LIGOLO_PROXY_PORT": "11601"
      }
    }
  }
}

可用工具

代理管理

工具 说明
ligolo_proxy_start 使用可选的自签名证书和API启动Ligolo-ng代理服务器
ligolo_proxy_stop 停止正在运行的代理服务器
ligolo_proxy_status 检查代理状态并查看最近的日志

会话管理

工具 说明
ligolo_agents_list 列出所有连接的代理
ligolo_session_select 选择要使用的代理会话
ligolo_agent_info 从所选代理获取网络信息

网络配置

工具 说明
ligolo_interface_create 创建隧道的TUN接口
ligolo_interface_list 列出所有TUN接口
ligolo_tunnel_start 通过所选会话启动隧道
ligolo_tunnel_stop 停止活动隧道

路由

工具 说明
ligolo_route_add 添加访问目标网络的路由
ligolo_route_delete 删除路线
ligolo_route_list 列出所有Ligolo路线

端口转发

工具 说明
ligolo_listener_add 添加反向连接的侦听器
ligolo_listener_list 列出活跃听众
ligolo_listener_delete 删除侦听器

公用事业

工具 说明
ligolo_agent_command 为目标部署生成代理命令
ligolo_certificate_fingerprint 获取安全连接的证书指纹
ligolo_send_command 将原始命令发送到代理控制台

用法示例

基本数据透视工作流

  1. 在Kali上启动代理:

    Use ligolo_proxy_start with selfcert enabled
    
  2. 生成代理命令:

    Use ligolo_agent_command with your Kali IP
    
  3. 创建TUN接口:

    Use ligolo_interface_create
    
  4. 代理连接后,添加路由:

    Use ligolo_route_add with network 10.10.10.0/24
    
  5. 启动隧道:

    Use ligolo_tunnel_start
    

现在,您可以通过Kali机器访问10.10.10.0/24网络。

设置反向Shell回调

使用监听器通过枢轴接收反向shell:

Use ligolo_listener_add with:
  localAddress: 0.0.0.0:4444
  remoteAddress: 127.0.0.1:4444

这会将代理上4444端口的连接转发回Kali的4444端口。

安全考虑

  • 此工具仅用于授权的安全测试
  • 始终在生产环境中使用证书验证
  • 代理以提升的权限运行,以管理网络接口
  • SSH密钥应得到适当保护,不得共享

发展

# Watch mode for development
npm run dev

# Build
npm run build

# Start the server
npm start

许可证

MIT许可证-请参阅 许可证 了解详情。

致谢

免责声明

此工具仅用于授权的安全测试和教育目的。用户有责任确保在对任何系统使用此工具之前,他们都有适当的授权。作者不对该工具造成的任何误用或损坏负责。