漏洞复现-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可用于不可用两种情况下,可以看出来这个函数的返回是不同的

原文地址:https://www.cnblogs.com/cute-puli/p/13541072.html