ssh-audit

ssh-audit 是一款用于 SSH 服务器审计的工具。
功能特点
- 支持 SSH1 和 SSH2 协议服务器;
- 获取横幅信息,识别设备、软件及操作系统,检测压缩;
- 收集密钥交换、主机密钥、加密和消息认证码算法;
- 输出算法信息(可用时间、已移除/禁用、不安全/弱/遗留等);
- 输出算法建议(根据识别的软件版本添加或删除);
- 输出安全信息(相关问题、分配的 CVE 列表等);
- 基于算法信息分析 SSH 版本兼容性;
- 包含 OpenSSH、Dropbear SSH 和 libssh 的历史信息;
- 无依赖,兼容 Python 2.6+、Python 3.x 和 PyPy;
使用方法
用法: ssh-audit.py [-1246pbnvl] <主机>
-1, --ssh1 仅强制使用 SSH 版本 1
-2, --ssh2 仅强制使用 SSH 版本 2
-4, --ipv4 启用 IPv4(优先级顺序)
-6, --ipv6 启用 IPv6(优先级顺序)
-p, --port=<端口> 连接端口
-b, --batch 批量输出
-n, --no-colors 禁用颜色
-v, --verbose 详细输出
-l, --level=<级别> 最低输出级别(info|warn|fail)
- 如果同时使用 IPv4 和 IPv6,可通过
-46 或 -64 设置优先级顺序。
- 批处理标志
-b 将输出无标题和无空行的部分(隐含详细标志)。
- 详细标志
-v 将在每行前添加节类型和算法名称。
示例

更新日志
v1.7.0 (2016-10-26)
- 实现指定 IPv4/IPv6 使用及优先级顺序的选项
- 实现指定远程端口的选项(为兼容性保留旧行为)
- 为 Microsoft Windows 添加颜色支持(通过可选的 colorama 依赖)
- 修复编码和解码问题,添加测试,避免因编码错误崩溃
- 使用 mypy-lang 进行静态类型检查并验证所有代码
v1.6.0 (2016-10-14)
- 实现算法建议部分(基于识别的软件)
- 实现完整的 libssh 支持(版本历史、算法、安全性等)
- 修复 SSH-1.99 横幅识别和版本比较功能
- 不输出空算法(针对配置错误的服务器)
- 使 Python 3.x 版本的输出一致
- 添加大量测试(配置、横幅、软件、SSH1/SSH2、输出等)
- 使用 Travis CI 测试多个 Python 版本(2.6-3.5, pypy, pypy3)
v1.5.0 (2016-09-20)
- 创建安全部分以提供相关安全信息
- 匹配并输出 Dropbear SSH 分配的 CVE 列表和安全问题
- 实现完整的 SSH1 支持,包含指纹信息
- 在协议不匹配时自动回退到 SSH1
- 添加强制使用 SSH1 或 SSH2 的新选项(默认两者都允许)
- 解析横幅信息并转换为具体的软件和操作系统版本
- 在批处理模式中不使用填充
- 多项修复(Cisco sshd、罕见挂起、错误处理等)
v1.0.20160902
- 实现批量输出选项
- 实现最低输出级别选项
- 修复与 Python 2.6 的兼容性
v1.0.20160812
- 实现 SSH 版本兼容性功能
- 修复错误的 MAC 算法警告
- 修复 Dropbear SSH 版本号拼写错误
- 解析预横幅头部
- 更好的错误处理
v1.0.20160803
- 使用 OpenSSH 7.3 横幅
- 添加新的密钥交换算法
v1.0.20160207
- 使用 OpenSSH 7.2 横幅
- 为 OpenSSH 7.2 添加额外警告
- 修复 OpenSSH 7.0 失败消息
- 从 OpenSSH 6.7 添加 rijndael-cbc 失败消息
v1.0.20160105
- 多个额外警告
- 支持 none 算法
- 更好的压缩处理
- 确保读取足够数据(修复部分 Linux SSH)
v1.0.20151230
v1.0.20151223