一、概述
近期,微步在线发现一起蔓灵花组织针对巴基斯坦电信管理局的攻击活动,经过快速分析,得到如下结论:
- 攻击者使用仿冒的OpenVPN安装包对巴基斯坦电信管理局进行攻击,该安装包会同时运行木马与正常的OpenVPN安装程序。
- 木马运行过程中,会先删除以往的旧版本木马,再下载执行新的木马。
- 攻击者会依次判断受害主机,并且只对部分感兴趣的主机进行下发后续木马操作,根据代码来看,攻击者只对运行了某些特定进程的用户感兴趣,并通过关键词“llll”判断返回内容中恶意PE文件的起始位置。
- 微步情报局对当前样本提取了C2,并进行了拓线分析,发现了攻击者背后的当前其他资产,建议利用内部安全设备直接进行阻断,具体资产请参见附录。
二、事件详情
近期,微步在线捕获了一批蔓灵花组织针对巴基斯坦的攻击样本,攻击者仿冒OpenVPN的安装包,命名为“TelecomVPN”或“PTAOpenVPN”,其中PTA疑似指巴基斯坦电信管理局(Pakistan Telecommunication Authority)。
攻击者将木马程序与白文件OpenVPN的安装程序打包在一起,当用户执行后会从中释放并执行木马文件与真正的OpenVPN安装程序。
图1释放执行多个文件
释放出的shell.exe是攻击者的下载器,负责下载执行后续模块。值得注意的是,攻击者会查找老版本木马的代码,并将其删除,其中部分文件名如“pku2u.exe”、“lsapip.exe”都是已知的蔓灵花组织不同功能模块。
图2攻击者留下的文件名
而后续文件“pku2u.exe”则表明攻击者似乎对运行了某些特定进程的用户感兴趣,在木马成功运行后,会遍历进程列表,查找与攻击者C2地址返回的进程名相匹配的进程,匹配到对应进程后,再与C2地址建立通信。
攻击者不会对所有中招用户下发后续木马,而是通过判断受害者并定向选择攻击目标,只有当对应的C2地址页面返回内容为受害主机的计算机名时,才会进行下一步操作。攻击者在与主机通信过程中,使用了简单但有效的方式来判断有效数据的起始位置,通过使用关键词“llll”来判断有效的起始位置,进而读取C2地址的内容。
图3以“llll”作为关键字
三、样本分析
TelecomVPN.exe
该模块是一个Dropper,通过提取攻击者添加在文件尾部的加密数据,解密后释放到指定目录,并运行释放出的文件。其中,释放出的文件包括正常的OpenVPN安装程序与后续木马。攻击者在解密完成后并没有删除原文件,导致文件的密文与明文都存放在主机的同一目录下。
静态信息:
SHA256 | 8a30ae10d19e3b0853d45a886f578eac5235a18c5d7251382277174673d6cbcc |
SHA1 | 75a9e1d2f6075cd7c905663eb520dffe99b3dd16 |
MD5 | 4b587ac091e7bd6ded61133683c91be5 |
样本大小 | 3,908,848 Bytes |
样本格式 | PE32 executable |
样本是仿造OpenVPN客户端安装程序,在分析过程中发现了攻击者留下的PDB路径:“C:\Users\win10\source\repos\WinWord\Release\WinWord.pdb”。
图4 PDB路径
木马在运行后,会执行正常的OpenVPN安装程序,不过在此之前,会先将恶意代码执行完毕。
图5 OpenVPN安装程序
攻击者将正常的安装程序与后续木马存放在程序尾部,在运行过程中取出释放到指定文件中。
图6从文件中读取加密内容
通过Microsoft自带的加解密函数,对内容进行解密,解密后取出两个文件“shell.exe”、“msdtm.exe”。“shell.exe”为攻击者的后续木马,而“msdtm.exe”则为正常的OpenVPN安装程序,无恶意内容。解密完成后,执行两个释放出的文件。
图7执行释放出的文件
pku2u.exe
该模块为攻击者的下载器,木马向C2地址发起多次请求发送主机信息,并且判断C2地址返回内容,当请求次数大于等于5并且返回内容与主机名+用户名相同时,进入下载后续木马阶段。木马通过关键字“llll”判断后续木马文件结构的起始位置,将其保存到本地并执行。
静态信息:
SHA256 | d49285d14532f28a0004cb2725f51c6a881471a95fb04f03d2fa343d2f2db614 |
SHA1 | 531e2386fd8333e3e48e6d6dcee452c2bf1610e9 |
MD5 | 2d61c8a200aae9609d1efc528eefd75d |
样本大小 | 52,224 Bytes |
样本格式 | PE32 executable |
攻击者使用了不同的加解密算法,不再是以往的同一个KEY,在调用每一个解密函数时传入不同的KEY值作为参数,并且循环KEY值每一位依次解密每个字符。
图8解密算法
木马还会遍历进程查找进程名为“MsMp”与“avp”的程序,“avp”为卡巴斯基杀毒软件进程,遍历到对应进程后,会在自启动注册表中创建自启。
图9修改后的注册表
将当前木马拷贝到文件“C:\Users\sam\AppData\Local\tm”,然后删除拷贝到该文件夹下的木马文件。
图10拷贝并删除
向C2地址“meeting.mswsceventlog.net”发起Http请求,当C2进行响应后,回传受害主机的计算机名、用户名等信息。
图11请求C2地址
木马会通过C2地址返回内容判断是否继续执行,还会从进程列表中遍历返回的指定进程名,遍历到指定进程后,又向C2地址发送一次请求,并且发送的请求拥有固定格式:“RNGllll[进程名]llll”。
当发送请求次数大于5时,并且当C2地址返回当前的计算机名与用户名,才会进入远程下载阶段。这样一来,攻击者就可以筛选针对哪些主机下发后续木马。
图12判断C2地址返回内容
攻击者通过关键字“llll”对C2地址返回的内容进行判断,当判断到关键字时,创建新文件夹“C:\Users\sam\Appdata\Local\Debug”,并将C2地址返回的内容写入到该目录下命名为“.exe”并执行这个文件。
图13执行下载的文件
shell.exe
该模块是攻击者的一个下载器,攻击者在代码中使用了大量的COM组件相关内容,通过判断路径是否存在的方式判断是否第一次运行,并且从C2地址“mswsceventlog.net”下载执行不同的木马。
静态信息:
SHA256 | 49eafb373231d6c77e427a146cd7e7dc40607c70d6a584674509cf99ecf46667 |
SHA1 | c53b6db1a30366c214afadee4eb3a521412dcd74 |
MD5 | eb3fe67c5e7b7c6221aae16f91fba357 |
样本大小 | 11,264 Bytes |
样本格式 | PE32 executable |
攻击者在前一阶段中的pdb文件名为“WinWord”,而在该木马中又使用了“PowerPoint”。
图14 PDB路径
木马进行了大量COM组件操作,并且会判断路径“C:\\Users\\Public\\Music\\p2p”是否存在,如果存在则向C2地址“mswsceventlog.net”请求后续木马保存至本地并删除该目录。值得注意的是攻击者使用了Curl命令向C2地址发起请求,但是Curl在Windows7环境下并不是系统自带工具,所以在没有安装此工具的情况下会出现错误。
图15尝试下载后续木马
当目录“C:\\Users\\Public\\Music\\p2p”不存在时,木马会使用msiexec.exe安装攻击者存放在C2地址中的MSI安装程序,并创建目录“C:\\Users\\Public\\Music\\p2p”。
图16下载后续文件
为当前木马创建计划任务,每15分钟运行一次,并执行进程“C:\\Users\\Public\\Music\\zenapp.exe”,并且会判断路径“C:\\Windows\\SysNative\\Tasks\\Chsme”,当路径不存在时,执行新程序“C:\\Users\\Public\\Music\\zenapp.exe”。
图17创建计划任务、执行新进程
在该模块另一个版本中,攻击者还会删除以往投递的老版本木马“pku2u.exe”。除了该文件外,攻击者在代码中还列出了大量文件名,其中部分为已知的蔓灵花组织所使用的名称。
图18攻击者列出的文件名
四、关联分析
本次攻击活动中,攻击者所使用的后续载荷“pku2u.exe”,与以往的蔓灵花组织模块“update”十分相似,字符串的加解密代码完全相同。
在与远程地址通信过程中,回传信息格式也与以往蔓灵花的攻击活动高度相似:
helpdesk.autodefragapp.com/dFFrt3856ByutTs/xnb/data1.php?id=WORK&&user=adminZxxZWindows7Professional | meeting.mswsceventlog.net/MeetingPlaceID/Logs/meetingid.php?id=WALKER-PC&&user=WALKER&&OS=Windows7Enterprise |
以往攻击活动 | 此次攻击活动 |
五、相关活动
本次攻击中印度蔓灵花组织利用OpenVPN向巴基斯坦发起攻击。在其两国长久的网络战中,我们观察到之前也有巴基斯坦团伙SideCopy仿冒印度KAVACH发起攻击。
KAVACH是印度一款双因子身份验证软件。2021年2月,印度政府强制要求所有在@gov.in与@nic.in的域账户安装KAVACH软件,而2021年7月,Cisco的安全研究院披露了SideCopy组织使用一款名为“Nodachi”的插件窃取KAVACH的信息。“Nodachi”是一款巴基斯坦攻击者所使用的一款插件,在对印攻击中,攻击者使用该木马窃取受害者密码等信息,该木马调用Github开源项目“goLazagne”等对主机存储的各类密码进行窃取。除此之外攻击者还会尝试窃取“KAVACH”程序的数据库文件:
图19攻击者代码
在这两起攻击事件中,印巴攻击者都使用VPN或二步验证程序作为诱饵或仿冒其软件对目标发起攻击,且在双方的攻击中,恶意软件都出现了模块化特征,将其下载、窃取、搜集、回传等不同功能存放于不同模块中。
六、结论
印巴网络战持续已久,两国间冲突不断,在本次攻击活动中,蔓灵花组织针对巴基斯坦电信管理局发起攻击,将恶意木马与OpenVPN打包在一起,仿冒OpenVPN安装包,引诱用户运行恶意文件。
攻击者筛选某些执行特定进程的用户,针对此类用户下发后续木马,在下发过程中,需要攻击者C2页面返回内容与受害主机回传内容相同,才会进行下一步操作,其后可能攻击者会手动筛选部分特定主机。
七、处置建议
威胁处置
1、杀掉进程:
shell.exe
update.exe
2、删除文件:
C:\Users\Public\Music\power
C:\Users\Public\Music\Shell.exe
C:\Users\Public\Music\p2p
C:\Users\User\AppData\Local\Updates
3、删除计划任务
安全加固
- 及时更新系统/应用程序补丁或版本;
- 谨慎点击未知.exe文件;
- 建立办公软件库,严格把控第三方软件下载渠道;
- 及时排查威胁检测设备告警,及时处置相关威胁。
附录 – IOC
C2
mswsceventlog.net
Hash
8a30ae10d19e3b0853d45a886f578eac5235a18c5d7251382277174673d6cbcc
c940549ba2f1d7592c2336428ca3d2f9560ed1dfda5d4227a4132bc87bead58a
b0d1b6369ca1bb97d529819bb9ea64e63cf25e965147acff5663667adf1bfde8
49eafb373231d6c77e427a146cd7e7dc40607c70d6a584674509cf99ecf46667
d49285d14532f28a0004cb2725f51c6a881471a95fb04f03d2fa343d2f2db614
更多精彩内容,敬请关注“微步在线研究响应中心”微信公众号。