小記:藉助美創資料庫防火牆快速實現應急響應
-
事件概況
最近,部署在雲伺服器上的一臺資料庫防火牆有很多奇怪的日誌,其中登入日誌顯示有很多 IP 登入失敗,訪問日誌中有特定 IP 在執行一些不常見的 SQL 語句,下面我們簡單看一下。
SQL SERVER 登入日誌
SQL 執行記錄
-
簡單分析
01
從登入日誌上看,可以判斷有很多伺服器在嘗試爆破搭建在雲伺服器上的 SQL SERVER 賬號,沒啥好說的。要是願意的話,可以把 SQL SERVER 的預設埠1433改成自定義埠,被攻擊的情況會有改善。
02
從 SQL 執行記錄上看,首先判斷執行的這個 IP 不屬於公司內部人員,發現 IP 地址在波蘭,這些 SQL 也不是內部人員執行的,這裡就知道這臺伺服器被人黑了。
03
04
這裡我們重點看下,病毒是怎麼從 SQL SERVER 資料庫傳播到系統上的。在成功爆破資料庫賬號後,根據防火牆的 SQL 執行日誌,發現主要有幾條 SQL 在迴圈執行,我們依次來看下這幾條 SQL 的作用。
4.1 新增資料庫使用者 DBHELP 並賦予管理員許可權
4.2 啟用 xp_cmdshell 函式並重新整理配置,為什麼要啟用這個函式呢?因為通過這個函式可以直接執行作業系統上的命令。
4.3 通過 SQL SERVER 將 vbs 指令碼儲存至作業系統目錄,如果是系統版本指令碼會儲存在 C:\USERS\PUBLIC\MUSIC\1.VBS 。防火牆審計到的這段vbs指令碼內容是16進位制的,解碼後,其主要作用就是判斷作業系統版本,再從遠端伺服器上下載對應版本的挖礦程式,執行挖礦程式。
(16進位制的內容有點多,就不一一截圖了。)
4.4 定期執行作業系統上相關目錄的 vbs 指令碼,這裡的 vbs 指令碼就是通過 4.3 生成的。
除了通過 4.3 和 4.4 的方式進行挖礦感染,它還使用了另外一種方式。
4.5 定時通過 regsvr32.exe 將 vbs 的內容反註冊到 dll 中,其中 KMA2.SCT 的內容和 4.3 的16進位制內容是相同的。
4.6 利用 ASSEMBLY 觸發相關 dll ,從而執行 KMA2.SCT 的指令碼內容。
從這次挖礦病毒傳播手法來看,只要知道資料庫賬號,通過 SQL SERVER 的特性,便可以傳播挖礦病毒。
-
解決方法
1. 根據攻擊的流程,清除相關痕跡,不細說
2. 刪除黑客生成的賬號,修改資料庫賬號密碼
3. 根據 SQL SERVER 攻擊的 SQL 特性,生成特定的資料庫防火牆防禦規則,便可將以上兩種攻擊手段防禦住