## 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 枚举多个用户
# 免责声明
请负责任地使用此脚本,仅用于您有权访问的系统。未经授权访问系统可能导致严重的法律后果。