剖析MuddyWater感染链
一、简介
11月的最后几天,部分中东国家成为伊朗APT组织“MuddyWater”新一轮攻击的目标。他们的第一次行动是在2017年观察到的,而最近的Unit42研究人员报告了在中东地区中的攻击。在这段时间内,MuddyWater的TTP固定不变:继续使用包含模糊文档的鱼叉式网络钓鱼电子邮件,诱导目标启用VB宏代码执行,以使用POWERSTAT恶意软件感染主机。
图1.恶意文档
根据ClearSky Research Team和TrendMicro 研究人员的分析,11月底MuddyWater小组在攻击土耳其后不久袭击了黎巴嫩和阿曼。攻击向量和最终有效载荷是相同的:常见的宏嵌入文档和POWERSTAT后门。
然而,中间阶段与平常略有不同。
Yoroi-Cybaze Zlab研究人员分析了“Cv.doc”文件,这是MuddyWater在黎巴嫩/阿曼竞选期间使用的模糊简历。
二、技术分析
当受害者启用宏时,恶意代码会创建一个Excel文档,其中包含下载下一阶段恶意植入程序所需的代码。同时,它显示一个假的错误弹出窗口,通知Office版本不兼容。
图2.假错误消息
使用以下自定义例程在执行之前解密宏代码:
图3.宏解密例程
在对代码进行反混淆处理后,在“x1”变量中可以识别出用于创建隐藏Excel文档的函数:
图4.隐藏文档的创建
嵌入在新Excel的宏从URL下载powershell代码,引用了PNG图像文件“http://pazazta[.]com/app/icon.png”。下载的有效载荷创建三个新的本地文件:
· C:\Windows\Temp\temp.jpg, 包含Javascript代码;
· C:\Windows\Temp\Windows.vbe, 包含编码的Visual Basic脚本;
· C:\ProgramData\Microsoft.db, 包含加密的最终有效载荷。
图5.下载的Powershell代码
如上图所示,执行的第一个文件是“Windows.vbe”,它使用CSCRIPT引擎运行包含在temp.jpg中的Javascript代码。解密之后,可以注意到JS的目的:延迟执行另一个PowerShell有效载荷。
图6.“temp.jpg”中的Javascript代码
实际上,只有满足“Math.round(ss)%20 == 19”条件时才会执行下一个恶意阶段,否则它会不断重新执行。 “ss”变量存储自1970年1月1日00:00:00以来的秒数。
最后阶段包括执行包含在“Microsoft.db”文件中的POWERSTATS后门程序。后门与域名:“hxxp://amphira[.]com”和“hxxps://amorenvena [.]com”通联,所有域名都指向相同的IP地址139.162.245.200(EU-LINODE-20141229 US) 。
图7. POWERSTAT旗标请求
一旦执行,POWERSTAT恶意软件通过编码的HTTP POST请求将受害者机器的通用信息发送到远程服务器:
图8.包含受害者计算机信息的post请求
然后,它启动与C2的通信协议,请求在受感染主机上执行的命令。
HTTP参数“type”对恶意植入程序执行的请求进行分类,在分析过程中观察到以下值:
· info: 在POST请求中用于发送有关受害者的信息;
· live: 在POST请求中用作ping机制;
· cmd: 在POST和GET请求中都使用了它们。在第一种情况下,它发送最后执行的命令,在第二种情况下,它从服务器获取新命令;
· res: 在POST请求中用于发送恶意软件已执行的最后一个命令的结果。
参数“id”唯一的标识受害者机器,并使用本地系统信息计算它,TrendMicro仅使用硬盘驱动器序列号分析了样本。此标识符还用于在“C:\ProgramData\”文件夹中创建文件,用于存储临时信息。
图9.创建受害者ID
分析从“Microsoft.db”文件中提取和反混淆的代码,可以调查POWERSTATS后门的真实功能,识别恶意植入程序所支持的功能,例如:
· upload: 恶意软件从指定的URL下载新文件;
· cmd: 恶意软件执行指定的命令;
· b64: 恶意软件解码并执行base64 PowerShell脚本;
· muddy: 恶意软件在“C:\ProgramData\LSASS”中创建一个包含powershell脚本的新的加密文件并运行它。
一、简介
11月的最后几天,部分中东国家成为伊朗APT组织“MuddyWater”新一轮攻击的目标。他们的第一次行动是在2017年观察到的,而最近的Unit42研究人员报告了在中东地区中的攻击。在这段时间内,MuddyWater的TTP固定不变:继续使用包含模糊文档的鱼叉式网络钓鱼电子邮件,诱导目标启用VB宏代码执行,以使用POWERSTAT恶意软件感染主机。
图1.恶意文档
根据ClearSky Research Team和TrendMicro 研究人员的分析,11月底MuddyWater小组在攻击土耳其后不久袭击了黎巴嫩和阿曼。攻击向量和最终有效载荷是相同的:常见的宏嵌入文档和POWERSTAT后门。
然而,中间阶段与平常略有不同。
Yoroi-Cybaze Zlab研究人员分析了“Cv.doc”文件,这是MuddyWater在黎巴嫩/阿曼竞选期间使用的模糊简历。 本文来自无奈人生安全网
二、技术分析
当受害者启用宏时,恶意代码会创建一个Excel文档,其中包含下载下一阶段恶意植入程序所需的代码。同时,它显示一个假的错误弹出窗口,通知Office版本不兼容。
图2.假错误消息
使用以下自定义例程在执行之前解密宏代码:
图3.宏解密例程
在对代码进行反混淆处理后,在“x1”变量中可以识别出用于创建隐藏Excel文档的函数:
图4.隐藏文档的创建
嵌入在新Excel的宏从URL下载powershell代码,引用了PNG图像文件“http://pazazta[.]com/app/icon.png”。下载的有效载荷创建三个新的本地文件:
· C:\Windows\Temp\temp.jpg, 包含Javascript代码;
· C:\Windows\Temp\Windows.vbe, 包含编码的Visual Basic脚本;
· C:\ProgramData\Microsoft.db, 包含加密的最终有效载荷。
图5.下载的Powershell代码
如上图所示,执行的第一个文件是“Windows.vbe”,它使用CSCRIPT引擎运行包含在temp.jpg中的Javascript代码。解密之后,可以注意到JS的目的:延迟执行另一个PowerShell有效载荷。
图6.“temp.jpg”中的Javascript代码
实际上,只有满足“Math.round(ss)%20 == 19”条件时才会执行下一个恶意阶段,否则它会不断重新执行。 “ss”变量存储自1970年1月1日00:00:00以来的秒数。
最后阶段包括执行包含在“Microsoft.db”文件中的POWERSTATS后门程序。后门与域名:“hxxp://amphira[.]com”和“hxxps://amorenvena [.]com”通联,所有域名都指向相同的IP地址139.162.245.200(EU-LINODE-20141229 US) 。
copyright 无奈人生
图7. POWERSTAT旗标请求
一旦执行,POWERSTAT恶意软件通过编码的HTTP POST请求将受害者机器的通用信息发送到远程服务器:
图8.包含受害者计算机信息的post请求
然后,它启动与C2的通信协议,请求在受感染主机上执行的命令。
HTTP参数“type”对恶意植入程序执行的请求进行分类,在分析过程中观察到以下值:
· info: 在POST请求中用于发送有关受害者的信息;
· live: 在POST请求中用作ping机制;
· cmd: 在POST和GET请求中都使用了它们。在第一种情况下,它发送最后执行的命令,在第二种情况下,它从服务器获取新命令;
· res: 在POST请求中用于发送恶意软件已执行的最后一个命令的结果。
参数“id”唯一的标识受害者机器,并使用本地系统信息计算它,TrendMicro仅使用硬盘驱动器序列号分析了样本。此标识符还用于在“C:\ProgramData\”文件夹中创建文件,用于存储临时信息。 无奈人生安全网
图9.创建受害者ID
分析从“Microsoft.db”文件中提取和反混淆的代码,可以调查POWERSTATS后门的真实功能,识别恶意植入程序所支持的功能,例如:
· upload: 恶意软件从指定的URL下载新文件;
· cmd: 恶意软件执行指定的命令;
· b64: 恶意软件解码并执行base64 PowerShell脚本;
· muddy: 恶意软件在“C:\ProgramData\LSASS”中创建一个包含powershell脚本的新的加密文件并运行它。
无奈人生安全网