网络空间安全 恶意流量和恶意代码 结合Wireshark初步分析(一) 您所在的位置:网站首页 查看木马 网络空间安全 恶意流量和恶意代码 结合Wireshark初步分析(一)

网络空间安全 恶意流量和恶意代码 结合Wireshark初步分析(一)

2023-08-29 00:22| 来源: 网络整理| 查看: 265

网络空间安全 恶意流量和恶意代码 学习入门(一)

说明: 希望通过使用 Wireshark 分析数据包,来更好理解网络恶意流量和恶意代码的作用流程和原理,同时也分享给大家。

一、概念介绍 PCAP 是一个数据包抓取库, 很多软件都是用它来作为“数据包抓取工具”。 WireShark 也是用PCAP 库来抓取数据包的。PCAP 抓取出来的数据包并不是原始的网络字节流,而是对其进行从新组装,形成一种新的数据格式。Wireshark 是一款免费的协议分析器,可以记录和显⽰⽹络流量的数据包捕获(pcaps)。这个⼯具被 IT 专业人士⽤来调查广泛的网络问题。 二、实验说明 实验所用的系统为Windows xp sp3,是Windows xp操作系统的最后一个版本,SP3的意思是第三个服务安装包。目前这个版本已停止安全更新多年,现在使用安全性不高。我是在虚拟机中安装此系统并进行操作,也建议大家这样做,避免对计算机造成不必要麻烦。实验所用的数据包是之前做实验留下来的,就直接用了,如果需要可以到文末领取。当然,大家也可自行去抓取(使用自己的流量包),至于怎么抓取可以查询网上教程。 三、Wireshark 的基本使用

恶意软件经常通过网络流量传播,我们也看到这个通道被⽤于数据泄露和命令控制活动。调查这种基于恶意软件的感染流量时,wireshark 可以自定义来提供更好的活动视图。

① 导包及熟悉软件界面

我们使用数据包:2019-09-25-Emotet-infection-with-Trickbot-in-AD-environment.pcap,点开数据包 pcap,wireshark 弹出界面如下图所示:

在这里插入图片描述 上边显示的参数代表的意义:

No:编号,即pacp开始的帧号 Time:时间,分解为纳秒 Source:源地址,通常为IPv4、IPv6、以太网地址 Destination:目的地址,通常为IPv4、IPv6、以太网地址 Protocol:协议,{ 在以太⽹帧、IP包或TCP段(ARP、DNS、TCP、HTTP等)中使⽤的协议)} length:帧的⻓度,单位为字节 再下边是一些详细的信息和整体信息,最下边是一些十六进制数据。

注意 wireshark 的以下设置规则和技巧:

1. 如果想要更改显示的列,在导航栏任一菜单右键,点击 Displayed Columns 即可进行修改,如下图所示:

在这里插入图片描述 也可点击 Column Preferences 来添加和编辑列,如下图示:

在这里插入图片描述 双击列名可进行对应修改,也可添加新列,并再Field Type中选择修改类型,⻓按(点击稳住两秒)可以拖动。这里不再详细演示了

修改 wireshark 的列,使得修改后的列为我们所用,得到显示时间、源地址、源端口、目的地址、目的端口和相关信息,如下图:

在这里插入图片描述 可以看到,列已经做出修改,并为我们下文的实际分析所用

2. 更改时间为协调世界时,首先,进入“视图(View)”菜单,调整到“时间显示格式”。 改变时间格式“Seconds Since Beginning of Capture”为“UTC Date and time of Day”。 改变分辨率从“自动”到“秒”,实际操作如下图所示:

在这里插入图片描述 在这里插入图片描述

3. 如果有特定需求,可以结合 Wireshark 过滤器,创建一个新列,比如将 HTTP 和 HTTPS 流量中使用的域名添加到 Wireshark 列显示中,操作如下(这里需要在过滤器中输入 http.request,在框架详细信息窗口中找到并展开 “Hypertext Transfer Protocol” 行,向下滚动到以 “Host:” 开头的行。选中后右键,选择 “Apply as column”):

在这里插入图片描述

4. 我们继续来筛选 SSL 握手类型(说明:新版的 ssl 合到 tls 里了),对于 SSL/TLS原理 有兴趣的话可以点击链接进行深入了解。我们输入 ssl.handshake.type ==1 来显示的列中的 HTTP 服务器名,将 HTTPS 服务器名 (server name) 作为列应用 。大家可以看我图中的加减号对应,来找 server name

在这里插入图片描述

② wireshark 的常用过滤和基本语法总结

在 wireshark 的过滤规则框 Filter 中输入过滤条件进行过滤,过滤对象:

1. 源ip、目的ip

如查找目的地址为 ip.dst 为 10.9.25.9 的包,ip.dst == 10.9.25.9;查找的源地址为 1.1.1.1,输入ip.src == 1.1.1.1;绿色的框,代表我们的语法没有出错,但是没有找到符合条件的(说明: Filter中输入表达式后过滤条颜色含义:绿接受、黄接受但无法工作、红不接受)。实验过程如下图所示:

在这里插入图片描述 在这里插入图片描述

2. 端口过滤

如 tcp.port == 80 把源端口和目的端口为 80 的都过滤出来。而使用 tcp.dstport == 80 只过滤目的端口为 80 的,tcp.srcport == 80只过滤源端口为 80 的

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3. 协议过滤

在 Filter 框中直接输入协议名即可,如过滤 HTTP 协议

在这里插入图片描述

4. http模式过滤

如过滤 get 包,http.requesthod==“GET” 过滤 post 包,http.requesthod==“POST”

在这里插入图片描述 在这里插入图片描述

5. 连接符的使用

过滤两种条件时,使用 and 连接,如过滤目的地址为 10.9.25.9 的包,并且为 http 协议的,ip.dst==10.9.25.9 and http

在这里插入图片描述 这里仅以and为例,也可以采用下边的表达式语法进行多种操作:

语法:

等:==、eq 与:&& 、and 或:||、or ⾮:!

例子:

ip.addr eq 192.168.10.195 and ip.addr == 192.168.10.1 http.request && ip.addr == 192.168.10.195 http.request || http.response dns.qry.name contains microsoft or dns.qry.name contains windows 注意: 如果要指定所有不包含IP地址192.168.10.1的“流量”,要⽤ !(ip.addr eq 192.168.10.1) 不要⽤ ip.addr != 192.168.10.1 (会导致第⼆个过滤器表达式将不能正常⼯作,变⻩)**

四、实验:使用 wireshark 进行抓包处理和分析 ①、基础实战第一例:过滤分析基于 web 的感染流量(木马 Emotet 产生的流量)

这些指标通常称为 “Indicators of Compromise”(IOCs,译为妥协指标)。安全专家经常记录与 Windows 感染流量相关的指标,比如 url、域名、IP地址协议、端⼝。从商品恶意软件通过大规模分发的⽅法,如恶意垃圾邮件 (malspam) 或 web 流量。在恶意软件(通常是 Windows 可执⾏⽂件)感染Windows主机之前,这些感染可以遵循许多不同的路径。对于感染流量的指标,使⽤ Windows 感染流量的例⼦进行说明,我们以用户浏览⼀个来自 college.usatoday 的 URL 时产生的网络流量为例:traffic-for-wireshark-column-setup.pcap 演示:

A. 使用 http.request or ssl.handshake.type == 1

在这里插入图片描述

http.request :显示HTTP请求的url

在这里插入图片描述

ssl.handshake.type == 1 :显示HTTPS或SSL/TLS通信中使用的域名

在这里插入图片描述

B. 添加过滤: 去掉与web无关的ssdp: !(udp.port eq 1900)

下图显示了2018年12月3日在Windows 7主机上的带有IcedID感染流量的Emotet活动(Using-Wireshark-diplay-filters-Emotet-with-IcedID.pcap)在这里插入图片描述 进一步,对包含SSDP请求的web流量进行过滤,原因如下:

正常活动期间HTTP请求通过UDP的1900端口。通过UDP 1900端⼝的HTTP流量称为SSDP (Simple Service Discovery Protocol)。SSDP是⼀种发现即插即⽤设备的协议,与正常的web 流量没有关联。在Windows 7主机上审查pcap感染时,过滤掉SSDP活动可以更清楚地查看流量

语句变为: (http.request or ssl.handshake.type == 1) and !(udp.port eq 1900) 在这里插入图片描述 在上图中,我们看到了⼀些感染流量的指标,但并不是所有的感染指标都显示出来了。 在某些情况下,受感染的主机可能试图连接已脱机或拒绝TCP连接的服务器。这些尝试的连接可以通 过TCP SYN段显示。

由此,进一步,添加过滤规则:tcp.flags eq 0x0002 最终语句:(http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)

实验操作如下:

在这里插入图片描述 中间的灰色部分代表:通过TCP协议8443端口向217.165.2.133发出同步信号,并未返回相应信号

②、基础实战第二例:过滤分析恶意软件 Nanocore-RAT流量

使用的数据包:Using-Wireshark-diplay-filters-Nanocore-RAT.pcap

Nanocore-RAT:对它的分析推荐阅读->点这里

进一步,在某些情况下,感染后的流量将不基于web。受感染的主机将联系”命令和控制“服务器(C2)。这些服务器可以直接托管在IP地址、使用域名的服务器上,一些感染后的活动,如由nancore远程访问工具(RAT)引起的C2流量,不是HTTP或HTTPS/SSL/TLS流量。因此,在查看流量中这些域是否处于活动状态时,常添加DNS活动。 (http.request or ssl.handshake.type==1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900) 在这里插入图片描述 结果如下图所示:该pcap显示 www.mercedes-club-bg.com 下载 Nanocore RAT 可执行文件 mko.exe,以感染易受攻击的Windows主机。 初始下载后,尝试通过TCP连接到 185.163.45.48 上的 franex.sytes.net 和 95.213.251.165 上的 franexserve.duckdns.org

在这里插入图片描述 右键,点击追踪TCP流:下边框内可以看到MZ开头,这种大多属于恶意文件,PE 文件常用的标志头

在这里插入图片描述 点击文件-导出对象-http,可对可执行文件进行导出,一般杀毒软件会自动识别:

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

本文后续内容见 《恶意流量和恶意分析(二)》

本文(次)实验涉及的流量包资源:

我用阿里云盘分享了「恶意流量和恶意代码(一)数据包分享」,你可以不限速下载🚀 复制这段内容打开「阿里云盘」App 即可获取 链接:https://www.aliyundrive.com/s/xKWnpwPfpQY

未能下载下来朋友的可联系我 QQ: 743337163



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有