chiragjaiswar0814/SprayKit

GitHub: chiragjaiswar0814/SprayKit

一款不进行暴力破解的 SSH 安全态势审计工具,用于快速检测服务器配置中的弱加密算法、认证方式暴露及版本合规性问题。

Stars: 0 | Forks: 0

# SprayKit SprayKit 是一款防御性的 **SSH 暴露与加固审计器**。 它连接到 SSH 服务,**不尝试密码**,然后报告从握手过程中获取的信息: - SSH banner(通常包含 OpenSSH 版本) - 服务器主机密钥类型/大小及 SHA-256 指纹 - 宣告的加密算法(KEX、ciphers、MACs、compression) - 启用的身份验证方法(通过无凭据的 `none` auth 探测) 这适用于: - 查找仍允许密码认证 / keyboard-interactive 的服务器 - 发现仍在宣告的弱旧版加密算法 - 跨子网盘点 SSH 安全态势 ## 为什么存在此工具 许多 SSH 入侵始于: - 在面向互联网或企业内部的主机上启用了密码认证 - 出于“兼容性”原因保留了弱/旧版加密算法 - 跨服务器群的 `sshd_config` 出现不受控制的漂移 SprayKit 为您提供了一种快速 **审计** 并确定加固优先级的方法。 ## 安装 ``` python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## 用法 单台主机: ``` python3 spraykit.py -t 192.168.1.10 ``` 多个目标(可重复使用 `-t`、逗号分隔或 CIDR): ``` python3 spraykit.py -t 192.168.1.10,192.168.1.11 -t 10.0.0.0/24 ``` 从文件读取目标: ``` python3 spraykit.py -T targets.txt ``` 调整并发/超时并导出 JSON: ``` python3 spraykit.py -t 10.0.0.0/24 -c 128 --timeout 4 --json report.json ``` 可选策略检查:如果 banner 显示的 OpenSSH 版本低于您的基准,则发出警告: ``` python3 spraykit.py -t 10.0.0.0/24 --min-openssh 8.0 ``` ## 输出 - **OK**:握手成功,宣告的安全态势中无明显的危险信号 - **WARN**:启用了密码/keyboard-interactive 或存在弱算法 - **CRITICAL**:极不安全的发现(例如 `none` auth 似乎被允许) - **DOWN**:无法访问 SSH / 连接被拒绝 / 超时 ## 加固建议(快速) - 尽可能禁用密码认证: - `PasswordAuthentication no` - 适当情况下优先使用密钥 + MFA / PAM - 除非明确需要,否则考虑禁用 keyboard-interactive。 - 移除弱算法和旧版主机密钥。 - 限制暴露: - 将 SSH 限制在管理网络 / VPN - 添加速率限制 / fail2ban ## 注意事项 - 该工具故意 **不** 尝试凭据猜测。 - 根据配置和 SSH 实现的不同,某些服务器可能不会显示完整详细信息。
标签:C2日志可视化, Python, SSH, 主机安全, 关系图谱, 加固建议, 加密算法检测, 占用监测, 基线检查, 密码喷洒, 异步IO, 指纹识别, 无后门, 网络安全, 资产管理, 逆向工具, 隐私保护