场景一

doughnuts简单的使用。

安装:

- 以github为例:

clone到本地:

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权限。

最后更新于