資安業者Huntress近日發現甲骨文資料庫遭到駭客入侵後被用以當成跳板,對Windows發動攻擊、竊取用戶密碼。
Huntress本周揭露了一起利用傳統SQL注入(SQL injection)漏洞結合Oracle資料庫內建Java功能,成功將攻擊工具包khunt寫入資料庫內部,最終取得Windows作業系統SYSTEM權限的進階攻擊案例。
在這起案例中,一家企業對外服務App因為未能檢查輸入內容安全性,導致攻擊者得以發動SQL注入,取得系統控制權。在執行SQL注入時,攻擊者上傳名為khunt的後滲透工具包,使用了迄今十分少見的手法繼續其攻擊。研究人員說,這是2024年研究人員Anas Eladly曾經討論過,但較少文獻記錄的oraexec手法。
這個工具利用Oracle資料庫內建的Java虛擬機器(OJVM),將Java原始碼CREATE JAVA SOURCE陳述句(statement)直接寫入並編譯在資料庫引擎中,編譯成內部物件的特色。這物件之後就能透過SQL指令來執行。
Khunt本身包含數個元件,可執行不同指令。例如KhuntCmd可利用Java呼叫作業系統的cmd.exe,讓攻擊者傳送特定SQL陳述句執行任意OS指令。KhuntHash可直接讀取Oracle內部使用者表(User table),導出帳號與密碼雜湊(Hash)並寫入檔案。KhuntT能確認工具包已安裝、運作並能用於攻擊。KhuntUnzip能解壓縮檔案。數個PL/SQL wrapper可用於呼叫底層Java方法。
在這次事件中,攻擊者就實際運用KhuntCmd模組,開啟Windows command shell,執行cmd.exe指令使其得以取得SYSTEM層級權限,並從資料庫在OS執行RCE(remote code execution)。他還使用Windows內建工具(如reg.exe、esentutl.exe及PowerShell)呼叫Windows Registry工具(reg.exe),並將包括SECURITY和SYSTEM等敏感的Registry Hives複製出去。最後,攻擊者又複製SAM及SECURITY registry hive,複製來的Registry Hive可用於擷取和解碼本機帳號的密碼雜湊。
研究人員指出,這次攻擊是將惡意工具包儲存為資料庫物件,而非檔案或記憶體。但傳統端點偵測與回應(EDR)及防毒產品只著重在OS流程、函式和檔案,較不會掃描Oracle資料庫內的Java class和PL/SQL wrapper。因此要防範此類攻擊,管理員必須執行適當的輸入淨化(Input Sanitization)與查詢參數化(Query parameterization),也必須確保不能給予過大的查詢權限,以免攻擊者透過SQL注入手法,從使用者帳號撰寫Java原始碼、執行儲存程序。
Comments (0)