导语:天朝APT组织铁虎(Iron Tiger)APT强势回归,发起了PZCHAO攻击活动,本文就此攻击活动进行了分析。
1 简介
铁虎(Iron Tiger)APT行动背后的“熊猫使者”APT组织,被怀疑(必须)是天朝的一个黑客组织,他们专门以政府和相关领域的技术部门作为其主要的攻击目标,并尝试从这些组织和机构中监视和窃取高价值的数据。关于铁虎APT行动的第一个报告2010年就发布了。
受害者研究
该恶意软件的主要攻击目标是亚洲和美国的政府组织、科技公司、教育和通信企业等。下图是被攻击目标的位置和介绍。
2攻击链
最早的攻击是从附有恶意VBS文件的垃圾邮件开始的,VBS文件的作用是从分布式服务器下载恶意payload的下载器。
分布式服务器解析的IP地址位于韩国(2017年6月17日),IP地址为125.7.152.55,域名是down.pzchao.com。如下图所示,攻击的不同阶段会下载和执行不同的新组件。
2.1 恶意软件分发基础设施
攻击背后的威胁单元控制着pzchao.com域名的5个子域名,这些子域名提供不同的功能,比如上传、下载、RAT相关的通信等。
2.2第一阶段payload
一个亚洲地区拦截到的样本中,含有自解压的7zip文件,提取后,会向磁盘中写入两个批处理脚本up.bat和new.bat,并安装一个叫做curl.exe的合法应用。
这个payload的针对亚洲的,因为安装过程中SFX安装脚本的语言是中文的。恶意batch脚本和downloader工具被释放进 %systemroot%\\temp 文件夹。第一个运行的batch脚本是up.bat,并在RunProgram变量中进行设置。
2.2.1 up.bat
Up.bat脚本位于临时文件夹中,并有4个作用:
将第二个batch脚本tnew.bat改名为win32shell.bat;
分配系统文件属性;
修改ACL;
杀掉所有可能影响样本运行的计划任务。
这个新的win32shell.bat脚本会加入Adobe Flash Updates的计划任务中,每隔一天上午三点运行。任务名可以帮助避免被检测到:
schtasks /create /tn “Adobe Flash Updaters” /tr “%systemroot%\temp\win32shell.bat down” /sc daily /mo 2 /st 03:00:00 /ru “”
2.2.2 new.bat
New.bat脚本是用作其他工具下载的,也可以向C&C服务器上传系统信息和一些机密信息。Bat文件保存在%TEMP%文件夹中,文件名为“win32shell.bat”。
2.2.3 上传服务器组件up.pzchao
在执行过程中,win32shell.bat会与C&C服务器通信并发送系统指纹到服务器,地址为up.pzchao.com:864/install.asp?。信息是通过win32.shell脚本解密的另一个脚本发送的POST请求传送的。另一个脚本360.bat会通过POST请求发送username,domain,MAC地址,OS版本,和RDP端口3389状态到install.asp脚本。该请求是通过curl.exe来发送。
一旦该脚本了解了被感染设备的信息,就会上传密码这样的机密信息。含有密码的POST请求会发送到另一个服务端脚本/upload864。这些信息的收集每周上午3点进行。
2.3 下载服务器down.pzchao
Win32shell.bat脚本会与down.pzchao.com服务器联系来请求4个二阶段的payload。
比特币矿机
一阶段payload会释放一些挖掘应用工具,用来进行比特币挖矿。原来的安装脚本可以杀掉所有可能影响挖矿工具运行的软件,这样就确保了挖矿机可以正常运行。随后,恶意软件识别使用的操作的系统并设定对应的比特币挖坑机到%TEMP% system文件夹。
该脚本会创建一个wmiapsrv.exe服务,该服务运行一个BitcoinMinerPooling应用,wmiapsrv32/64.exe是设定为服务的一个假的应用,该应用会运行实际上是比特币挖坑机的应用java.exe。比特币挖矿应用会被重命名为java.exe用每3周用于比特币挖矿。
密码窃取器
恶意软件会应用2个版本的Mimikatz密码窃取工具(x86和x64),这样就可以获取所有目标系统的密码。Mimikatz来自于自解压的7zip文件,文件一旦解压,就会释放4个不同的文件,分别是mimikatz.exe, mimilib.dll, mimidrv.sys和pass.bat。
Batch脚本会执行mimikatz库,将获取的机密信息上传到C&C服务器。
远程访问木马组件 (Gh0st RAT)
最后一个下载的payload是经过修改的Gh0st RAT样本,作用是后门植入。该的木马的行为与之前检测到的Iron Tiger(铁虎)APT组织的攻击行为相似。
可执行文件代表了这个dropper,这是一个含有安装GH0st RAT服务器所需的所有代码的Windows应用。解密后释放到系统中的二进制文件与之前与C&C服务器通信的文件的作用是一样的,要等待下一步的指令。
当该服务成功安装到目标主机后,该系统就完全被黑了,会有一些包含远程终端在内的间谍软件的能力,下图是一个主要功能的列表。
Gh0st架构利用了在Windows系统上创建Windows资源的能力,这也是恶意软件开发人员常用的一种机制。对不同的目标,攻击者很容易就可以创建一些传统的二进制文件。在主要通信模块安装完成以前,dropper会在感染的系统上进行一些动作:
首先,调用GetInputState()来验证在之后的调用线程队列中有没有鼠标或键盘消息;然后调用PostThreadMessage()和GetMessage()。但是,这些调用的函数返回的值都是不经过处理的,这也是Gh0st RAT所特有的。
然后,恶意软件会在二进制文件中查找字符串定界符 SSSSSSS ,返回指向加密配置字符串开头的字符串指针。定界符指向C2 hostname:port对的开头。然后恶意软件会再查找另外一个字符串定界符AAAAAAA。此时,标记字符串指向加密服务器服务名的开头。如果没有找到配置字符串,应用就会推出。之前定位的加密配置会用DES解密。通过检查系统中的mutex,能够确保同时只有一个程序的实例在给定的时刻运行。
随后,payload会通过在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”注册表中加入可执行文件的路径,这可以使软件在系统开启时自动执行。
同时会在以下注册表中注册为系统服务:
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wsfbpy sahblabg” “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Maobeu xqiyes” “HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Wsfbpy sahblabg ReleiceName = „Oracle.exe”” “HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Wsfbpy sahblabg ReleiceName = „Maobeu xqiyes”” “HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Maobeu xqiyes ConnectGroup = „”” “HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Maobeu xqiyes MarkTime = „2017-10-19 17:21”
接下来dropper安装RAT服务器的步骤是包含在try-except区块中,这样一些潜在的错误就会终止应用的执行。就在服务器二进制代码释放到系统的时候,用于进程清理的jingtisanmenxiachuanxiao.vbs脚本也会写入当前文件夹。
服务器的二进制文件是从自己的资源区中提取的,并以已安装的服务Oracle.exe的名字写入\Windows\System32文件夹中。
最后,应用会调用StartService()来执行第二个组件,也就是说RAT服务器此时就开始控制被黑的机器了。恶意应用会与C&C服务器通信,并等待返回的指令。等到与C&C控制器检查后,RAT服务器会查找含有C&C信息的加密的配置缓存, 可以用硬编码的字符串“mother360”中获取AES密钥进行解密。
解密后的C&C服务器信息:
rat.pzchao.com –用于发送指令
centuriosa.info –用于发送指令
zl855.no-ip.info –用于请求配置C&C服务器的新配置文件
然后设置窗口站,首先调用GetProcessWindowStation()保存当前状态,然后调用OpenWindowStation()来创建一个名为winsta0的新状态。这是因为kernel对象是安全的,而用户对象和GDI对象不是。因此,为了保证额外的安全,用户接口对象是用窗口站和桌面来管理的,因为这些窗口站和桌面本身就是安全的对象。通过检查全局表里是否是null来验证服务的实例是否已经运行了。
然后,RAT调用一个用解密的配置数据来填充lpszHost, dwPort, lpszProxyHost, dwProxyPort, lpszProxyUser, lpszProxyPass域的函数。如果代码变量存在并不为空,用于连接C&C RAT客户端的socket用PROXY_SOCKS配置来进行配置。为了知道服务器连接到客户端的事件,需要保存GetTickCount()返回的值。第一次登记到客户端含有登录token,token是在封装在LOGINDATA结构中的数据之后的。攻击者用最初的信息作为系统的指纹信息,这在决定被感染目标和在网络中的角色时极其重要。
攻击者接收到指纹包后,就解密和分析。在客户端接口的连接选项卡中会加入新的一行,服务器主机的详细情况也会写入对应的域。连接选项卡网络状态栏中的活动连接数加1。
余客户端的握手完成后,RAT会等待命令。当C2客户端的用户需要从被黑的僵尸主机在服务器上执行动作时,就会创建和发送一个含有特殊功能的命令包。恶意软件采用的另一个避免被检测到的技术是把C2地址改为localhost。
Gh0st RAT C&C客户端和被黑主机(服务器)之间的网络通信是用从Mother360中获取的字符串进行AES加密的和解密的。两个终端之间传递的包含有两个域,但是缺乏明文头,这也是Gh0st RAT之前版本中特有的:
1. 4字节的整数,包含整个包的大小;
2. 大小可变的包,包含AES加密的包packet。
客户端会发送一些小的请求(含有命令的包),服务器会用请求的数据响应这些命令。这另个短点之间的通信使用的是预定义的命令。除了代表大小和包payload的第1个字节的4字节整数外,还有3种类型的代码:命令,token和modes。在源码中,这些代码是在头文件中枚举的。
这些能力毫无疑问是该工具最初的目的,也是用来进入被黑设备的。这允许远程攻击者完全控制系统,对受害者进行监测并轻易地泄露机密信息。
3 恶意软件基础设施
3.1. HTTP文件服务器
当分析下载链接down.pzchao.com时,研究人员意识到恶意软件运行在HTTP文件服务器上,并成功获得了服务器上的文件列表,包括最后一次修改的时间戳在内的元数据和下载次数。文件列表和下载次数如图所示:
攻击者还会重置下载次数和IP日志。从中可以看出下载次数最多的恶意组件是SFX安装包和Gh0st RAT后门。统计数据显示,下载次数是持续增长的:
3.1.1. 后门
恶意软件服务器上有5个payload,作为目标系统上的后门。这5个payload是Gh0st RAT工具的版本。其中两个(8060.exe和8555-.exe)是与主C&C服务器rat.pzchao.com进行通信。不同的是客户端和服务器交换的包是以spidern作为明文头的,随后是用zlib压缩的数据包。另外两个样本(9527.exe和8555++.exe)与两个服务器dll.pzchao.com和455.pzchao.com通信,这两个服务器是基础设施的一部分。这些版本会从dll.pzchao.com下载RAT服务器。
3.1.2. YPrat
下载服务器还含有一个用Python编写的RAT,这个服务器用来监听同一IP地址444端口上的通信连接。分析发现该服务器还有其他的功能,比如在远程受感染的系统上下载和上传文件,还可以进行信息收集。因为下载量很小,所以研究人员推测payload目前还在测试中。
3.1.3 端口扫描工具
服务器上的另一种工具是端口扫描应用,还有IP日志集传递给扫描工具。这些IP日志的地址主要位于亚洲,在感染之前,攻击者首先会寻找可以在目标系统上利用的漏洞。
4 结论
这些工具都是经过实战攻击测试的,也更加适合未来的攻击。攻击者也会对这些工具进行修改,使之更加适用于某个特定的攻击目标,比如政府、教育机构、电信行业等待。正如文章中描述的,RAT的监控能力和扩展的情报收集能力会转变成一种极其强有力的工具,而且很难识别。
参考文献:
2. http://www.freebuf.com/news/76015.html
3. https://labs.bitdefender.com/2018/02/operation-pzchao-a-possible-return-of-the-iron-tiger-apt/