情报背景
AT&T Alien Labs 分析了近几个月Lazarus的攻击活动,分享了样本中观察到新技术情报为安全人员提供可选检测方案。在本篇文章中我们对其中出现的技术亮点进行分析研判与二次解读。
组织名称 |
Lazarus |
组织编号 |
APT38 |
战术标签 |
网络钓鱼 防御规避 |
技术标签 |
Lolbas 通配符 加密 |
情报来源 |
https://cybersecurity.att.com/blogs/labs-research/lazarus-campaign-ttps-and-evolution |
01 攻击技术分析
1. 分割base64编码的字符串规避检测
如图,宏中使用了base64加密包含的PE文件,加密后产生的字符串被分割,以避免被检测到PE文件的MZ标志。而从这篇报告看,安全研究人员也考虑到了这种情况,编写的yara规则不仅检测了MZ标志,还对常见的windows api, 如VirtuallAlloc 、 GetProcAddress 、IsDebuggerPresent 、 GetCurrentProcessId 等也做相关base64字符串的yara检测。
结合以往的实战经验,在尽量简便的情况下,钓鱼或脚本类样本大多都倾向于使用base64或异或等简单方式进行加密,base64其本质上算一种二进制编码方法,并不是加密,对固定的数据会编码出固定的字符串,如PE文件的DOS头标志 MZ 会被编码成字符串TV ,已经是被厂商重点关注和识别的特征,在yara规则中比较常见。而使用windows api的base64编码作为特征来检测还比较少见。实战化攻击时,当对象是PE文件或者包含 AMSI 等这类比较敏感的数据时,需要对编码后的字符串进行二次处理。
2. 重命名合法可执行文件certutil.exe副本规避EDR检测
certutil.exe 经常被攻击队伍用来下载和解码文件,而EDR等端点设备则会检测certutil.exe 此类程序的创建,各种社区的sysmon规则也有大量对这类程序的检测规则,通常是检测进程名+可疑参数的形式。这里Lazarus 想通过拷贝并重命名的方式来进行避免文件名检测。但从各类分析报告来看,此种规避方式渐渐的不再特别有效,因为本身PE文件在编译生成的时候文件属性中会包含有一项叫做原始文件名的数据,后期的修改文件名会造成原始文件名和当前文件名不一致,一定程度上反而引起更多的关注。
如图,虽然certutil.exe被重命名为m01n.exe, 但原始文件名并未发生改变,较新版的sysmon也已经包含对原始文件名支持。此类检测方式将显著削弱攻击者恶意利用合法可执行文件(如Lolbas等)进行防御绕过的能力。
3. 利用通配符拷贝文件的小技巧
分析文章中还提到Lazarus用来拷贝文件使用的一个小技巧,为了规避执行拷贝的命令行中的敏感字符串,使用通配符 * 避免产生certutil.exe 字符串。
c:\\\\windows\\\\system32\\\\cmd.exe /c copy /b %systemroot%\\\\system32\\\\*ertut*.exe c:\\\\driver\\\\DriverUpdateFx.exe
02 总结
Lazarus 作为非常活跃的攻击组织,TTPs在不断演变,攻击能力和防御绕过的能力不断提高,经常使用各种合法的系统组件进行打包、解码、执行等恶意操作。对合法组件的滥用已成为在野APT组织的常用手法。但在实战化的攻击中我们还看到攻击者试图对滥用产生的行为特征进行隐藏、规避检测,这又对安全产品的检测能力提出新的挑战。
声明:本文来自M01N Team,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。