对恶意软件Dridex的流量分析

2019-02-25 75846人围观 企业安全

*本文作者:arr0w1,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

前言

流量分析需要我们有扎实的网络知识为基础,同时需要具备实际操作的能力和经验。通过写本篇文章,记录下练习流量分析的过程。以便提高从流量上确定感染情况,以及分析溯源等能力。

wireshark及其插件

WireShark是一款强大的网络协议分析开源软件,它提供了灵活的插件机制,使用户可以方便地扩展wireshark的功能。插件的功能包括但不限于:协议解析器。

可以使用Lua或C语言来编写Wireshark插件。 使用Lua写插件,优势是:相对简单好上手,代码量少,部署在插件目录,不用和主程序一起编译。

配置与安装

我在Mac OS系统下亲测安装wireshark插件,踩了一些坑,最终安装成功。整个过程如下:

安装lua

curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz
tar zxf lua-5.2.3.tar.gz
cd lua-5.2.3
make macosx
make test
sudo make install

输入lua看到Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio表示已经安装好了。

安装wireshark插件的通用过程

在Mac OS系统下,先进入wireshark目录。 cd /Applications/WireShark.app/Contents/Resources/share/wireshark

将lua脚本(可以自己写)复制到该目录中。

然后编辑文件init.lua,将其中的disable_lua = true改为disable_lua = false,并在文件最后一行处写下你打算加载的插件dofile("xxx.lua"),并保存该文件。

以安装patoolkit插件集合为例

PA Toolkit是一系列专注于安全性的流量分析插件的集合。

github地址: pentesteracademy/patoolkit: PA Toolkit is a collection of traffic analysis plugins focused on security

PA Toolkit的插件有以下几种,大概说下功能: WiFi(WiFi网络概览,检测beacon,deauth floods洪水攻击等) HTTP(列出所有访问过的http网站,通过http协议下载的文件) HTTPS(列出以HTTPS协议访问的所有网站的域名) ARP(MAC-IP表,检测MAC地址欺骗和ARP投毒) DNS(列出使用的DNS服务器和DNS解析,检测DNS Tunnels)

开始安装,把该项目下载到本地,进入该项目中的plugin目录,看到如下的文件结构:

├── arp
│   └── arp_table.lua
├── dhcp
│   └── dhcp_table.lua
├── dns
│   └── dns_table.lua
├── ssh
│   └── ssh_info.lua
├── util.lua
├── web
│   ├── downloded_files.lua
│   ├── get_requests.lua
│   ├── post_requests.lua
│   ├── tor_detection.lua
│   └── website_lists.lua
└── wifi
    ├── beacon_flood_detection.lua
    ├── check_wpa_bruteforce_possiblity.lua
    ├── deauth_flood_detection.lua
    ├── security.lua
    └── wifi_overview.lua

进入wireshark目录cd /Applications/WireShark.app/Contents/Resources/share/wireshark, 将plugin文件夹中的所有lua脚本复制到该目录中。

然后编辑文件init.lua,在最后一行写需要加载的插件,即:

dofile(DATA_DIR.."util.lua")
dofile(DATA_DIR.."arp/arp_table.lua")
dofile(DATA_DIR.."dhcp/dhcp_table.lua")
dofile(DATA_DIR.."dns/dns_table.lua")
dofile(DATA_DIR.."ssh/ssh_info.lua")
dofile(DATA_DIR.."web/downloded_files.lua")
dofile(DATA_DIR.."web/get_requests.lua")
dofile(DATA_DIR.."web/post_requests.lua")
dofile(DATA_DIR.."web/website_lists.lua")
dofile(DATA_DIR.."web/tor_detection.lua")
dofile(DATA_DIR.."wifi/beacon_flood_detection.lua")
dofile(DATA_DIR.."wifi/check_wpa_bruteforce_possiblity.lua")
dofile(DATA_DIR.."wifi/deauth_flood_detection.lua")
dofile(DATA_DIR.."wifi/security.lua")
dofile(DATA_DIR.."wifi/wifi_overview.lua")

启动wireshark,如果提示错误”/usr/local/lib/lua/5.2目录中没有xx.lua文件”,只需要将util.lua和security.lua复制到该目录就行。

启动后无报错且能看到插件菜单,如下图,说明插件安装成功,可以用插件辅助,更快地进行流量分析了。

其它补充

windows下的安装,大同小异,在图片中的路径中,编辑文件即可,其它步骤相同,参考以上安装过程。 

image.png

实例:对“以银行为目标的恶意软件”的流量分析

如果企业内网受到这种类型的恶意软件感染,从流量上应该如何分析感染过程?确定内网中的感染情况?

已知自身的网络环境

局域网范围 172.17.8.0/24 (即172.17.8.0到172.17.8.255) 

局域网网关 172.17.8.1 

局域网广播地址 172.17.8.255

域 timbershade.info

域控制器 172.17.8.2 – Timbershade-DC 

需要解决的问题

被感染的Windows主机的IP地址是什么?

被感染的Windows主机的MAC地址是什么?

被感染的Windows主机的计算机名是什么?

被感染的Windows主机的用户的帐户名是什么?

发送到被感染的Windows主机的可执行文件的SHA256文件hash是什么?

参考IDS警报,这是什么类型的感染?

步骤1 确定分析目标的ip

使用Statistics菜单选项,如下图所示。

已经知道局域网的ip范围是172.17.8.0/24(即172.17.8.0到172.17.8.255),如图,Conversations中看到只有一个IP地址172.17.8.109既不是域控制器(172.17.8.2)也不是广播地址(172.17.8.255)。另外,IDS警报文件只显示了172.17.8.109这个ip的警报。

image.png

步骤2 查找IP地址与MAC地址和计算机名关联关系

方法一:通过DHCP协议查看

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

可以通过查看DHCP流量(过滤语法:bootp)将IP地址、MAC地址和计算机名,三者关联起来,如下图所示。

黄色是:计算机名 Dunn-Windows-PC 

蓝色是:ip 172.17.8.109 

红色是:Mac地址 14:fe:b5:d4:15:ca (Dell_d4:15:ca)

方法二:通过NetBIOS协议查看

根据NetBIOS / NBNS – Wireshark Wiki,NetBIOS名字服务 即 NetBIOS Name Service (NBNS)是NetBIOS-over-TCP协议套件的一部分,此服务通常在Windows系统上称为WINS (Windows Internet Name Service) 。 传输协议:通常NBNS使用UDP作为其传输协议。众所周知的NBNS流量UDP端口是137。(NBNS也可以使用TCP作为其某些操作的传输协议,尽管在实践中可能永远不会这样做,TCP端口是137)。 WINS (Windows Internet Name Service):名字服务,功能包括名字注册和名字解析,简单的说这里的名字解析功能,NBNS(windows下称为WINS)将“NetBIOS名字”转换为ip地址。 WINS提供了一个分布式的动态更新的数据库,能在路由网络的环境中动态地对IP地址和NETBios名的映射进行注册与查询。 WINS用来注册“NetBIOS计算机名”,并在需要时将它解析成为IP地址。(其实这个功能比较像DNS协议,它们都是将人类可读的名称转换为IP地址)

在此处也可以通过查看 NBNS流量(过滤语法:NBNS)一样能得到“IP地址与MAC地址和计算机名关联关系”,如下图所示。

image.png

黄色是:计算机名 DUNN-WINDOWS-PC<00> (Workstation/Redirector) 

蓝色是:ip 172.17.8.109 

红色是:Mac地址 14:fe:b5:d4:15:ca (Dell_d4:15:ca) 

步骤3 查找Windows用户的帐户名

使用以下Wireshark过滤语法: kerberos.CNameString and !(kerberos.CNameString contains $) 

image.png

看到kerberos.CNameString为margaret.dunn,得到了Windows用户的帐户名:margaret.dunn。

为什么kerberos协议的流量中有Windows用户的帐户名?

原理:

因为Kerberos认证过程中,客户机用户以明文方式发送AS-REQ(认证请求)密钥分发中心KDC(Key Distribution Center)以向AS( Authentication Server认证服务进行认证,要求得到某服务器的证书。

AS-REQ(认证请求)中包含Windows用户的帐户名,所以可以从流量中的AS-REQ(认证请求)中找到Windows用户的帐户名。

步骤4 确定威胁类型

使用 EmergingThreats (ET) 规则集,从 IDS(Security Onion的Sguil)发现的这些警报(如下图):

image.png

根据IDS警报,可以看到警报列表中最下面的警报为: ET TROJAN ABUSE.CH SSL Blacklist Malicious SSL certificate detected (Dridex) 

Dridex的ssl证书被IDS黑名单规则匹配到,所以应该是Dridex感染。

可以看到在IDS警报列表最下面这些“dridex证书警报”之前,有个“可执行文件下载”的警报,可得出Windows EXE或DLL文件是从91.121.30.169的TCP端口8000下载的,需要从流量中提取这个样本文件。

步骤5 提取样本文件

在wireshark中菜单 File → Export Objects → HTTP ,可以找到一些对分析有意义的文件,如压缩文件、文本文件、音频文件、图片等。

image.png

在导出这些文件之前,怎么判断哪个是Windows可执行文件呢? Follow 这个HTTP请求的TCP流,可以从3处发现特征可以确定Windows可执行文件(exe或dll),如下图所示。 

image.png

image.png

从pcap提取到了恶意样本文件。

现在可以自己计算hash,也可以顺手提交给VirusTotal获得更多有关它的信息、IoC等。

(当然也可以通过插件的功能快速查看下载的文件,便于分析和理解恶意软件的逻辑) 

image.png

问题的答案

被感染的Windows主机的IP地址是什么? 

172.17.8.109

被感染的Windows主机的MAC地址是什么? 

14:fe:b5:d4:15:ca (Dell_d4:15:ca)

被感染的Windows主机的计算机名是什么?

 Dunn-Windows-PC

被感染的Windows主机的用户的帐户名是什么? 

margaret.dunn

发送到被感染的Windows主机的可执行文件的SHA256文件hash是?

9f6e3e65aedca997c6445329663bd1d279392a34cfda7d1b56461eb41641fa08

根据IDS警报,这是什么类型的感染?

Dridex

简介:Dridex是一种专门针对银行的恶意软件,它利用Microsoft Office中的宏来感染系统。一旦计算机被感染,Dridex攻击者就可以窃取系统上的银行凭据和其他个人信息,以访问用户的财务记录。

总结

流量分析作为企业网络安全防御体系的重要的一部分,与日志分析等相结合,尽可能完整还原恶意软件攻击过程,这样才有可能将恶意软件从企业网络中彻底清理,同时对流量特征进行分析,可得到并整理出IoC、相关样本文件、甚至是写出一份完整的分析报告,分享这些成果,可供其他企业和安全人员参考、学习,提高其自身防御水平。这样其实为推动安全行业的发展做出了贡献,也有助于企业及安全人员的综合能力的提高。

*本文作者:arr0w1,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

相关推荐
取消
Loading...
arr0w1

这家伙太懒,还未填写个人描述!

1 文章数 0 评论数 0 关注者

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php