Web服务器漏洞扫描服务

一个基于MCP协议的服务器,允许AI代理通过SSH连接到Kali Linux主机,使用Nikto进行Web服务器漏洞扫描。

  • by schwarztim
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 schwarztim/sec-nikto-mcp

使用说明

无MCP服务器

MCP(模型上下文协议)服务器,使AI代理能够与 无web服务器扫描程序 通过SSH连接到Kali Linux主机。

特性

  • Web服务器漏洞扫描:扫描6700多个潜在危险文件/程序的目标
  • 可配置的测试类别:针对特定漏洞类型调整选项
  • IDS规避:绕过入侵检测系统的多种技术
  • 插件系统:用于可扩展扫描的模块化插件架构
  • 多种输出格式:JSON、CSV、HTML、XML和文本输出
  • SSH执行:在远程Kali Linux主机上运行Nikto进行隔离
  • 安全:输入验证以防止命令注入

先决条件

  • Node.js 20.0.0或更高版本
  • SSH访问安装了Nikto的Kali Linux主机
  • 配置了基于SSH密钥的身份验证(BatchMode)

安装

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

# Install dependencies
npm install

# Build
npm run build

配置

环境变量

变量 默认值 描述
KALI_HOST kali Kali Linux的SSH主机名
SSH_USER (空) SSH用户名(如果使用SSH配置,则可选)
NIKTO_TIMEOUT 300000 默认扫描超时(毫秒)(5分钟)

Claude桌面配置

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "nikto": {
      "command": "node",
      "args": ["/path/to/sec-nikto-mcp/dist/index.js"],
      "env": {
        "KALI_HOST": "your-kali-host",
        "SSH_USER": "kali",
        "NIKTO_TIMEOUT": "600000"
      }
    }
  }
}

工具

展示

启动web服务器漏洞扫描。

参数:

参数 类型 必填 说明
target string 是 URL、IP地址或主机名
port string 否 TCP端口-单个、范围(80-90)或逗号分隔
ssl boolean 否 强制SSL/HTTPS测试
nossl boolean 否 禁用SSL测试
tuning string 否 测试类别(0-9、a-c、x表示排除)
plugins string 否 逗号分隔的插件列表
evasion string 否 IDS规避技术(1-8)
timeout number No 每次请求超时(秒)
pause number No 测试之间的延迟(速率限制)
vhost string 否 虚拟主机标头
id string 否 HTTP基本身份验证(id:密码)
root string 否 所有请求的前置路径
cgidirs string 无 要扫描的CGI目录
useproxy boolean 否 使用配置的代理
nolookup boolean 否 禁用DNS查找
no404 boolean 否 禁用404检查
findonly boolean 否 仅用于端口发现
mutate string 否 突变技术(1-6)
format string 否 输出格式(csv、htm、txt、xml、json)
scan_timeout number 否 总扫描超时时间(秒)

nikto_plugins

列出所有可用的Niketo插件。

nikto_tuning

获取调优选项(测试类别)的详细参考。

耐克探索

获取IDS规避技术的详细参考。

Niketo更新

从cirt.net更新Nike插件和数据库。

nikto_版本

获取Niketo版本和数据库信息。

Nikto检查数据库

检查扫描数据库是否存在语法错误。

使用示例

基本扫描

Scan https://example.com with Nikto

带调整的SSL扫描

Run a Nikto scan on example.com port 443 with SSL, focusing on misconfiguration and information disclosure tests

利用IDS规避进行隐形扫描

Scan target.com using IDS evasion techniques 1, 2, and 4 with a 2-second pause between requests

全面审计

Perform a full Nikto scan on example.com ports 80 and 443 with SSL, output in JSON format

调整参考

代码 类别
0 文件上传
1 有趣的文件/在日志中看到
2 配置错误/默认文件
3 信息披露
4 注入(XSS/脚本/HTML)
5 远程文件检索-Web根目录内
6 拒绝服务
7 远程文件检索-服务器范围
8 命令执行/远程Shell
9 SQL注入
a 绕过身份验证
b 软件标识
c 远程源包含
x 反转(不包括指定)

回避技术

代码 技术
1 随机URI编码(非UTF8)
2 目录自引用(/./)
3 URL提前结束
4 前置长随机字符串
5 假参数
6 TAB作为请求垫片
7 更改URL的大小写
8 使用Windows目录分隔符(\)

安全考虑

  • 此工具用于 仅限授权安全测试
  • 在扫描任何系统之前,始终获得适当的授权
  • 输入验证可防止命令注入攻击
  • SSH密钥应使用受限权限进行适当保护
  • 考虑扫描基础架构的网络隔离
  • 服务器使用 BatchMode=yes 用于非交互式SSH执行

相关项目

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

贡献

欢迎投稿!请随时提交拉取请求。

免责声明

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