Sploitus

Exploit for PoC

kitploit · 2026-08-25

Exploit Code

MARKDOWN52 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SUDORM0X-POC-CVE-2018-15473
# PoC-CVE-2018-15473

OpenSSH 7.7及之前的版本存在用户枚举漏洞,原因是在完全解析包含请求的数据包之前,不会对无效认证用户延迟退出,涉及auth2-gss.c、auth2-hostbased.c和auth2-pubkey.c。

CVE: CVE-2018-15473

来自 https://www.openwall.com/lists/oss-security/2018/08/15/5 的分析

在未修补当前版本的情况下,远程攻击者可以轻松测试目标OpenSSH服务器上某个用户是否存在(用户名枚举):

root@kitploit:~
    
    
      87 static int
      88 userauth_pubkey(struct ssh *ssh)
      89 {
     101         if (!authctxt->valid) {
     102                 debug2("%s: disabled because of invalid user", __func__);
     103                 return 0;
     104         }
     105         if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 ||
     106             (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 ||
     107             (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0)
     108                 fatal("%s: parse request failed: %s", __func__, ssh_err(r));
    

攻击者可以使用格式错误的数据包(例如截断的数据包)尝试对用户进行身份验证,并且:

  * 如果用户无效(不存在),则userauth_pubkey()立即返回,服务器向攻击者发送SSH2_MSG_USERAUTH_FAILURE;

  * 如果用户有效(存在),则sshpkt_get_u8()失败,服务器调用fatal()并关闭与攻击者的连接。




root@kitploit:~
    
    
    用法: ssh-check-username.py [-h] [-t HOSTNAME] [-p PORT] [-u USERNAME] [-w WORDLIST]
    
    选项:
      -h, --help   显示此帮助信息并退出
      -t HOSTNAME  单个目标
      -p PORT      要连接的端口:默认端口为22
      -u USERNAME  要枚举的用户名
      -w WORDLIST  枚举多个用户
    

# 免责声明

请负责任地使用此脚本,仅用于您有权访问的系统。未经授权访问系统可能导致严重的法律后果。