nmap mcp
   ](https://nodejs.org/)
一种模型上下文协议(MCP)服务器,使用 扫描器该服务器专为安全专业人员和渗透测试人员设计,可以在本地或通过SSH在远程Kali Linux机器上执行扫描以实现安全隔离。
特性
- 多种扫描类型端口扫描、服务检测、操作系统指纹识别、漏洞评估
- NSE脚本支持:运行600多个Nmap脚本引擎脚本
- 灵活执行:在本地或通过SSH运行到远程扫描主机
- 结构化输出:解析的XML结果格式为可读的Markdown
- 安全第一:输入验证以防止命令注入
- 隐形选项:诱饵、碎片、规避扫描的时间控制
安装
# Clone the repository
git clone https://github.com/schwarztim/sec-nmap-mcp.git
cd sec-nmap-mcp
# Install dependencies
npm install
# Build
npm run build配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
NMAP_SSH_HOST | 用于远程执行的SSH主机 | kali |
NMAP_SSH_USER | SSH用户名(可选) | 使用SSH配置默认值 |
NMAP_SSH_KEY | SSH私钥路径(可选) | 使用SSH配置默认值 |
NMAP_LOCAL | 设置为 "true" 在本地运行nmap | false |
Claude桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"nmap": {
"command": "node",
"args": ["/path/to/sec-nmap-mcp/dist/index.js"],
"env": {
"NMAP_SSH_HOST": "kali",
"NMAP_LOCAL": "false"
}
}
}
}对于本地执行:
{
"mcpServers": {
"nmap": {
"command": "node",
"args": ["/path/to/sec-nmap-mcp/dist/index.js"],
"env": {
"NMAP_LOCAL": "true"
}
}
}
}可用工具
基本扫描
| 工具 | 说明 |
|---|---|
nmap_scan | 具有可定制选项的基本端口扫描 |
nmap_quick_scan | 快速扫描公共端口(-F) |
nmap_ping_sweep | 不进行端口扫描的主机发现(-sn) |
高级扫描
| 工具 | 说明 |
|---|---|
nmap_service_scan | 服务版本检测(-sV) |
nmap_os_detect | 操作系统指纹识别(-O) |
nmap_comprehensive_scan | 全扫描:SYN+版本+操作系统+脚本 |
nmap_stealth_scan | 使用诱饵和碎片进行规避扫描 |
安全评估
| 工具 | 说明 |
|---|---|
nmap_script_scan | 运行特定的NSE脚本 |
nmap_vuln_scan | 漏洞评估脚本 |
效用
| 工具 | 说明 |
|---|---|
nmap_status | 检查nmap可用性和配置 |
nmap_parse_output | 解析现有nmap XML输出 |
使用示例
基本端口扫描
Scan target 192.168.1.1 for open ports服务版本检测
Run a service scan on 10.0.0.0/24 ports 22,80,443漏洞评估
Run a vulnerability scan on target.example.com带诱饵的隐形扫描
Perform a stealth scan on 192.168.1.100 using random decoysPing扫描以查找主机
Find all live hosts on 192.168.1.0/24NSE脚本扫描
Run the http-title and ssl-cert scripts on example.com port 443安全考虑
远程执行(推荐)
通过SSH将nmap运行到专用的Kali Linux机器上可以提供:
- 孤立:扫描源自受控环境
- 权限管理:无需局部高程即可进行高级扫描的根访问
- 审计跟踪:扫描主机上的集中登录
- 网络分段:扫描流量与工作站分离
输入验证
服务器验证所有输入以防止命令注入:
- 根据允许的字符模式验证目标
- 危险外壳字符被阻止
- 端口规格经过严格验证
责任的使用
此工具用于:
- 经适当授权的安全评估
- 网络库存和管理
- 教育目的
在扫描任何网络或系统之前,始终确保您有适当的授权。
发展
# Watch mode for development
npm run dev
# Build for production
npm run build
# Run the server
npm start需求
- Node.js 18+
- nmap已安装(本地或SSH目标上)
- SSH访问远程主机(如果使用远程执行)
许可证
MIT许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请随时提交拉取请求。
