35期報(bào)告匯總
安天發(fā)布《惡意樣本移動(dòng)后刪除繞過防御識別的方法分析》
原理:
底層功能函數(shù)MoveFileWithProgress具有將文件移動(dòng)重命名的功能。
BOOL WINAPI MoveFileWithProgress(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
LPPROGRESS_ROUTINE lpProgressRoutine,
LPVOID lpData,
DWORD dwFlags);
當(dāng)lpNewFileName = NULL 使用該函數(shù)會刪除需要移動(dòng)的文件,所以該函數(shù)在惡意代碼中多用作自刪除。
dwFlags為執(zhí)行該函數(shù)的方式。該樣本中使用MoveFile進(jìn)行移動(dòng)和重命名。

通過設(shè)置dwFlag = MOVEFILE_DELAY_UNTIL_REBOOT執(zhí)行完代碼后,重啟計(jì)算機(jī)將自刪除。

實(shí)現(xiàn)
1、獲取當(dāng)前文件路徑;

2、將自身重命名并且移動(dòng)到其他指定目錄下;

3、將路徑指向空,設(shè)置重啟后刪除方式,能完整執(zhí)行完惡意代碼;

運(yùn)行該測試用例,將自身移動(dòng)至指定目錄下并且重命名為7777.exe
NEWPATH = C:\\windows\\system32\\777.exe,運(yùn)行后桌面的程序移動(dòng)到指定目錄下,重啟后刪除自身。
檢測方法
由于該惡意行為不是直接通過刪除自身而是命名后刪除,混淆了主動(dòng)防御對自刪除的識別,因此需要通過組合規(guī)則來識別。首先獲取初始樣本的文件名,然后檢測MoveFile中參數(shù)中ExistingFileName1是否與初始樣本的文件名對應(yīng),并且記錄NewFileName1的值。滿足上述條件的情況下,獲取記錄MoveFileEx中的ExistingFileName2是否與MoveFile中的NewFileName1對應(yīng)相等,如果相等則判斷MoveFileEx中的NewFileName2是否為空,上述條件均滿足就能識別出通過移動(dòng)重命名自刪除的這種方法。
惡意樣本繞過主動(dòng)防御的方法還在更新升級,越來越多的新行為會不斷出現(xiàn),目前,安天追影高級威脅鑒定系統(tǒng)(PTD)已經(jīng)可以識別上述自刪除行為。