中国南海和东南亚问题相关的网络攻击组织 捕获Patchwork APT攻击
脚本之家
最近,一个与东南亚和中国南海问题相关的APT攻击被发现,该APT攻击以包括美国在内的各国政府和公司为目标 。经安全专家分析,该APT攻击所使用的全部工具代码都是通过 复制-粘贴 互联网公开代码组合而成,相对于其它APT特有的攻击工具而言,比较独特。
Cymmetria发现并发布了此APT攻击的分析报告,由于其代码来源于多个网络论坛和网站,如Github、暗网和隐秘的犯罪论坛等,故把其命名为Patchwork APT 攻击(Patchwork:拼凑物)。
一、报告综述
Patchwork APT自2015年12月被监测到之后,目前已经感染了大约2500台电脑,虽有迹象表明其最早活动可追溯至2014年,但Cymmetria并未第一时间发现。
Patchwork APT针对的目标是军事和政治机构,特别是那些与东南亚和南海问题相关的工作机构雇员,目标多是政府或与政府有间接联系的机构。
在存活的受害者系统上,Patchwork APT通过搜索文档并上传至其C&C服务器,如果目标主机非常有价值,Patchwork APT还会进一步安装第二阶段渗透工具。
以下为PatchworkAPT 的攻击时间范围:
二、调查
1 概述该APT攻击于今年5月在针对欧洲政府部门的一起钓鱼活动中被发现,攻击目标为一个中国政策研究机构的工作人员,其以PPT文档为诱饵发起网络攻击,文档内容为中国在南海的一系列活动。
当PPT文档被打开后,嵌入执行CVE-2014-4114漏洞代码,这个漏洞存在于未打补丁的 Office PowerPoint 2003 和2007中,漏洞利用代码曾被发起了名为 Sandworm的APT 攻击。
一旦漏洞代码开始执行,第一阶段为部署攻击载体:一个利用AutoIt工具编译的脚本。这个脚本使用某网络论坛出现的名为UACME方法和代码来绕过系统UAC。
获得更高权限之后,以Meterpreter方式执行powersploit 脚本,(Meterpreter是著名的metasploit框架远控工具)
下一阶段,开始对文档和目标主机价值进行筛选判断,如果目标足够有价值,攻击者再次部署第二阶段攻击模块,涉及到的攻击工具也大多来源于知名论坛或网络资源。以下为其攻击感染流程:
2 以蜜罐方式发现攻击者
为了捕获攻击者发起的第二阶段攻击程序,观察其在内网中的渗透活动,我们创建了一个真实网络环境,这个环境让攻击者觉得他们已经成功获取了主机权限。
零星的诱饵数据可以让攻击者向另一主机转移,这些数据可以是存储凭据,共享文件夹、浏览器cookies,VPN配置等其它信息。最终我们利用了Cymmetria’s MazeRunner 系统成功捕获了攻击者的活动。
3 开始如前所述,为了保证攻击者的攻击持续处于活动状态,我们虚构了对攻击者来说非常感兴趣的目标:一位处理安全问题的政府智库人员。
创建欺骗网络
• 首先,创建SMB共享,映射到目标电脑并显示网络备份;
• 其次,把一个运行云端服务的RDP凭据存放于电脑中,同时在远程云端系统中部署欺骗数据,形成蜜罐系统,同时造成正常服务的假象。
蜜罐文件系统
用 RDP凭据引向蜜罐系统
4 一连串的事件(1) 当一个 PowerPoint PPS文件被打开之后,释放有效攻击载荷。即CVE-2014-4114漏洞利用代码(曾用作SandWorm沙虫攻击)。
释放的Driver.inf 文件内容
(2) 主机被以下可执行文件感染:
• sysvolinfo.exe – 执行编译脚本.
• PowerShell 以 HTTPS Meterpreter方式执行攻击脚本 ,同时保持与C2控制服务器连接,发起以下网络请求:
(3) 目标电脑上的文件被攻击者以加密通道方式上传至远程控制服务器,由于Meterpreter的“sstagerverifysslcert”功能 开启,所以我们没有检测到相应的SSL通道;
(4) 攻击者释放第二阶段恶意软件7zip.exe,利用此程序扫描硬盘并连接远程IP地址 212.83.191.156。
(5)7zip.exe复制自身在C:\Windows\SysWOW64\目录下生成netvmon.exe文件,并添加进程序自启动路径,实现长期控制目的。
(6)在最初感染的前三天,攻击者开始对SMB共享文件夹发起访问;
(7)恶意软件开始访问映射共享,并扫描所有固定磁盘驱动器上的文件;
(8)在MazeRunner 系统的第一个警报产生之后,由于诱饵系统的IP地址被内置在RDP凭据文件里,所以,我们看到了攻击者试图利用RDP凭据连接诱饵系统的数据。警报提示攻击发起于
IP 212.129.7.146,整个攻击持续了12分钟;
(9)从我们收到Mazerunner的警报综合受害主机内的RDP连接文件表明,攻击者登录失败了几次,但让我们感兴趣的是,攻击者并没有使用系统密码获取工具Mimikatz。
(10)我们相信以上两起攻击连接发起于同一个攻击源,因为:
• 攻击者用来连接我们蜜罐系统的两个IP地址都属于rev.poneytelecom.euf 域名;
• 内部警报表明,两起攻击连接事件发生在同一天。
攻击发起的网络规划图
5 从攻击者C&C控制服务器中获得的信息我们通过另一个合作伙伴,成功地接手并控制了攻击者的一个C&C服务器,服务器中包含了大量文件:
• 种类多样的PPS文件–用作钓鱼攻击的恶意文件
• 大量的恶意代码包
而且这些钓鱼文件内容都与中国主题或色情性质相关,以下是一些样本文件:
在C&C服务器中,我们还提取到了PPS文件的修改日期,这些日期从2015年12月持续到2016年1月。从日期上可以清晰看出攻击者准备和实施攻击的时间线。
三、技术分析
工具部署攻击载体:
攻击载体是一个以PPS为附件的网络钓鱼邮件,嵌入漏洞 CVE-2014-4114 的利用代码。漏洞利用代码执行之后释放可执行文件和Windows驱动程序描述文件INF。
攻击者把以下两个文件嵌入OLE实体中并释放到受害者主机:
DROPPER木马程序:
sysvolinfo.exe程序是攻击者第一阶段的有效载荷(另一个程序是uplv1032 .exe),其目的是为了提升权限、筛选数据,从网络下载执行powersploit发起的程序和命令。通过安装Meterpreter,攻击者可以在受感染主机内发起远程控制命令。
sysvolinfo.exe代码本身是利用编译工具AutoIt编译的,其代码的一个重要部分抄袭于黑客论坛“ indetectables ”。
C&C通信:
当黑客工具开始运行之后,第一步就是与C&C服务器进行确认连接,静待命令,以下就是对C&C连接协议的分析:
发起远程连接请求:
-- http://212.129.13.110/dropper.php?profile=+ $ComputerID
用以下变量作为发送参数:
-- ddager, r1, r2, r3, r4, r5, r6.
返回变量和结果:
-- “$sdata|$payload”
可用命令解释:
Command ID | Command explanation |
---|---|
“1” | 调试服务器远程状态如 “[+] ServFlag : Disabled” ,也可以什么都不做 |
“2” | 如果此命令在之前没被执行过, 以PowerShell脚本方式执行: powershell -nop -wind hidden -noni -enc ” & $PAYLOAD |
“3” | 重置脚本内部状态,忽略先前执行的“2”号命令,再次执行“2”号命令。 |
“4” | 退出脚本 |
“5” | 以base64加密payload执行_emorhc function |
“6” | 以base64加密payload为变量执行_getnewver function |
“7” | 以base64加密payload为变量执行_instcust function |
“8” | 通过CMD方式执行base64加密payload ,把结果保存于r5 |
当受害主机状态命令发送到控制服务器后,黑客程序继续以“TotalSecurity”字符串目标扫描整个“Program Files”目录,这是“360 Total Security”安全软件的安装目录。(360 Total Security 是360的国际版)
黑客软件以”Baidu Software Update”为文件夹伪装自身进入系统启动目录(HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)。然后,它又向控制服务器发送另一个命令,之后,开始扫描计算机中的所有固定驱动器磁盘,以寻找以下后缀名文件:
之后上传所有文件至服务器:
http://212[.]129.13.110/update-request.php?profile=
在对黑客工具进行反编译后,发现了其功能调用中包含了一个有趣的PDB文件:
“C:\Users\Kanishk\Documents\VisualStudio 2015\Projects\ConsoleApplication1\ConsoleApplication1\obj\Debug\ConsoleApplication1.pdb”
提权操作:
经过前阶段描述可知,攻击载体使用了WINDOWS7系统中尚未打补丁的UAC绕过漏洞(被称为UACME ),这可以让攻击者以管理员身份执行操作。
shellcode执行:
当AutoIt 脚本恶意软件从 $sdata 中接收到“2”号命令的心跳后(这似乎是最常见的情况),便以base64加密方式执行命令:
powershell -nop -wind hidden -noni -enc
我们观察到base64加密的payload是powershell脚本方式的shellcode,通过Meterpreter 进行https反向远程连接。
反向HTTPS Meterpreter 连接:
AutoIt脚本提权并执行一个PowerShell的反向Meterpreter 连接脚本,而且这个脚本看起来是通过一个在线博客复制而来的
Meterpreter用以下参数进行连接:
第二阶段的攻击载体:
该阶段的攻击工具只有在攻击者执行Meterpreter连接,并确定目标主机具有价值之后,才会运行部署。我们发现这个攻击载体为7zip.exe,但它有时候也为ndcrypt.exe和nd.exe。
7zip.exe 16 进制代码
这个程序的很多代码都来源于GitHub的一个公开代码库 。
脱壳之后,程序模块执行以下动作:
(1)为了在电脑关机或重启之后能继续保持入侵状态,攻击载体程序在系统目录下复制自身并重命名为netmon.exe,并以自启动服务 Net Monitor 运行。
C:\Windows\SysWOW64\netmon.exe — 以 7zip.exe/netmon.exe 运行的64位程序;
(2)执行一个固定磁盘的扫描线程和文件筛选程序(但不会搜索网络驱动器和USB设备)
• 另一个线程执行文件上传功能:
http://212[.]83.191.156/http/up.php.
• 另一个线程下载可执行文件:
http://212[.]83.191.156/http/down.php
四、其它属性
1 PPS文件时间编辑分析:经过对PPS文件的提取分析发现,这些PPS文件在一天当中的不同时段都被经过修改:
2 C&C 远程控制服务器活动时间:
C&C服务器的活动不仅在于单独的几个小时之间,还在于每周的每天,通过对每天的时间区间进行描述之后,我们可以发现不同的模式,例如,每周的周日活动较多,周六较少。另外,攻击活动不早于凌晨2点,不晚于上午11点,除了某个周日之外。“攻击工作时间”图如下:
3 域名注册时间:
攻击活动使用的恶意域名注册时间只在每周的特定几天,而且注册时间都介于凌晨3点到下午15点之间:
五、总结:
Patchwork APT 是一个非常成功的有针对性的网络攻击,令人惊讶的是自去年12月之前,它一直未被发现。
其高度复杂的操作与其具有的低技术含量形成鲜明的矛盾对比,避免昂贵的开发工具而选择开源低廉的代码作为渗透工具,这也许是一种攻击趋势,也是一种避免被发现的手段;
根据我们所掌握的信息,攻击者有可能是亲印度或印度人。但就像我们的CEO Gadi Gadi Evron在内部讨论时所说的:“也有另一种可能性,有可能是其他伪装成印度人的攻击者,因为在网络世界里,好像根本就没有任何确切的证据来支撑说明,这只是我们自己的观点。”
不像其它国家发起的APT攻击,印度的网络间谍活动一直都处于平静状态,如果攻击者确实是亲印度或印度人,那么这是非常值得注意的情况。
***** 文章根据Cymmetria 报告原文编译:Cymmetria - Unveiling_Patchwork
*****后记:在Cymmetria发布分析报告的同时,卡巴斯基实验室也发布了名为《Dropping Elephant网络犯罪组织肆意攻击多国政府和外交机构》的报告,报告中命名的Dropping Elephant APT 与Cymmetria发现的 Patchwork APT 高度相似。
• LHOST=45.43.192.172
• LPORT=8443
*.doc
*.csv
*.ppt
*.docx
*.pst
*.xls
*.xlsx
*.pptx
属性:
ComputerID=BASE64ENCODE(“$USERNAME@$COMPUTERNAME”)
ddager= Isstartup registry key added (Bool)
r1=BASE64ENCODE(result of OSVersion macro, e.g. WIN_7)
r2=BASE64ENCODE(result of OSArch macro, e.g. X64)
r3=BASE64ENCODE(trojan version, 1.1 in our sample)
r4=BASE64ENCODE(Does the SQLite database folder ( @UserProfileDir &“\AppData\Local\Google\Chrome\User Data\Default\”) exist (1) or not (0))
r5=BASE64ENCODE(stdout of last cmd command)
r6=BASE64ENCODE(1 if running as administrator, 0 if not)
• Driver.inf
• Sysvolinfo.exe
http://212.129.13.110/dropper.php?profile=<base64of [username@computername]>
https://45.43.192.172:8443/OxGN