doughnuts简单的使用。
- 以github为例:
cd ~ git clone https://github.com/WAY29/Doughnuts.git cd Doughnuts/doughnuts/
- 该场景进行的一切操作均已授权,任何使用本项目进行的一切未授权攻击行为与本人无关。
该场景环境为 apache + mysql + php5。
该场景 static/images/upload/ 目录下已部署一句话马。
# 使用doughnuts连入该场景事先部署好的一句话马。
# 输出 disable_functions 。
# 发现将系统命令函数ban了,尝试进行绕过。
# 未能成功,那么先简单的进行端口扫描。
先用 socket 扫描0~1000端口:
再用 curl 扫描1001~10000端口:
# 可以得知,22、80、3306端口是开着的,其中 3306 显然是 mysql 的端口,那么下一步是扫描配置文件。
# 扫描得到配置文件路径为 /var/www/html/sql/config/config.php ,尝试读取该文件。
# 得到以下信息:
Host:127.0.0.1
Port:3306
User:root
Pass:f6d6eefa48772d2156a70f01b95b30ba
# 尝试使用以上信息初始化 mysql 。
# 尝试获得 sql 的shell。
# 现在已经成功取得了 sql 的shell,看一下 secure_file_priv 的值。
# 虽然说 secure_file_priv 为空,但由于mysql版本为 5.6.16 ,因而在 mysql 用户有可写权限的地方都是可以通过 outfile 写入文件的。
# 下一步是尝试使用 udf 执行命令。
显示 plugin 目录:
尝试往里边写入文件:
验证文件存在:
使用 udf 的payload:
尝试执行命令:
尝试寻找可提权文件:
进行权限提升:
# 最后成功拿到了root权限。
最后更新于5年前
这有帮助吗?
pip3 install -r requirements.txt
python3 install.py {命令名称(可留空,默认为doughnuts)}
which {命令名称}
{命令名称}