首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

Winnti,一個被認為至少從2012年開始活躍的黑客組織,攻擊目標主要是網絡遊戲和軟件行業,包括竊取遊戲項目的源代碼以及由合法軟件供應商簽發的數字證書。

近日,網絡安全公司ESET發現了一個此前從未被公開披露過的後門程序——“skip-2.0”,它與Winnti此前使用的PortReuse後門存在很多相似之處,攻擊目標是微軟SQL(MSSQL)Server用戶。

skip-2.0分析

skip-2.0的感染目標是MSSQL Server 11和12,允許攻擊者隱蔽地連接到任何MSSQL帳戶,進而複製、修改或刪除數據庫內容。儘管MSSQL Server 11和12均屬於比較老舊的版本(分別於2012年和2014年發佈),但不可否認,它們至今仍被廣泛使用。

與PortReuse後門一樣,經加密處理的skip-2.0嵌入在VMProtected(此前的有效載荷是PortReuse和ShadowPad)的overlay中。

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

圖1. VMProtected的header,有效載荷嵌入在 PE overlay中

解密後,我們會得到一個Winnti組織的自定義打包程序,它包含一個被命名為“Inner-Loader”的有效載荷。

Inner-Loader會尋找一個名為“sqlserv.exe”的進程,這是MSSQL Server的一個常規進程名稱。

一旦找到,Inner-Loader就會將有效載荷(skip-2.0.dll)注入其中。

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

圖2.skip-2.0的拆包和注入

skip-2.0所使用的掛鉤過程與PortReuse的NetAgent模塊所使用的掛鉤過程非常相似,基於

distorm開源反彙編程序。

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

圖3. NetAgent(左)和skip-2.0(右)掛鉤過程之間的Hex-Rays輸出對比

不同的是,來自skip-2.0的鉤子函數會將要安裝的鉤子的地址作為參數,而對於NetAgent來說,要安裝的鉤子的地址是硬編碼的。

為了找到要掛接的每一個sqllang.dll函數,skip-2.0首先會通過解析其PE標頭來檢索加載到內存中的DLL的大小(即其虛擬大小)。然後,初始化要在sqllang.dll中匹配的字節數組,如圖4所示。

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

圖4.初始化字節數組以匹配 sqllang.dll 的過程的Hex-Rays輸出

一旦找到與字節數組匹配的第一個匹配項的地址,就會使用如圖3所示的過程來安裝鉤子。

鉤子安裝成功後,將以明文形式記錄在位於硬編碼路徑C:\\Windows\\Temp\\TS_2CE1.tmp的日誌文件中,如圖5所示。

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

圖5.在鉤子安裝期間生成的日誌

無需密碼就可搞定一切

skip-2.0的目標函數均與身份驗證和事件日誌記錄有關,這其中包括:

  • CPwdPolicyManager::ValidatePwdForLogin
  • CSECAuthenticate::AuthenticateLoginIdentity
  • ReportLoginSuccess
  • IssueLoginSuccessReport
  • FExecuteLogonTriggers
  • XeSqlPkg::sql_statement_completed::Publish
  • XeSqlPkg::sql_batch_completed::Publish
  • SecAuditPkg::audit_event::Publish
  • XeSqlPkg::login::Publish
  • XeSqlPkg::ual_instrument_called::Publish

最值得一提的是第一個函數(CPwdPolicyManager::ValidatePwdForLogin),它負責驗證為給定用戶提供的密碼。無論密碼正確與否,掛鉤都將返回0。也就是說,即使密碼不正確,也允許連接。

首個微軟SQL Server 後門被曝光,疑似出自黑客組織Winnti之手

圖6. 將密碼與硬編碼字符串進行對比

結論

skip-2.0允許攻擊者在即使沒有正確密碼的情況下也能夠連接到MSSQL Server,但僅限於11和12版本。

儘管MSSQL Server 11和12均屬於比較老舊的版本,但鑑於它們至今仍在被廣泛使用,因此我們不應低估skip-2.0的破壞力。

想要檢查自己的設備是否已感染了skip-2.0,不妨試試ESET公司創建的YARA規則。


分享到:


相關文章: