导出Active Directory域信息的新姿势

栏目: 数据库 · SQL Server · 发布时间: 7年前

内容简介:本博文介绍了如何使用SQL Server中的T-SQL下面的T-SQL显示了ADSI提供程序是如何与OPENQUERY和OPENROWSET一起使用来查询Active Directory信息的。首先,需要为ADSI提供程序创建SQL Server链接。示例中创建了名为“ADSI”的链接。

本博文介绍了如何使用SQL Server中的 OLE DB ADSI提供程序 查询获取Active Directory的域信息。在本文中,我还将分享许多新的PowerUpSQL函数,这些函数可用于通过SQL Server自动执行常见的AD信息侦测活动。希望这对Red teamers,渗透测试人员以及数据库爱好者有用。感谢 Scott Sutherland _nullbind )在AD信息侦测功能和PowerUpSQL上所做的工作!

T-SQL

下面的T-SQL显示了ADSI提供程序是如何与OPENQUERY和OPENROWSET一起使用来查询Active Directory信息的。首先,需要为ADSI提供程序创建SQL Server链接。示例中创建了名为“ADSI”的链接。

-- Create SQL Server link to ADSI
IF (SELECT count(*) FROM master..sysservers WHERE srvname = 'ADSI') = 0
EXEC master.dbo.sp_addlinkedserver @server = N'ADSI',
@srvproduct=N'Active Directory Service Interfaces',
@provider=N'ADSDSOObject',
@datasrc=N'adsdatasource'
ELSE
SELECT 'The target SQL Server link already exists.'

导出Active Directory域信息的新姿势

如果使用OPENQUERY,请将链接与当前身份验证上下文相关联。也可以在此处指定用户名和密码。然后运行示例查询。

注意:LDAP“路径”应设置为目标域。

-- Define authentication context - OpenQuery
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'ADSI',
@useself=N'True',
@locallogin=NULL,
@rmtuser=NULL,
@rmtpassword=NULL
GO
-- Use openquery
SELECT *
FROM OPENQUERY([ADSI],'<LDAP://path>;(&(objectCategory=Person)(objectClass=user));name, adspath;subtree')

导出Active Directory域信息的新姿势

如果使用OPENROWSET,则启用点对点查询。然后使用指定的用户名和密码或默认身份验证运行示例查询。

注意:LDAP“路径”应设置为目标域。

-- Enable 'Show Advanced Options'
EXEC sp_configure 'Show Advanced Options', 1
RECONFIGURE
GO
-- Enable 'Ad Hoc Distributed Queries'
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE
GO
-- Run with openrowset
SELECT *
FROM OPENROWSET('ADSDSOOBJECT','adsdatasource',
'<LDAP://path>;(&(objectCategory=Person)(objectClass=user));name, adspath;subtree')

加载 PowerUpSQL

PowerUpSQL 可以在PowerShell中以不同的方式加载。下面是一个基本示例,该示例说明了如何从GitHub下载和导入模块。

IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerUpSQL/master/PowerUpSQL.ps1")

新添加的 Active Directory Recon 功能

现在你已加载了PowerUpSQL,你可以使用新命令对域执行查询。但请注意,所有命令都需要sysadmin权限。

导出Active Directory域信息的新姿势

导出域用户示例

此示例将展示如何通过OPENQUERY使用链接服务器收集域中已启用的域用户。

Get-SQLDomainUser -Instance MSSQLSRV04\SQLSERVER2014 -Verbose -UserState Enabled

或者,可以通过OPENROWSET使用点对点查询运行该命令,如下所示。这个命令没什么特殊的,但该命令确实提供了一些选项来避免攻击检测,如果DBA正在审核链接服务器创建,而不是在审核目标环境中的点对点查询,那么就可以使用这种方式来获取域用户信息。

Get-SQLDomainUser -Instance MSSQLSRV04\SQLSERVER2014 -Verbose -UserState Enabled -UseAdHoc

这些函数还支持登录对SQL Server进行身份验证的备用SQL Server服务器,以及用于配置服务器链接的备用Windows凭据。可以在 此处 找到更多的命令示例。

身份验证和授权矩阵

根据当前用户的安全上下文或提供的凭据,用户可能没有权限访问查询AD来获取域信息。下表说明了 SQL 用户权限和相应的访问权限。

Scott Sutherland(@_nullbind)制作的OPENQUERY(链接服务器)权限认证表

导出Active Directory域信息的新姿势

Scott Sutherland(@_nullbind)制作的OPENROWSET(Ad Hoc点对点查询)权限认证表

导出Active Directory域信息的新姿势

结论

信息侦查是评估Active Directory域环境安全性的重要且首要的一步。感谢Will Schroeder ( @harmj0y )和其他人在 Powerview 中所做的一些出色工作。希望这些AD信息侦查功能能够提供另一种方式来实现同样的目的。有关新添加的AD信息侦查功能的更多信息,请查看 PowerUpSQL wiki


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Compilers

Compilers

Alfred V. Aho、Monica S. Lam、Ravi Sethi、Jeffrey D. Ullman / Addison Wesley / 2006-9-10 / USD 186.80

This book provides the foundation for understanding the theory and pracitce of compilers. Revised and updated, it reflects the current state of compilation. Every chapter has been completely revised ......一起来看看 《Compilers》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试