最后更新于
最后更新于
Try Hard Security Group
Microsoft SQL Server 是由 Microsoft 开发的关系数据库管理系统。作为数据库服务器,它是一个软件产品,其主要功能是根据其他软件应用程序的请求存储和检索数据,这些应用程序可以在同一台计算机上运行,也可以在网络上的另一台计算机上运行(包括互联网)。
默认端口: 1433
master 数据库: 这个数据库非常重要,因为它记录了 SQL Server 实例的所有系统级别细节。
msdb 数据库: SQL Server 代理程序利用这个数据库来管理警报和作业的调度。
model 数据库: 作为 SQL Server 实例上每个新数据库的蓝图,其中任何更改,如大小、排序规则、恢复模型等,都会在新创建的数据库中得到反映。
Resource 数据库: 一个只读数据库,存放着随 SQL Server 提供的系统对象。这些对象虽然物理上存储在 Resource 数据库中,但在每个数据库的 sys 模式中逻辑上呈现。
tempdb 数据库: 用作临时存储区域,用于存放临时对象或中间结果集。
如果你对服务一无所知:
如果您没有凭据,可以尝试猜测它们。您可以使用nmap或metasploit。请注意,如果使用现有用户名多次登录失败,可能会锁定帐户。
可保护资源: 定义为由 SQL Server 管理的资源,用于访问控制。这些资源分为以下类别:
服务器 – 例如数据库、登录、端点、可用性组和服务器角色。
数据库 – 例如数据库角色、应用程序角色、架构、证书、全文目录和用户。
架构 – 包括表、视图、存储过程、函数、同义词等。
权限: 与 SQL Server 可保护资源相关联的权限,如 ALTER、CONTROL 和 CREATE 可授予给主体。权限的管理发生在两个级别:
服务器级别 使用登录
数据库级别 使用用户
主体: 此术语指被授予权限访问可保护资源的实体。主体主要包括登录和数据库用户。通过授予或拒绝权限,或将登录和用户包含在具有访问权限的角色中,来实施对可保护资源的访问控制。
请注意,要能够执行命令,不仅需要启用 xp_cmdshell
,还需要对 xp_cmdshell
存储过程具有 EXECUTE 权限。您可以查看谁(除了 sysadmins)可以使用 xp_cmdshell
:
您应该启动一个 SMB 服务器 来捕获在身份验证中使用的哈希(例如 impacket-smbserver
或 responder
)。
您可以通过以下方式检查除系统管理员之外谁具有运行这些 MSSQL 函数的权限:
使用诸如 responder 或 Inveigh 等工具,可以窃取 NetNTLM 哈希。 您可以查看如何使用这些工具:
默认情况下,MSSQL
允许对操作系统中帐户具有读取访问权限的任何文件进行读取。我们可以使用以下 SQL 查询:
然而,BULK
选项需要具有 ADMINISTER BULK OPERATIONS
或 ADMINISTER DATABASE BULK OPERATIONS
权限。
MSSQL可以允许您执行Python和/或R脚本。这些代码将由一个不同的用户执行,而不是使用xp_cmdshell执行命令的用户。
尝试执行一个**'R'** "Hellow World!" 不起作用的示例:
使用配置的Python执行多个操作的示例:
可以在MSSQL中使用自定义函数加载.NET dll。然而,这需要dbo
访问权限,因此您需要一个作为sa
或管理员角色连接到数据库。
如果将普通用户赋予**db_owner
角色访问由管理员用户**(如**sa
)拥有的数据库,并且该数据库配置为trustworthy
,那么该用户可以滥用这些权限进行权限提升**,因为在其中创建的存储过程可以作为所有者(管理员)执行。
你可以使用一个metasploit模块: