本项目是我博客文章《发现有趣数据库数据》的技术实现。
最初计划在找到列后查询数据库并返回每个表的样本数据,但由于所基于的Metasploit模块存在技术问题,目前无法实现。代码已基本完成,待Metasploit修复后可轻松添加该功能。
安装
只需将下载的压缩包解压到Metasploit安装根目录即可。
使用方法
使用非常简单:设置标准参数后执行exploit。默认会搜索包含passw、bank、credit和card关键词的列名。如需修改搜索条件,可将NAMES字段设置为管道符分隔的关键词列表。
安装后可在以下路径找到模块:auxiliary/admin/mssql/mssql_idf
示例操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
msf > use auxiliary/admin/mssql/mssql_idf
msf auxiliary(mssql_idf) > show options
模块选项:
名称 当前设置 必填 描述
---- --------------- -------- -----------
NAMES passw|bank|credit|card 是 管道符分隔的列名列表
PASSWORD 否 指定用户的密码
RHOST 是 目标地址
RPORT 1433 是 目标端口
USERNAME sa 否 认证用户名
msf auxiliary(mssql_idf) > set PASSWORD MyPass
PASSWORD => MyPass
msf auxiliary(mssql_idf) > set RHOST 192.168.0.54
RHOST => 192.168.0.54
msf auxiliary(mssql_idf) > exploit
数据库 模式 表 列 数据类型 行数
============== ========== ================= ====================== ========= =========
msdb dbo backupmediaset is_password_protected bit 0
msdb dbo backupset is_password_protected bit 0
AdventureWorks Person Address MyPassword nchar 19614
AdventureWorks Purchasing Vendor CreditRating tinyint 104
AdventureWorks Person Contact PasswordHash varchar 19972
AdventureWorks Person Contact PasswordSalt varchar 19972
AdventureWorks Sales ContactCreditCard CreditCardID int 19118
AdventureWorks Sales CreditCard CreditCardID int 19118
AdventureWorks Sales CreditCard CardType nvarchar 19118
AdventureWorks Sales CreditCard CardNumber nvarchar 19118
AdventureWorks Sales SalesOrderHeader CreditCardID int 31465
AdventureWorks Sales SalesOrderHeader CreditCardApprovalCode varchar 31465
[*] 辅助模块执行完成
|
如输出所示,工具发现了多个包含敏感信息的列,行数字段有助于识别可忽略或低优先级的列。接下来需要您手动查询这些列以检查具体数据内容。
下载
下载MSSQL敏感数据发现工具
目录
分类