Kali Linux MCP 服务器
一个全面的模型上下文协议(MCP)服务器,通过标准化接口提供对流行的Kali Linux渗透测试工具的访问。该服务器使人工智能助手和其他应用程序能够以结构化且安全的方式与安全测试工具进行交互。
特点/功能
网络侦察
- whois(用于查询域名注册信息的工具或服务)域名注册信息查询
- dig(动词,意为“挖掘”、“搜索”、“探究”)支持多种记录类型的DNS查询工具
- dnsenum(注:这是一个用于DNS枚举的工具名称,直接翻译可能无法准确传达其专业含义,但在此处按字面意思翻译为“DNS枚举工具”)DNS枚举工具
- DNS侦察(或DNS信息收集)DNS侦察工具
- nmap(网络映射工具)网络发现与安全审计(端口扫描、服务检测、操作系统指纹识别、漏洞扫描)
- Masscan(或译为“大规模扫描工具”)大规模IP端口扫描器
- 独角兽扫描(UnicornScan,此处为意译,根据上下文,“unicornscan”可能是一个特定工具或软件的名称,直接翻译为“独角兽扫描”可能无法准确传达其专业含义,但在此提供一个通用的翻译方向)异步网络刺激传递引擎
- zmap快速全网扫描器
- ike-scan(注:此词在中文中无直接对应翻译,通常保留原英文形式,或根据上下文解释为“用于IKE协议扫描的工具/软件”等,但在此直接给出原词)IKE/IPsec VPN 扫描器
子域名枚举与公开网络信息搜集(OSINT)
- theHarvester(可译为“信息收割者”,但根据上下文,有时可能直接保留原名以指代特定工具或概念)电子邮件、子域名和人员名称收集器
- sublist3r(可译为“子列表生成器”,但根据上下文,此名称可能是一个特定工具或脚本的名称,直接保留原名)子域名枚举工具
- 积累深入攻击面映射和资产发现
- shodan(注:此词在中文中无直接对应词汇,若作为专有名词或特定术语,可保留原样;若需意译,可理解为“初步扫描”或“初步调查”,具体根据上下文确定)针对联网设备的搜索引擎
- recon-ng(注:这是一个工具或框架的名称,直接翻译为“侦察-NG”可能不够准确,具体翻译可能需根据上下文或该工具的具体用途来确定,但在此提供一个基本的直译版本)功能齐全的侦察框架
- Metagoofil(注:这是一个专有名词,通常指的是一种信息检索技术或工具,用于从网页元数据中提取信息,直接翻译可能无法完全传达其专业含义,但在此提供直译以供参考)元数据提取工具
- Maltego(注:这是一个专有名词,通常指的是一种用于网络侦察和数据分析的工具,直接音译为“马尔特戈”或保持原名“Maltego”在中文环境中也是常见的做法,具体根据上下文或使用习惯选择)链接分析与数据挖掘应用
网页应用分析
- whatweb(注:这是一个工具名,直接翻译为“什么网页”可能无法准确传达其原意,通常保留原名以指代该工具)网页应用指纹识别
- wafw00f(通常用于检测Web应用防火墙的工具)Web应用防火墙检测
- “dirb”可以翻译为“目录遍历”或“目录浏览”,这通常是指在计算机领域中,通过某种方式访问或遍历文件系统中的目录结构,有时可能涉及安全风险或未经授权的访问。网页内容扫描器
- gobuster(注:这是一个用于目录和文件发现的工具名,直接翻译为中文可能不常见,但按字面意思可译为“探索者”,实际使用中通常保留原名)目录/文件、DNS和虚拟主机破解工具
- “feroxbuster”可以翻译为“凶猛破坏者”或根据上下文意译为更贴切的名称,如“强力爆破工具”(如果是指一个用于渗透测试或安全审计中的工具)。不过,“feroxbuster”在网络安全领域通常指的是一个用于目录扫描和文件枚举的工具,其直接翻译可能并不完全传达其功能,因此在实际应用中,可能会根据具体语境选择更合适的表述。如果仅从字面意思翻译,可以是“凶猛的破坏者”或类似表达快速、简单、递归的内容发现
- nikto(注:这是一个波兰语单词,直接翻译为中文可能无直接对应词汇,但在此上下文中可理解为“谁”或“某人”)网络服务器扫描器
- wfuzz(一个用于Web应用程序模糊测试的工具)网页应用模糊测试工具
- “arachni”可以翻译为“蜘蛛(网络扫描工具)”。不过,需要注意的是,“arachni”通常指的是一个开源的Web应用安全扫描工具,它用于检测Web应用程序中的安全漏洞。因此,根据上下文,也可以将其翻译为“Arachni(网络扫描工具)”或“Arachni(网络渗透测试工具)”等,以更准确地表达其用途。但最直接的翻译还是“蜘蛛(网络扫描工具)”Web应用安全扫描框架
服务枚举
- \
enum4linux\翻译成中文是“Linux枚举工具”或“针对Linux的枚举程序”。这个工具主要用于在网络安全测试中枚举Linux系统上的用户、组、共享资源等信息SMB枚举工具 - \
enum4linux-ng\翻译为中文是:“enum4linux的下一代(或增强版)”。不过,通常在中文技术文档或社区中,可能会直接使用 \enum4linux-ng\这个英文名称,或者简单地称之为“enum4linux增强版”,以保持术语的一致性。如果非要给出一个更贴近中文表达的翻译,可以是“enum4linux新版本”或“enum4linux升级版”,但具体使用哪种表述还需根据上下文和语境来决定。下一代SMB枚举工具 - smbmapSMB枚举工具
- rpcclient(注:这是一个技术术语,通常指用于与远程过程调用(RPC)服务器进行交互的客户端工具或程序,直接翻译为“远程过程调用客户端”即可,但在此保持原样以体现其技术特性)用于SMB枚举的RPC客户端
- SNMPWalk(简单网络管理协议遍历工具)SNMP枚举工具
- ldapsearch(轻量级目录访问协议搜索)LDAP搜索工具
SSL/TLS & 网络工具
- sslscan(注:这是一个工具名,直接翻译为中文可保持原样,或根据上下文可解释为“SSL扫描工具”,但在此处为保持专业术语的准确性,直接给出“sslscan”作为翻译)SSL/TLS 扫描器
- sslyze(注:这是一个用于分析SSL/TLS协议的工具名称,直接翻译无具体含义,故保留原英文形式)快速且强大的SSL/TLS扫描器
- netcat(网络抄表器/网络调试工具)用于读取/写入网络连接的网络工具
- curl(用于传输数据的命令行工具)用于数据传输的命令行工具
- wget(在中文语境中,通常直接保留原名,不进行翻译,因为它是一个专有名词,指的是一个网络文件下载工具)网络下载器
无线安全工具
- airmon-ng(注:这是一个用于在Linux系统上管理无线网卡监控模式的工具名称,直接翻译为中文可能无法准确传达其功能,但在此仅按字面意思翻译)无线接口监控模式启用器
- \
airodump-ng\翻译成中文是“无线数据包捕获与显示工具(NG版)”。这个工具主要用于在无线网络环境中捕获和显示无线数据包,常用于无线网络分析、安全测试等场景。无线数据包捕获工具 - 洗WPS 扫描仪
- 命运的安排(或“机缘巧合”)无线网络探测器和入侵检测系统
- bettercap(注:这通常是一个网络工具或框架的名称,直接翻译为中文可能无法准确传达其专业含义,因此保留原英文名称)网络攻击与监控框架
安装
先决条件
- Python 3.8 或更高版本
- Kali Linux(推荐)或任何已安装渗透测试工具的Linux发行版
- 所需的渗透测试工具(大多数已预装在Kali Linux上)
从源代码安装
git clone https://github.com/VandolinHimself/MCP-Kali
cd MCP-Kali
pip install -e .安装依赖项
pip install -r requirements.txt用法
运行服务器
# Start the MCP server with default settings
kali-mcp-server
# Start with debug logging
kali-mcp-server --log-level DEBUG工具示例
网络侦察
# WHOIS lookup
whois_lookup(domain="example.com")
# DNS lookup
dig_lookup(domain="example.com", record_type="A")
dig_reverse_lookup(ip="8.8.8.8")
# NMAP port scan
nmap_port_scan(target="192.168.1.1", ports="1-1000")
nmap_service_scan(target="192.168.1.1")
nmap_os_detection(target="192.168.1.1")
nmap_vuln_scan(target="192.168.1.1")网页分析
# Web fingerprinting
whatweb_analyze(url="https://example.com")
# WAF detection
wafw00f_detect(url="https://example.com")
# Directory scanning
gobuster_dir_scan(url="https://example.com")
nikto_scan(host="example.com")子域名枚举
# Subdomain discovery
sublist3r_enumerate(domain="example.com")
amass_enum_subdomains(domain="example.com", passive=True)
theharvester_subdomains(domain="example.com", sources="all")配置
工具可用性检查
服务器在执行前会自动检查系统上是否有可用的工具。如果未找到所需工具,将返回相应的错误信息。
超时
不同的工具有不同的默认超时时间:
- 快速扫描:60-300秒
- 端口扫描:1800秒(30分钟)
- 全面扫描:3600秒(1小时)
输出处理
所有工具输出都被捕获并以结构化格式返回,包括:
- 命令已执行
- 返回代码
- 标准输出
- 标准误差
- 成功状态
安全考量
⚠️ 重要的安全注意事项:
- 仅限授权使用仅在拥有或明确获准测试的系统上使用此服务器
- 网络影响某些工具可能会产生大量的网络流量
- 系统资源资源密集型扫描可能会影响系统性能
- 法律合规确保遵守当地法律法规
- 访问控制在部署服务器时实施适当的访问控制
发展
项目结构
kali_mcp_server/
├── __init__.py
├── base.py # Base classes and utilities
├── network_recon.py # Network reconnaissance tools
├── subdomain_enum.py # Subdomain enumeration tools
├── web_analysis.py # Web analysis tools
├── enumeration.py # Service enumeration tools
├── ssl_network.py # SSL/TLS and network tools
├── wireless.py # Wireless security tools
├── osint.py # OSINT tools
├── server.py # Main MCP server implementation
└── main.py # CLI entry point添加新工具
- 创建一个从相应基类继承的工具类
- 实现所需的方法
- 在(系统/平台)中注册该工具
server.py - 添加适当的MCP工具处理器
测试
# Run basic functionality tests
python -m pytest tests/
# Test specific tool availability
python -c "from kali_mcp_server.network_recon import NmapTool; import asyncio; tool = NmapTool(); print(asyncio.run(tool.check_tool_availability()))"做出贡献
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支
- 做出你的更改
- 为新功能添加测试
- 提交拉取请求
许可证
此项目遵循MIT许可证授权。详情请参见LICENSE文件。
免责声明
此工具仅用于教育和授权的安全测试目的。开发者不对因该软件造成的任何滥用或损害承担责任。用户在使用这些工具对任何系统进行操作前,必须自行确保已获得适当的授权。
支持
对于问题、功能请求或疑问:
- 在GitHub上提交一个问题
- 查阅文档
- 审查现有问题以寻找解决方案
更新日志
版本 1.0.0
- 初始版本支持40多种渗透测试工具
- 全面的MCP服务器实现
- 结构化工具输出和错误处理
- 自动工具可用性检查
