导出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.'
如果使用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')
如果使用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权限。
导出域用户示例
此示例将展示如何通过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(链接服务器)权限认证表
Scott Sutherland(@_nullbind)制作的OPENROWSET(Ad Hoc点对点查询)权限认证表
结论
信息侦查是评估Active Directory域环境安全性的重要且首要的一步。感谢Will Schroeder ( @harmj0y )和其他人在 Powerview 中所做的一些出色工作。希望这些AD信息侦查功能能够提供另一种方式来实现同样的目的。有关新添加的AD信息侦查功能的更多信息,请查看 PowerUpSQL wiki !
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 解锁canvas导出图片跨域的N中姿势
- ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程
- MrDoc 0.5.0 版本发布,优化 EPUB 导出,新增 PDF 导出,支持自定义思维导图
- 强大的姿势感知模型用于姿势不变的人脸识别
- php 导出 excel
- oracle导出序列sequence
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!