# WireShark黑客发现之旅（7）—勒索邮件

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-04-14T02:11:00Z
Canonical: https://wepostx.com/topics/196

> 乌云历史资料归档
>
> **原始作者：** 聚锋实验室
> **原始编号：** superkieran-wooyundrops:1149
> **原始发布时间：** 2016-04-14 10:11
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

作者：Mr.Right、Gongmo、K0r4dji
申明：文中提到的攻击方式仅为曝光、打击恶意网络攻击行为，切勿模仿，否则后果自负。

# 0x00 前言

近期，越来越多的人被一种恶意软件程序勒索，电脑上的多种重要文件都被加密而无法打开，并且无计可施，只能乖乖支付赎金，以对文件解密。

![原文图片](/media/2016/06/3cc4773397b4d3a18422993c8ef4af7a)

网上关于该类病毒的详细分析案例很多，在此不再详述。本文分享主要通过WireShark从流量分析判断勒索邮件、再进行深入分析。

# 0x01 截获邮件样本

通过监控某政府邮件服务器发现，近期大量用户收到此诈骗勒索邮件，邮件的发件人一般为陌生人，收件人指向明确，且带有跟收件人名称一致的ZIP附件，邮件内容一般为“请检查附件的XX，为了避免罚款，你必须在X小时内支付。”的诈骗威胁内容。

![原文图片](/media/2016/06/ce02f765242569addfc583bfab4a3a97)

解压ZIP附件可发现病毒文件。

![原文图片](/media/2016/06/dd070efb608118130fc080246a92e348)

# 0x02 WireShark分析

对于邮件协议的分析，我们首先按OSI七层模型对其数据进行建模，对网络协议的每层进行分析，最后汇总其安全性。（同样适用于其它协议）

![原文图片](/media/2016/06/0aa7c1f28700527bdd0e0d5239edcfe1)

## （一） 物理层分析
暂不做分析。

## （二） 链路层分析
由于该流量接入点为邮件服务器边界出口，所以多为SMTP数据。该数据链路层帧格式为以太帧（Ethernet II），共14字节，前12字节表示两端的MAC地址，后两字节0x0800表示后接IPV4协议。

![原文图片](/media/2016/06/56b27f354187255983dcde019e7d19ab)

此层数据无异常。

## （三） 网络层分析
从网络层数据开始，我们就会逐渐发现异常。当然，这个数据在网络层对我们有用的也就是源、目的IP地址。源地址10.190.3.172为邮件服务器地址，目的地址191.102.101.248 （哥伦比亚）为发件方地址。

![原文图片](/media/2016/06/e495af8491c89fceded91dd0b04d7ae5)

简单做几个测试，就发现有异常：

- 191.102.101.248并未开放TCP25端口；

- 191.102.101.248与elynos.com无关；

初步判断发件人的邮箱是伪造的。

## （四） 传输层分析
我们简单统计一下该数据的TCP25端口，发现在包数量等于28的附近区域，有大量不同IP发来的邮件，且字节长度也基本相等，可以初步判断大量邮箱收到差不内容的异常邮件。

![原文图片](/media/2016/06/7e949eaed41886dbb5b5f7c3bfd667f9)

提取一封follow tcpstream，可看出，也是一封勒索邮件。

![原文图片](/media/2016/06/4b48ce79fe9bd2ed9c5a8ad251507097)

## （五） 会话层分析
SMTP协议在会话层一般分析要素包括：认证过程、收发关系、加密协商、头部协商等。
将一封邮件的会话Follow TCPStream，可以看出邮件的发件人是来自外部的“陌生人”。

![原文图片](/media/2016/06/783a6ee357423f312aa2be5303b4e00f)

我们将部分邮件收发关系进行汇总，可以看出虽然发着同样的勒索邮件，但其发件人地址为了躲避垃圾邮件过滤，伪造了大量的邮箱地址及域名。

![原文图片](/media/2016/06/d35b20cddeef1451d33753b76648bd22)

## （六） 表示层分析
在表示层分析要素一般包括编码和列表等，由于此邮件属于正常通信邮件，在表示层无异常因素。

## （七） 应用层分析
针对此案例，应用层分析目标包括：邮件正文内容安全、邮件附件安全、是否为垃圾邮件等。

![原文图片](/media/2016/06/8e5639a4797782ec4a295faa60a9f5b1)

1.指向性：收件人邮箱名为：[email protected]，邮件正文称呼为“dear voice5”，邮件附件名称为“voice5_*.zip”，可看出此勒索邮件为骗取点击率，进行了简单的社工。
2.邮件正文：
“Please check the bill in attachment.
In order to avoid fine you have to pay in 48 hours.”
明显的诈骗威胁内容。
3.将此邮件内容Save一下，可得到附件内容。通过分析，可确认附件为敲诈勒索病毒。（本文不详述）

![原文图片](/media/2016/06/526b4eafe2644f0ea3629aa31b30c7f4)

# 0x03 勒索病毒分析

（注：本章节不全属于Wireshark分析范畴）

## （一）病毒初始化文件
1)病毒文件一共是6个，其中红框中的3个文件是隐藏文件，js文件是引导用户打开的文件。为了防止杀毒软件查杀病毒，病毒文件首先是按照pe结构分开的，js命令把pe文件组合在一起，构成一个完成的bin文件。

![原文图片](/media/2016/06/c2a392365bac2e31fb75dd1b30c09a50)

2)组合好的病毒文件会放到c:\User\Username\Appdata\Local\temp目录下，然后后台运行。如下图红色框中

![原文图片](/media/2016/06/b7aa23635364a2d31a7aa400cada8f46)

在IDA中打开bin文件。大段大段的加密数据文件。如下图所示：

![原文图片](/media/2016/06/345efa9837cdfade18a6a69d89fa57bf)

## （二）病毒行为
1)病毒解密还原后，才能正常执行。病毒文件经过了很多的亦或乘除等算法，通过VirtualAlloc在内存中存放一段代码，然后调用RtlDecompressBuffer进行解压，并在内存里还原代码。所有API函数都是动态调用的。下图是其中的一小部分还原数据的内容。

![原文图片](/media/2016/06/a9510ed2542293777baff4ab2bb8f057)

![原文图片](/media/2016/06/3b8fe6da560de976cd8787491d2f7b08)

![原文图片](/media/2016/06/ffc3c5b99bdb13472d0c601473918a99)

![原文图片](/media/2016/06/b760efa259db1968ad98b5e8f5d81b03)

2)在内存解密，申请分页，并拥有执行能力。

![原文图片](/media/2016/06/b8548db2b09ffa41444c9423a7644031)

3)病毒会在HEKY_CURRENT_USER下创建一个属于用户的key值。

![原文图片](/media/2016/06/5688bd064c2d24e3ced67e583bcf3d15)

![原文图片](/media/2016/06/68dc10b6a4639bf18a0f081d515a037e)

![原文图片](/media/2016/06/3a524965bdd9cbf34dcbace9dff77e95)

4)病毒会判断系统版本:从Win2000，xp 一直到最新的Win10以及Win Server 2016;

![原文图片](/media/2016/06/48515114303f8d76dacefcca2c631a86)

![原文图片](/media/2016/06/0398f459799145bf724d543a44bedcae)

由于我们的虚拟机是win7；所以这里判断出是win7 zh代表中国。

![原文图片](/media/2016/06/f7f050adc58a506ece77e528cab25b63)

病毒开始构造一个连接，准备发往作者的服务器。构造如下：
Id=00&act=00&affid=00&lang=00&corp=0&serv=00&os=00&sp=00&x64=00;
很明显这是在获取系统的一些信息，包括ID号，版本号，语言等。

![原文图片](/media/2016/06/8ca32846834d8e854aa6d5c5b6d488d1)

病毒准备提交的网址：

![原文图片](/media/2016/06/7aab200ad14be01778f2d84208d30b18)

下面的IP地址；都要尝试连接一次。

![原文图片](/media/2016/06/dd69a4e067e94e5a11c4a4bf193fff89)

通过wireshark截取的数据我们发现：有些IP地址的php网页已经丢失了。

![原文图片](/media/2016/06/3589cb4c44f7893dc71cfafa0eeb6228)

![原文图片](/media/2016/06/474964fcb5f4b2dee9e747df782a3ad6)

除此之外，病毒尝试连接部分c&c服务器网址，部分如下：

![原文图片](/media/2016/06/36df5d30b0d2374dd56404d496887cbe)

5)如果病毒c&c服务器没有返回信息；则病毒一直处于等待状态。
6)感染文件。首先循环便遍历扫描文件。

![原文图片](/media/2016/06/4c7a5aee0579a7746e266e8f8fc71287)

![原文图片](/media/2016/06/0d8160284dddac5c300bcf21a1c34e26)

下图是病毒要修改的文件格式：

![原文图片](/media/2016/06/4baa00a9d5135c005c92de258696ca5d)

文件名生成部分算法：
文件名被修改过程分为两部分，前半部分代表系统的key值，后半部分通过算法生成。文件名改名加密算法的局部过程，从”0123456789ABCDEF”当中随机选取一个字符充当文件名的局部。随机函数采用CryptGenRandom()。

![原文图片](/media/2016/06/063070b62d36e08ffb95c19375dc3a8b)

文件内容加密总体流程：

![原文图片](/media/2016/06/f9e8cc4f8db516288adbb7e856560650)

首先文件以只读形式打开，防止其他文件访问其内容，接着通过AES-128算法加密器内容，最后置换文件。完成文件加密。
文件内容：经过AES-128位算法加密。

![原文图片](/media/2016/06/54da5f6ca7dc0d184b4f4ee2dfb4604d)

打开文件

![原文图片](/media/2016/06/cb0a081b62f1fcf6ca5735e85450b59d)

把加密后的数据写回文件：

![原文图片](/media/2016/06/8a77ac641a688f0bc857f21a5890ec1a)

然后通过API函数替换文件。

![原文图片](/media/2016/06/87987a98985c2021bf81188f19b900f7)

8)桌面背景被换为：

![原文图片](/media/2016/06/6e950b7395164638719be7e23dada2b3)

# 0x04 总结

- 此类勒索邮件标题、正文、附件内容基本相同，只是针对收件人名称稍作修改。

- 为躲避邮件过滤系统，发送者邮箱使用和伪造了大量不同的IP和邮箱地址。

![原文图片](/media/2016/06/604f73fb67314f09ae7afb5cc7c7c2c6)

- 虽然此勒索病毒最终需要通过针对附件样本的分析才能判断确认，但基于流量分析可以发现诸多异常，完全可以在流量通信层面进行归纳阻断。

- 随着大量比特币病毒流入国内，各种敲诈勒索行为日渐增多，对应这种病毒，我认为防范大于修复。因为比特币病毒对文件的加密算法部分相对复杂，还原的可能性较小。并且每台机器又不一致。所以，我们尽量做好预防才是根本。以下是几点需要我们提高警觉性的：（1）及时更新杀毒软件。（2）注意防范各种不明确的邮箱附件。（3）及时备份重要信息到其他存储介质。

## Replies
