Metasploit MySQL 目录/文件暴力枚举技术详解

本文介绍了基于Metasploit框架开发的MySQL目录与文件暴力枚举模块,详细解析其工作原理、权限要求、文件存在性判断及Linux目录处理特性,并附实际操作示例与模块配置说明。

上周 Tim Tomes 在 Pauldotcom 博客上发表了一篇关于使用 MySQL 枚举文件和目录的文章。一看到它,我就觉得这是自动化的绝佳机会[1],因此我为其编写了一个 Metasploit 模块[2]。

Tim 已经很好地解释了扫描的工作原理,因此我只补充一些在测试模块时发现的要点。

首先,如果启用了严格模式,MySQL 会抛出关于尝试将过多数据挤入小空间或错误数据类型的错误,这没问题——如果它成功获取数据并尝试挤入,就意味着文件存在。

要使此功能正常工作,您只需要 FILE 权限。根据 MySQL 规则,该权限必须作为全局选项授予,而不是针对单个数据库。如果您想测试,可以使用以下命令设置用户:

1
2
3
4
5
mysql> grant file on *.* to filetest identified by 'xxx';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

如果要检查的文件存在但 MySQL 用户无法读取(例如 /etc/shadow),则 MySQL 会报告该文件不存在,我未能找到解决方法。

最后,至少在 Linux 上,目录不需要尾部斜杠。如下例所示,/tmp 和 /tmp/ 都被识别为目录。

非常感谢 Juan Vazquez 帮助我完成了以正确格式将文件提交到仓库的过程。使用 git 比我们过去只是向票务系统提交文件要困难得多,但经过几次尝试后,它开始变得有意义。

该模块名为 auxiliary/scanner/mysql/mysql_file_enum,现已加入主 Metasploit 仓库,您只需更新即可获取。以下是实际操作示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
msf  auxiliary(mysql_file_enum) > show options

Module options (auxiliary/scanner/mysql/mysql_file_enum):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   DATABASE_NAME  test             yes       要使用的数据库名称
   FILE_LIST      /tmp/files       yes       要枚举的目录列表
   PASSWORD       xxx              no        指定用户的密码
   RHOSTS         127.0.0.1        yes       目标地址范围或 CIDR 标识符
   RPORT          3306             yes       目标端口
   TABLE_NAME     gUtLyhCi         yes       要使用的表名 - 警告:如果表已存在,其内容将被损坏
   THREADS        1                yes       并发线程数
   USERNAME       root             yes       用于认证的用户名

msf  auxiliary(mysql_file_enum) > run

[+] 127.0.0.1:3306 - /tmp 是一个目录且存在
[+] 127.0.0.1:3306 - /tmp/ 是一个目录且存在
[+] 127.0.0.1:3306 - /etc/ 是一个目录且存在
[+] 127.0.0.1:3306 - /etc/passwd 是一个文件且存在
[*] 已完成 1 台主机的扫描(100% 完成)
[*] 辅助模块执行完成

[1] 正如我之前所说,您不必会编码才能成为渗透测试员,但在这种情况下,它确实很有帮助。

[2] 最近有人写了一篇博客文章,抱怨 Metasploit 正在接管漏洞利用市场,并强迫每个人在框架中编写漏洞利用程序。我将此编写为 Metasploit 模块的原因不是被迫,而是因为这意味着其他人已经完成了所有艰苦的工作,包括用户输入、样式优美的输出和访问库。


支持本站

本网站上的任何项目均未获得报酬,因此如果您想支持我的工作,可以通过使用下面的联盟链接来实现,我会获得账户积分或现金返还。通常只有几分钱,但它们会积少成多。

请我喝一杯冰沙


所有内容均由 Robin Wood 创建,除非另有说明。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计