黑狮行动:针对西班牙语地区的攻击活动分析
发布时间 2019-05-18近期,启明星辰ADLab监测到一批疑似针对西班牙语地区的政府机构及能源企业等部门的定向攻击活动,黑客组织通过构造恶意Office Word文档并配合鱼叉邮件发起定向攻击,以“简历更新”作为诱饵文档向攻击目标植入间谍木马,从事情报收集、远控监视及系统破坏等恶意行动。我们将土耳其黑客的此次攻击行动称为“黑狮行动”。
通过对攻击者的行为和所用服务器相关信息的分析和追踪,确定该次攻击来源于一批隐秘多年的土耳其黑客组织-KingSqlZ黑客组织。该组织是一个民族主义色彩非常浓厚的黑客组织,曾攻下其他国家的3千多个网站服务器,并高调的在被攻击网站上留下其组织的名称,随后消失了多年。 如今通过我们对”黑狮行动”的追踪再次挖出该黑客组织的活动迹象。本次攻击过程中,该黑客组织采用渗透手段攻下多台服务器并将其作为存放攻击代码的跳板。
1威胁分析
1.1 攻击目标分析
从目前所获取的攻击样本和威胁情报,可以看出本次攻击活动并没有大规模的进行,目前还处于攻击试探阶段,但是从其投放的诱饵文档可以简单的确定其攻击目标锁定在西班牙语系的国家。这些诱饵文档形如:“Curriculum Vitae Actualizado Jaime Arias.doc”(简历更新 海梅阿里亚斯)、“Curriculum Vitae Actualizado Daniel Ortiz.doc”(简历更新 丹尼尔奥蒂兹)、“Michelle Flores - Curriculum Actualizado.doc”(米歇尔弗洛雷斯-简历更新)、“Jose Trujillo.doc”(何塞特鲁希略)等等,它们均采用西班牙语来构造一个带恶意宏代码的简历文件。以此来对目标人力部门进行攻击,以诱使相关人员执行恶意代码进而从事间谍活动。
在我们分析这批诱饵文档时,还发现一个有趣的现象,那就是许多诱饵文档中包含了文档作者信息和最后一次保存者信息,并且这些信息均为类似财政部、信访局、SCG(Southern Connecticut Gas)等等与政府部门相关的信息。通过我们实际测试发现,这些信息均会在文档修改后变成当前访问者office登陆账户名或者主机名,并且有心的人还可以对其进行任意定制。我们选取几个典型的样本并针对相关信息和逻辑关系做了如下梳理和推论:
我们通过创建内容时间、最后修改时间及攻击文档内部的逻辑关系推论出相关记录应为攻击者保存。基于最合理以及最有可能的推测,我们认为攻击者可能是基于黑客组织内部规范,将文档的相关名称设置为攻击目标或相关行业信息,从而伪造成内部人士,在一定程度上起到混淆视听、隐蔽自身的目的。
由此我们可以看出此次行动的攻击目标为西班牙语系地区的政府或者公共服务部门,当然并不排除其有更多的目标,至少可以肯定的是此次行动是一次带有政治目的的攻击活动。
1.2 黑客组织分析
在恶意代码存储路径的同目录,我们发现黑客组织所留下的一些信息,下图为其中一个文件记录的信息:
该文件中包含了一些声明信息、黑客组织及其相关成员,并且所采用的语言为土耳其语,因此我们判定该组织正是曾经活跃一时的KingSqlZ黑客组织。该服务器很有可能在被黑客组织控制后作为跳板机或资源服务器继续使用。此外通过恶意代码时区分析法,我们进一步确定该次攻击来自于土耳其黑客。我们对RAT样本之前的PE文件及其他前期攻击环节相关的样本的编译时间做了时区分析(因为RAT样本来自于上游黑客,因此我们忽略了该类样本的时区分析)。最后发现这些攻击样本的编译时间在UTC时间21:00至06:00区间内出现的频次极低。而假定以24:00至08:00作为睡眠时间,攻击者所处的时区可能会在东3区(UTC+3)正负 1 小时区间内,而土耳其时区为东三区正好符合。
本次攻击活动开始于2019年,采用大量公共DDNS服务子域名作为C2来实施攻击,这其中的一些域名为2019年新注册的,使用的部分域名如下:
casillas.hicam.net
casillasmx.chickenkiller.com
casillas.libfoobar.so
du4alr0ute.sendsmtp.com
settings.wifizone.org
wifi.con-ip.com
rsaupdatr.jumpingcrab.com
activate.office-on-the.net
2攻击概述
此次事件的主要攻击活动时间线如下所示:
其中,我们对2019年2月7日发现的“Curriculum Vitae Actualizado Jaime Arias.doc”文档进行了详细的分析,并相继捕获到关联文档“Curriculum Vitae Actualizado Daniel Ortiz.doc”和“Michelle Flores - Curriculum Actualizado.doc/ Jose Trujillo.doc”。
攻击者使用了API哈希、无文件攻击、WinrarSFX、AutoIt、C#混淆和傀儡进程等技术来规避检测并干扰分析人员。其中,“Curriculum Vitae Actualizado Jaime Arias.doc”文档植入的木马来源最初无法确认,我们在其中发现了特征字符串“AVE_MARIA”,其与Cybaze-Yoroi ZLab研究人员在2018年12月底披露的针对意大利某能源企业进行攻击的恶意软件相似度很高,部分安全研究员和厂商因为没有成功的进行溯源便以此字符串做为该木马家族的名称。而我们经过关联溯源和同源性分析后发现,“AVE_MARIA”类恶意样本同RAT工具“WARZONE”RAT具有高度一致性,因此将此类恶意家族命名更新为“WARZONE”。
3技术分析
3.1 早期攻击样本
此次攻击过程开始于一个携带恶意宏的DOC文档,黑客通过伪造成简历的投递邮件手段将此恶意文件发送给攻击目标,当目标用户不慎打开文档便成为了受害者。DOC文档运行后会启动恶意宏代码并从指定的服务器下载Etr739.exe,成功下载后立即执行。新进程通过Base64解码出另一个服务器地址,继续下载恶意代码hqpi64.exe至临时目录下。恶意程序hqpi64.exe便是Warzone RAT的释放器,其通过释放Warzone RAT来执行后续操作,如将explorer.exe作为傀儡进程守护、与控制端进行通信等。
样本中的恶意代码大部分采用CRC32来加密敏感字串,同时在API调用手法上采用了API Hash值动态获取函数地址和模拟系统快速调用两种方式。使用此类手法不但能在一定程度上减少杀软静态扫描的检测,而且还不易被监测到API的调用踪迹。同时其使用纯加密Shellcode代码内存执行的方式加载其核心功能模块,通过“无文件技术”提高自身隐蔽性,以此来躲避安全厂商查杀。其与C2服务器间的通信数据也以CR4算法进行加密进而规避IDS系统的检测。
(1)DOC文档
在AutoOpen函数中包含了一串混淆过的cmd命令,经过解密后的代码如图所示:
这段代码获得执行后,会直接从此链接地址(http[:]//linksysdatakeys.se)下载恶意程序到“%Temp%\SAfdASF.exe”并执行。
(2)Payload
该Payload先将上图中加密的数据通过Base64解码出下载链接地址“http[:]//www.gestomarket[.]co/hqpi64.exe”,然后把hqpi64.exe更名为2XC2DF0S.exe并保存在临时目录下。
(3)Dropper
在后续的解密以及执行的过程中,此Dropper会把一段Shellcode注入到explorer进程并在内存中解密出RAT实体使其不落地,最终通过无文件技术将RAT加载到内存中来执行。
逃避检测
解密shellcode
自定义的解密函数
经过重重下载并解密之后,那么这段解密后的Shellcode(PE Loader)代码具体会做些什么,下面我们来一窥究竟。
PE Loader
序号 |
内容 |
功能 |
参数1 |
“FYBLV” |
拷贝自身的目录名和文件名(需解密的资源名) |
参数2 |
“BJU” |
RAT远控文件(需解密的PE文件资源名) |
参数3 |
“OPTYUPPABIVSUWNRXSNCTDW” |
Key |
参数4 |
0x01(固定数值) |
未使用 |
该PE Loader首先在运行过程中进行了沙箱和指定进程的检测,以防止被自动化系统分析。并且根据自带的资源数据来判定是否实施驻留本机的操作和注入体的选择。最后此PE Loader将最终选择的傀儡进程的空间架空,并把解密出的RAT模块映射到此进程中执行(原本PE文件代码被置换)。
运行环境检测
运行环境检测
操作资源数据
经过分析,结构体中每个成员的具体功能可参考下图:
释放与驻留
创建的快捷键属性
最后,该PE Loader根据结构体中的dwFlag值来选择后续的RAT载体,所对应的RAT载体详见下表:
数据 |
进程名 |
0x01 |
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe |
0x02 |
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe |
0x03 |
C:\Windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe |
0x04 |
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe |
0x05 |
C:\Windows\System32\svchost.exe |
0x06 |
C:\Windows\System32\dllhost.exe |
0x07 |
当前运行的自身进程 |
而在本样本中,此成员的值所对应的载体为当前运行的自身进程。
获取RAT并执行
接着,该PE Loader重新创建新进程并将其设置为挂起状态。然后卸载此进程映像,并把在内存中解密出的新的PE头部,以及节数据依次写入到挂起的进程中,最后修改OEP并启动运行。
(4) WARZONE RAT模块
远控程序Warzone后台界面
获取C&C地址
为了防止C&C被轻易发现或者批量提取,该木马将其加密后存放在“.bss”的资源节数据中。通过对解密函数的分析我们发现,这里采用了CR4算法。CR4生成一种称为密钥流的伪随机流,它是同明文通过异或操作相混合来达到加密的目的。解密时则使用密钥调度算法(KSA)来完成对大小为256个字节数组sbox的初始化及替换。具体流程如下:
(在资源数据中前0x32个字节是密钥,其余0x68个字节则是待解密的数据)
密钥和待解密数据
4)替换后的sbox数组中的数值如下图:
5)通过替换后的sbox和待解密的数据进行XOR运算后,最终得到服务器的host地址"asdfwrkhl.warzonedns[.]com"。
执行注入功能
接着,该木马使用远程线程的方式来注入核心功能Shellcode代码,并在启动远线程执行时,修改写入目标进程内存偏移的0x10E处为开始执行代码。
通过分析我们发现,这段注入代码的主要功能是利用傀儡进程来保护Dropper(hqpi64.exe)。其会定时检查Dropper是否处于运行状态,如被关闭,则重新启动。以此达到进程守护的目的。
进程守护功能
通信协议解析
1)连接服务器
2)解密控制包
3)执行控制指令
通过我们前面的分析可以看到,该木马控制指令中包含了大量用户隐私信息的窃取功能。最终受害者的敏感数据信息,都会根据远程服务器的指令回传给远程服务器。
控制指令功能
控制命令 |
指令功能 |
0x01~0x04 |
调用自定义函数,并将执行结果回传服务器 |
0x02 |
上传进程列表 |
0x04 |
获取计算机逻辑磁盘信息 |
0x06 |
上传文件列表信息 |
0x08 |
下载控制命令中指定的文件 |
0x10 |
结束控制命令中指定的进程 |
0x0E |
Remote Shell |
0x10 |
取消下载 |
0x12 |
获取Webcam Devices列表 |
0x14 |
Start Webcam |
0x16 |
Stop Webcam |
0x18 |
发送心跳包 |
0x1A |
卸载客户端 |
0x1C |
修改控制命令中指定的文件 |
0x1E |
下载VNC模块 |
0x20 |
窃取Google Chrome、Mozilla FireFox等浏览器和OutLook、Thunderbird、Foxmail邮箱中保存的凭证信息 |
0x22 |
下载控制命令中指定的文件链接并执行 |
0x24 |
根据控制指令,切换两种方式来记录键盘使用信息 |
0x26 |
使用全局消息钩子,记录键盘使用信息 |
0x28 |
Remote VNC安装 |
0x2A |
测试本机的网络连接功能 |
0x2C |
断开远程服务器 |
0x38 |
未知测试 |
other |
获取用户名,系统版本,GUID等信息 |
1)窃取凭证信息
窃取的信息包括Google Chrome、Mozilla Firefox等浏览器和Outlook、Thunderbird、Foxmail邮箱客户端保存的凭证信息等。
该木马获取相关凭证信息以及实现方法如下表所示:
窃取的凭证信息 |
实现方法 |
Google Chrome |
读取\AppData\Local\Google\Chrome\User Data\Default\ Login Data数据库文件进行查询 |
Mozilla Firefox |
读取配置路径下的signons.sqlite数据库,并通过nss3.dll解密 |
Outlook |
遍历注册表Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows Messaging Subsystem\\Profiles下子键进行识别并解密 |
Thunderbird |
读取\AppData\Roaming\Thunderbird\Profiles目录下的数据库文件,并通过应用程序目录下的nss3..dll对存储的密码进行解密 |
Foxmail |
读取邮箱目录下的\\Account\\Account.rec0文件并进行解密 |
a)提取Chrome凭证
从该表中读取的内容是加密的,通过CryptUnProtectData函数对其进行解密便可以获取到明文数据。最后该木马将解密后的数据保存在名为”xxx.tmp”(”xxx“为Base64解码出的字串)的临时文件中。
b)提取Mozilla凭证信息
用户名和密码
c)OutLook凭证获取
获取Outlook邮箱的用户信息
d)Thunderbird凭证获取
e)FoxMail凭证获取
f)上传获取到的凭证信息
2)键盘记录
b)临时键盘记录
按键和窗口名信息的获取
3)RemoteVNC安装
a)将新用户添加到”远程桌面用户”组
添加并隐藏创建的新账户
b)更改远程桌面设置
通过分析我们发现,此RAT的远程桌面功能是通过特制的VNC模块来实现的。并且在后续的更新版本中,还增加了HRDP模块来实现隐藏远控桌面。该HRDP模块使用了Github上的rdpwrap项目,不仅可以在后台登录远程计算机,并且创建的Windows账户还会自动隐藏。
4)权限升级(UAC绕过)
该木马的权限提升是利用了自动提升权限的合法应用程序”pkgmgr.exe”来执行DISP模块。其功能代码实现是采用了Bypass-UAC框架,该框架可以通过调用IFileOpertion COM对象所提供的方法来实现自动提权。
该木马先将嵌入在资源数据中的PE文件在内存中加载并运行。而此PE文件实际上是一个加载器,其所做的事情则是将资源中的另一个PE伪造为“dismcore.dll”,然后将此dll复制到System32目录下,最后使用pkgmgr.exe执行伪造的恶意DLL。由于pkgmgr.exe是一个UAC白名单程序,所以它默认具有管理员权限,且不会弹出UAC提示框。部分代码如下图所示:
此恶意DLL的主要功能是获取注册表中的”Install”安装信息(Dropper的路径)并重新启动具有管理员权限的Dropper新进程。
5)未知测试
在新线程中,根据远程服务器发送的指令,与新指定的C&C进行连接。
由于接收数据无法获取,所以目前我们无法确定其准确用途,暂将其命名为未知测试。
3.2 最新攻击样本
阶段一:
解密函数method_0如下图所示:
在经过逆序排列和Base64解码后的字符串(byte_0)中,前16位为解密密钥“0x28 0x49 0xf7 0x30 0xec 0x8d 0x500x80 0x94 0xaf 0x85 0xaa 0xa8 0xe7 0xc0 0x41”,之后为待解密密文。函数以16位为循环,将密钥同密文依次进行按位异或,最终解密得到“DUMP1”文件并通过CallByName函数加载执行。
阶段二:
“DUMP1”文件同样采用C#编写,程序首先会睡眠50秒以躲避沙箱检查,之后会检测调试器并将自身释放至“%ApplicationData%\riNpmWOoxxCY.exe”,接着创建schtasks.exe进程并添加计划任务“Updates\riNpmWOoxxCY”,从而实现在登录账户时自启动,相关命令如下:
"C:\Windows\System32\schtasks.exe/Create/TN Updates\riNpmWOoxxCY/XMLC:\Users\super\AppData\Local\Temp\tmp925C.tmp"
之后,程序会从自身资源内解密出PE文件“DUMP2”,通过CreateProcess、WriteProcessMemory和SetThreadContext等函数,以挂起的方式加载一个新的进程,并最终以傀儡进程的方式写入并加载“DUMP2”。
经过分析,我们在“DUMP2”中发现了一些可疑字符串如:“Remcos”、“Remcos_Mutex_Inj”、“2.3.0 Pro”。
其免费版仅可添加一个C2连接服务器,专业版则没有数量限制。此次攻击中植入的木马是通过专业版生成且连接至多个恶意C2,包含的C2地址提取如下:
casillasmx.chickenkiller.com
casillas.libfoobar.so
du4alr0ute.sendsmtp.com
settings.wifizone.org
wifi.con-ip.com
rsaupdatr.jumpingcrab.com
activate.office-on-the.net
4恶意代码溯源与关联
4.1 恶意代码溯源追踪
前文曾提到,“Curriculum Vitae Actualizado Jaime Arias.doc”植入的木马中包含了“AVE_MARIA”特征字符串,且自2018年12月开始,“AVE_MARIA”类恶意样本在twitter、virustotal等平台越来越多的被发现。但多篇相关研究文章均未指出其真实来源,杀毒厂商也广泛的将其命名为AVE_MARIA,这引起了我们浓厚的兴趣。
我们尝试从多种角度去溯源木马以寻找线索,包括域名、IP、关联样本等等。其中在对关联样本“Michelle Flores - Curriculum Actualizado.doc”的分析中成功溯源到了商用软件Remcos RAT。我们分析了该软件的发布渠道,发现其不仅在官网进行销售,还在诸多黑客论坛如Hackforums上大量售卖。由此,我们猜测攻击人员很可能活跃在相关论坛并购买过多款商用软件,同时也将溯源重点转向黑客论坛和暗网市场。
Solmyr在论坛中提供了warzonedns.com域名的免费DDNS服务(IP动态绑定至子域名),使得用户可以轻易的将服务器IP绑定解析至warzonedns.com下的任意子域名,使用示例如下:
这无疑给黑客提供了很好的藏身之所,与此同时我们发现Solmyr的另一个身份是WARZONE RAT的发布者,该软件由于控制手段丰富、技术功能强大、迭代更新迅速,目前在Hackforums论坛中非常受欢迎。
至此,我们有理由怀疑攻击者使用过该款商用远程管理工具。由于该软件闭源且不提供免费版本,我们追溯到了WARZONE RAT流出的破解版本(V1.31),并将其与“Curriculum Vitae Actualizado Jaime Arias.doc”植入的木马样本进行同源性分析,以确定二者间的关联。
4.2 同源性分析
其次,我们通过Bindiff进行了更为精确的对比,在去除部分API干扰并比较分析了可信度高的函数后,发现大量函数完全相同,占比达到80.16%,其余函数则可能因为版本原因略有差别,这也印证了二者间的强关联性。
另外,从传播时间的角度分析,“AVE_MARIA”关联样本最初出现的时间(2018年12月2日)略晚于WarzoneRAT在论坛的发布时间(2018年10月22日),这也符合恶意代码传播的时间逻辑。
依据以上几点分析,我们认为两者具有高度的一致性。从目前已知的情况看,WARZONE被杀毒厂商广泛的识别为AVE_MARIA,而在深入比对分析后,我们判定黑客组织使用的远控木马正是WARZONE RAT。因此可以将此类包含“AVE_MARIA”字符串的恶意样本家族命名更新为“WARZONE”。
4.3 域名关联
这批域名均为warzonedns.com提供的免费子域名,且大部分关联至恶意样本,这表明大量黑客正在滥用此类服务进行恶意攻击。
5总 结
本文对本次攻击活动的攻击流程、相关的恶意代码、黑客背景等做了深入的分析和研究,从上文的分析中我们可以看出该黑客组织目前的攻击活动十分谨慎,既没有大规模的攻击,也没有采用高成本的0day漏洞,同时,攻击活动时间也非常短。这表明该攻击活动还处于初期,并对目标进行了一些试探性、针对性的攻击,也为后续的攻击做好准备。此外通过对攻击活动的溯源,我们确定了该次活动背后的黑客组织,并根据该黑客组织的活动历史,发现其民族主义色彩强烈,因此政治目的意图也较为明显。
IOC
MD5 |
99C82F8A07605DA4CCC8853C910F7CAF |
048DCA20685ECD6B7DBDBF04B9082A54 |
DEF105A9452DEF53D49631AF16F6018B |
1E19266FC9DFF1480F126BD211936AAC |
262D9C6C0DC9D54726738D264802CCAD |
B3C9F98DD07005FCCF57842451CE1B33 |
497566120F1020DBD6DF70DD128C0FFB |
域名 |
linksysdatakeys[.]se |
gestomarket[.]co |
asdfwrkhl.warzonedns[.]com |
casillas.hicam[.]net |
casillasmx.chickenkiller[.]com |
casillas.libfoobar[.]so |
du4alr0ute.sendsmtp[.]com |
settings.wifizone[.]org |
wifi.con-ip[.]com |
rsaupdatr.jumpingcrab[.]com |
activate.office-on-the[.]net |