SuperAPI AI 工具集

ssh-pentesting

安全与审计

查看项目

更新于 10-16 10:11

技能介绍

SSH 渗透测试方法论(22 端口)

本方法论提供从服务发现到漏洞利用的完整 SSH 渗透测试决策树,适用于授权环境下的安全评估。整体流程分为七个阶段。

一、主要用途 用于在渗透测试中系统化评估 SSH 服务的安全性,包括识别服务实现与版本、探测认证机制、枚举有效用户名、尝试凭据攻击、建立隧道、窃取并复用密钥,以及检测已知漏洞。

二、主要能力

Phase 1:服务发现与版本识别 通过 Banner 抓取、Nmap 服务版本探测和 ssh-audit 进行算法审计。关键判断包括:OpenSSH 8.5p1–9.7p1 对应 CVE-2024-6387;libssh 0.6–0.8 存在 CVE-2018-10933;Erlang/OTP SSH 存在 CVE-2025-32433;弱算法(ssh-dss、arcfour、CBC)可能被用于降级攻击。

Phase 2:认证方式枚举 使用 ssh -v 或 Nmap 的 ssh-auth-methods 脚本探测支持的认证方式。根据结果决定后续路径:publickey+password 可尝试密码爆破或搜索泄露密钥;仅 publickey 则搜索 authorized_keys 泄露或已知弱密钥;keyboard-interactive 可能存在 2FA/PAM;gssapi-with-mic 适用于 Kerberos 域环境。

Phase 3:用户名枚举 针对 OpenSSH < 7.7,利用 CVE-2018-15473 通过响应时间差异判断用户是否存在,可使用 Metasploit 的 scanner/ssh/ssh_enumusers 模块。辅助手段包括 OSINT、其他服务枚举结果、默认用户名尝试以及 Shodan/Censys 历史数据。

Phase 4:凭据攻击 包括密码爆破(hydra、medusa、ncrack),需注意 SSH 通常有 MaxAuthTries 限制(默认 6),建议低速爆破;私钥爆破(Nmap 的 ssh-publickey-acceptance、Metasploit 的 ssh_identify_pubkeys、ssh-keybrute);已知弱密钥(Debian 预测 PRNG 密钥集、厂商默认密钥);默认凭据。SFTP 使用相同认证机制,爆破命令相同,获得访问后注意命令执行绕过。

Phase 5:SSH 隧道与端口转发 根据需求选择本地转发(-L)、远程转发(-R)、动态转发(-D)或 SFTP 隧道。需注意 SSH 配置可能限制转发(AllowTcpForwarding no、PermitTunnel no),但可能通过 ProxyCommand 或 nc 绕过。在 chroot SFTP 环境中,若有写权限可创建符号链接尝试文件系统穿越。

Phase 6:密钥窃取与复用 搜索私钥文件(~/.ssh/id_rsa 等)、配置文件、历史命令,检查 authorized_keys 和 known_hosts(可泄露网络拓扑),劫持 ssh-agent(通过 SSH_AUTH_SOCK),使用 SSH-Snake 自动化发现与横向移动。加密私钥可用 ssh2john 提取哈希后离线破解(john 或 hashcat)。

Phase 7:已知漏洞 涵盖 CVE-2024-6387(OpenSSH regreSSHion pre-auth RCE)、CVE-2024-3094(xz 供应链后门)、CVE-2025-32433(Erlang/OTP SSH pre-auth RCE)、CVE-2018-10933(libssh 认证绕过)、CVE-2018-15473(OpenSSH 用户名枚举)。同时介绍 SSH 中间人攻击(ARP/DNS 欺骗、ssh-mitm 工具),前提是目标未严格验证主机密钥。

三、使用方式 提供具体命令示例,包括 nc、nmap、ssh-keyscan、ssh-audit、hydra、medusa、ncrack、metasploit 模块、ssh2john 等工具的使用。需在获得明确授权的前提下进行测试。

四、适用场景 适用于渗透测试人员对开放 22 端口的 SSH 服务进行安全评估,包括版本识别、认证强度测试、用户枚举、凭据攻击、隧道搭建、密钥利用和漏洞检测。

五、限制 本方法论未提供收费、价格或平台信息。部分 CVE 的利用细节需参考 references/ssh-techniques.md。所有测试必须在合法授权范围内进行。