35期报告汇总
安天发布《恶意样本移动后删除绕过防御识别的方法分析》
原理:
底层功能函数MoveFileWithProgress具有将文件移动重命名的功能。
BOOL WINAPI MoveFileWithProgress(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
LPPROGRESS_ROUTINE lpProgressRoutine,
LPVOID lpData,
DWORD dwFlags);
当lpNewFileName = NULL 使用该函数会删除需要移动的文件,所以该函数在恶意代码中多用作自删除。
dwFlags为执行该函数的方式。该样本中使用MoveFile进行移动和重命名。
通过设置dwFlag = MOVEFILE_DELAY_UNTIL_REBOOT执行完代码后,重启计算机将自删除。
实现
1、获取当前文件路径;
2、将自身重命名并且移动到其他指定目录下;
3、将路径指向空,设置重启后删除方式,能完整执行完恶意代码;
运行该测试用例,将自身移动至指定目录下并且重命名为7777.exe
NEWPATH = C:\\windows\\system32\\777.exe,运行后桌面的程序移动到指定目录下,重启后删除自身。
检测方法
由于该恶意行为不是直接通过删除自身而是命名后删除,混淆了主动防御对自删除的识别,因此需要通过组合规则来识别。首先获取初始样本的文件名,然后检测MoveFile中参数中ExistingFileName1是否与初始样本的文件名对应,并且记录NewFileName1的值。满足上述条件的情况下,获取记录MoveFileEx中的ExistingFileName2是否与MoveFile中的NewFileName1对应相等,如果相等则判断MoveFileEx中的NewFileName2是否为空,上述条件均满足就能识别出通过移动重命名自删除的这种方法。
恶意样本绕过主动防御的方法还在更新升级,越来越多的新行为会不断出现,目前,安天追影高级威胁鉴定系统(PTD)已经可以识别上述自删除行为。