當前位置:
首頁 > 最新 > 攻擊Windows PXE 啟動鏡像

攻擊Windows PXE 啟動鏡像

你曾經在一次滲透測試中運行過不安全的PXE啟動部署,那麼你就會知道它們可以為許可權升級提供大量的可能性。獲取PXE啟動鏡像的許可權可以為攻擊者提供一個連接已加入域的系統、域憑據和橫向或垂直移動滲透的機會。本博文概述了許多不同的方法來提升特權並從PXE啟動鏡像中檢索密碼。這些技術分為三個部分:後門攻擊、密碼抓取攻擊和後登錄密碼轉儲。許多攻擊將依賴於安裝Windows鏡像文章主題將從「鏡像磁碟」開始。

推薦工具:

·VMware(工作站或Fusion)

·Microsoft Hyper-V

·Kali Linux iso

·Windows鏡像(本文使用Windows 10專業版)

總體概述:

·PXE使用Hyper-V引導Windows鏡像

·安裝Windows鏡像

·後門攻擊

o 在安裝過程中添加本地管理員

o 安裝鏡像磁碟 - 向所有用戶添加批處理文件或可執行文件

o 裝載鏡像磁碟 – 替換sethc.exe或其他輔助功能選項

o 裝載鏡像磁碟 - 使用chntpw工具覆蓋管理員密碼

·密碼抓取攻擊

o 在安裝或登錄過程中抓取VM內存文件以獲取密碼

o 安裝鏡像磁碟 - 查看本地Unattend / Sysprep文件

o 安裝鏡像磁碟 - 複製SAM文件並使用管理員帳戶的HASH進行PTH攻擊

o 安裝鏡像磁碟 - 複製SAM文件並破解管理員帳戶

·登錄密碼轉儲

緩解和預防

參考

PXE使用Hyper-V引導Windows鏡像

通過新建虛擬機嚮導創建新的虛擬機。遵循指導的步驟,並確保選擇「從基於網路的安裝伺服器安裝操作系統」選項。嚮導完成後檢查設置菜單,並確保「傳統網路適配器」位於啟動順序的第一個位置。

保存並啟動虛擬機。PXE網路安裝應該啟動並開始Microsoft Deployment Toolkit部署嚮導。

運行嚮導並開始目標鏡像的安裝任務序列。這可能需要一段時間。

安裝Windows鏡像

一旦完成設置(包括Windows操作系統設置),你應該有一個工作的Windows VM。確保安全關閉虛擬機並下載Kali Linux iso。轉到設置菜單並選擇DVD驅動器鏡像文件的位置。

現在,更改引導順序,使「CD」位於BIOS啟動順序的頂部。

保存設置並啟動虛擬機。選擇啟動進入「Live(取證模式)」。

一旦啟動Kali,請使用以下示例命令裝入Windows分區。確保將分區改為本文示例所使用的/dev/sda2分區。

fdisk -l

mkdir /mnt/ntfs

mount -t ntfs-3g /dev/sda2 /mnt/ntfs

後門攻擊

1.在安裝過程中添加本地管理員。

這可能是獲得對系統鏡像的高級訪問的最簡單方式。在經過Windows PE啟動過程之後,返回到VM的設置菜單。將「IDE」設置為BIOS部分「啟動順序」中的頂部。

保存設置,啟動虛擬機,然後連接到控制台。虛擬機應該進入最初的Windows安裝過程。按Shift + F10將彈出一個系統控制台。請注意,這與在Windows PE部署階段按F8不同。輸入以下命令以添加你的本地管理員用戶。

net user netspi Password123! /add

net localgroup administrators /add netspi

檢查管理員組成員資格。

現在用戶已創建並添加到管理員組,請等待虛擬機完成設置並登錄。

登錄後,你將擁有本地管理員許可權!我們可以執行更進一步的操作,通過PsExec獲得本地系統。

PsExec.exe -i -s cmd.exe

本地系統的cmd可用於檢查計算機帳戶是否具有域用戶許可權。使用諸如BloodHound / SharpHound之類的工具來映射域,這可能是一個很好的起點。

2.安裝鏡像磁碟 - 將批處理或可執行文件添加到所有用戶。

位於C:Users%用戶名%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup中的快捷方式或文件將在用戶登錄啟動時運行。將目錄更改為管理員的啟動目錄並使用以下命令創建批處理文件。

@echo off

net user "startup" "password" /add

net localgroup "Administrators" /add "startup"

批處理文件將在管理員用戶登錄時運行。如果此攻擊與攻擊情形#4結合使用,則管理員用戶可以使用空密碼登錄。檢查以確認啟動用戶是在登錄後創建並添加到管理員組。

3.安裝鏡像磁碟 – 替換sethc.exe或其他輔助功能選項。

替換sethc.exe(粘滯鍵)是一種經典的特權升級技術。sethc.exe位於%windir%System32sethc.exe中。下面的命令複製cmd.exe並將其重命名為sethc.exe。

cp cmd.exe sethc.exe

如果啟用粘滯鍵,當連續單擊五次「Shift」時,將彈出一個本地系統的cmd。

4.安裝鏡像磁碟 - 使用chntpw工具覆蓋管理員密碼。

chntpw工具可以清除Windows用戶的密碼。SAM和SYSTEM文件位於%windir%System32config目錄中。

netspi用戶的密碼被清除,並且可以在不輸入密碼的情況下登錄帳戶。

密碼抓取攻擊

5.在安裝或登錄時抓取VM內存文件以獲取密碼。

我的同事詹姆斯·休斯頓應對這次攻擊的過程值得說出來。這裡的一般想法是使用快照或暫停功能來捕獲虛擬機內存中的密碼。這可以在實際的PXE引導部署過程,安裝或登錄步驟中完成。此示例將在MDT部署過程中檢索部署服務帳戶的密碼。

部署用戶用於在部署任務序列的「計算機詳細信息」步驟中將計算機加入域。

此時,暫停或拍攝虛擬機當前狀態的快照。在Hyper-V中,使用檢查點功能拍攝快照。在「設置」中的「檢查點」菜單下,確保選擇了「標準檢查點」。這將確保應用程序和系統內存被捕獲。快照位置也在此菜單中設置。

瀏覽到快照文件位置並查找你的虛擬機管理程序的相應文件。

· VMWare:.vmem,.vmsn(快照內存文件),.vmss(暫停內存文件)

· Hyper-V:.BIN,.VSV,.VMRS(虛擬機運行時文件)

由於此示例使用Hyper-V,請複製.VMRS文件以搜索密碼。我使用Kali Linux以及字元串和grep來查找服務帳戶和密碼。如果在Windows部署嚮導過程中未顯示用戶名或密碼,搜索「用戶」或「密碼」等關鍵字是一個很好的開始。

strings PXEtest.VMRS | grep -C 4 "UserID=deployment"

6.安裝鏡像磁碟 - 查看本地Unattend/Sysprep文件。

Unattend和Sysprep文件可以包含用於部署和設置的密碼。以下位置包含與Sysprep相關的文件。

· %WINDIR%Panther

· %WINDIR%PantherUnattend

· %WINDIR%SYSTEM32Sysprep

在這種情況下,unattend.xml文件已被清理,但始終值得檢查這些位置是否有密碼和敏感信息。

7.安裝鏡像磁碟 - 複製SAM文件,並使用管理員帳戶的HASH執行PTH攻擊

SAM和SYSTEM文件位於%windir%System32config目錄中。

這個文件可以拷貝到你的本地機器上,Mimikatz可以用來提取哈希值。管理員散列可通過使用CrackMapExec或Invoke-TheHash的散列攻擊。

crackmapexec smb targetip -u username -H LMHASH:NTHASH

Invoke-SMBExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -

Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "command or launcher to execute" -verbose

如果域共享本地管理員密碼,這可能是提升許可權的非常有效的技術。

8.安裝鏡像磁碟 - 複製SAM文件並破解管理員帳戶

像上面一樣,一旦將SAM和SYSTEM文件複製到本地計算機上,管理員帳戶可以使用Hashcat或John the Ripper破解。下面是一個Hashcat示例破解命令。訪問hashcat wiki以獲取設置和基本用法。

hashcat64.bin -m 1000 targethashes.txt wordlist.txt -r crackrule.rule -o cleartextpw.txt --outfile-format 5 --potfile-disable --loopback -w 3

登錄密碼轉儲

一旦上述技術可以訪問PXE引導鏡像,我們可以轉儲密碼。Mimikatz是導出密碼的好工具。

sekurlsa :: logonpasswords會從LSASS內存轉儲密碼。

lsadump :: secrets轉儲LSA密文。

vault :: cred從證書管理器轉儲保存的憑證。但是,如果將保存的憑證設置為域密碼類型,則此命令將不會成功檢索憑證。該Mimikatz維基對如何提取這些憑據一個很好的解釋。

緩解和預防

使用不需要任何身份驗證或授權的PXE進行相關的部署過程固然是有安全風險的,特別是在用戶的LAN上。強烈建議PXE安裝需要憑據才能開始安裝過程。例如,只需在System Center Configuration Manager中檢查「計算機使用PXE時需要密碼」,就可以在分發伺服器上配置此功能。

上述攻擊的主要內容中的一點是,包含敏感數據的應用程序或軟體不應包含在任何鏡像中。另外,共享本地管理員密碼或服務帳戶密碼不應在鏡像上(或域中的任何位置)使用。鏡像可能會受到影響,這應該有助於降低域中計算機的風險。最後,PXE部署應該只能在隔離網路上使用。查看Microsoft提供的這些最佳實踐,以獲取有關保護PXE引導部署的更多信息。

參考

感謝Scott Sutherland(@ _nullbind),Alex Dolney(@ alexdolney)和James Houston的智慧和指導!

https://www.vmware.com/products/personal-desktop-virtualization.html

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/about/

https://www.kali.org/downloads/

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

https://github.com/BloodHoundAD/BloodHound

https://github.com/BloodHoundAD/SharpHound

https://github.com/byt3bl33d3r/CrackMapExec

https://github.com/Kevin-Robertson/Invoke-TheHash

https://hashcat.net/wiki/

https://github.com/gentilkiwi/mimikatz

https://github.com/gentilkiwi/mimikatz/wiki/howto-~-credential-manager-saved-credentials

https://docs.microsoft.com/en-us/sccm/osd/plan-design/security-and-privacy-for-operating-system-deployment


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

鍵盤記錄器用法新姿勢:挖礦
黎巴嫩國家APT組織「黑山貓Dark Caracal」浮出水面

TAG:嘶吼RoarTalk |