漏洞复现-CVE-2018-15473-ssh用户枚举漏洞
0x00 实验环境
攻击机:Win 10
0x01 影响版本
OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机
0x02 漏洞复现
针对搭建好的vulhub环境:
这里最主要的是python3的模块——paramiko 的调用,需要安装好该模块才能使用poc
直接执行以下命令即可
上图可以发现root与vulhub是存在的用户,可进行爆破。
针对特定版本的payload可用,若需要我测试可使用的payload请私聊我
0x03 漏洞原理
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会直接返回错误信息,如果用户可用,则会进入下一个条件判断,调用fatal函数。所以在username可用于不可用两种情况下,可以看出来这个函数的返回是不同的