WireShark黑客发现之旅(7)—勒索邮件


作者:Mr.Right、Gongmo、K0r4dji

申明:文中提到的攻击方式仅为曝光、打击恶意网络攻击行为,切勿模仿,否则后果自负。

0x00 前言


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

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

0x01 截获邮件样本


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

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

0x02 WireShark分析


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

(一) 物理层分析

暂不做分析。

(二) 链路层分析

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

此层数据无异常。

(三) 网络层分析

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

简单做几个测试,就发现有异常:

  1. 191.102.101.248并未开放TCP25端口;

  2. 191.102.101.248与elynos.com无关;

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

(四) 传输层分析

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

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

(五) 会话层分析

SMTP协议在会话层一般分析要素包括:认证过程、收发关系、加密协商、头部协商等。

将一封邮件的会话Follow TCPStream,可以看出邮件的发件人是来自外部的“陌生人”。

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

(六) 表示层分析

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

(七) 应用层分析

针对此案例,应用层分析目标包括:邮件正文内容安全、邮件附件安全、是否为垃圾邮件等。

1.指向性:收件人邮箱名为:voice5@X.gov.cn,邮件正文称呼为“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一下,可得到附件内容。通过分析,可确认附件为敲诈勒索病毒。(本文不详述)

0x03 勒索病毒分析


(注:本章节不全属于Wireshark分析范畴)

(一)病毒初始化文件

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

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

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

(二)病毒行为

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

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

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

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

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

病毒开始构造一个连接,准备发往作者的服务器。构造如下:

Id=00&act=00&affid=00&lang=00&corp=0&serv=00&os=00&sp=00&x64=00;

很明显这是在获取系统的一些信息,包括ID号,版本号,语言等。

病毒准备提交的网址:

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

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

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

5)如果病毒c&c服务器没有返回信息;则病毒一直处于等待状态。

6)感染文件。首先循环便遍历扫描文件。

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

文件名生成部分算法:

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

文件内容加密总体流程:

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

文件内容:经过AES-128位算法加密。

打开文件

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

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

8)桌面背景被换为:

0x04 总结


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

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

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

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

评论

K

K0r4dji 2016-04-14 11:00:11

顶了~

路人甲 2016-04-14 17:56:56

说了半天到底还是不能还原数据。
记得有一句话:裤子都脱了你给我看这个?!

乌云 2016-04-15 10:01:37

@晨晨 可以吧,AES加密又不是rsa,逆向程序提取加密密钥就行了

路人甲 2016-04-15 12:57:28

国内中招的用户,通过点邮件被感染 是比较少的吧

C

CCoday 2016-04-15 13:02:30

密码学这么有用的东西,被用来干勒索,hh

路人甲 2016-04-15 20:58:21

大神些,好腻害

欧尼酱 2016-04-16 10:00:29


路人甲 2016-04-16 10:17:00

第一次窥得计算机高手,活了好多年,还是个门外汉

路人甲 2016-04-16 10:20:31

下了个wireshark,观察了好段时间,都不会用,看了这感觉像站在地上看飞机飘过一样

路人甲 2016-04-16 21:34:53

@hick 如果真想学建议买本书先了解功能,再学习协议。

路人甲 2016-04-17 23:35:26

@Mr.Right 我学的网络工程师,思科的 不知日后转到一行行不行,人家推荐我说学个简单的然后在慢慢转行做这个..

U

un10ad 2016-04-18 09:44:23

@hick 大哥 这个主要的部分不是 wireshark..吧

路人甲 2016-04-18 10:22:29

@宝
当然行。
网络工程师对网络架构、基本协议、常见网络故障很了解,转安全特别是分析比较有优势。

路人甲 2016-04-25 16:00:53

OD...弄了好久不会用

随机分类

安全开发 文章:83 篇
密码学 文章:13 篇
渗透测试 文章:154 篇
其他 文章:95 篇
Windows安全 文章:88 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Yukong

🐮皮

H

HHHeey

好的,谢谢师傅的解答

Article_kelp

a类中的变量secret_class_var = "secret"是在merge

H

HHHeey

secret_var = 1 def test(): pass

H

hgsmonkey

tql!!!

目录