着色规则:
wireshark 默认显示列
No:编号,即pacp开始的帧号
Time:时间,分解为纳秒
Source:源地址,通常为IPv4、IPv6、以太网地址
Destination:目的地址,通常为IPv4、IPv6、以太网地址
Protocol:协议,{ 在以太⽹帧、IP包或TCP段(ARP、DNS、TCP、HTTP等)中使⽤的协议)}
length:帧的⻓度,单位为字节
右键列标题
1.取消勾选可以隐藏列
2.列首选项,点击加号、减号 新增或删除列
3.自定义新增列
Wireshark 允许我们根据帧详细信息窗口中的几乎任何值添加自定义列。
将HTTP和HTTPS流量中使用的域名添加到Wireshark列显示
要快速查找 HTTP 流量中使用的域,请使用 Wireshark 过滤器 http.request 并检查帧详细信息窗口。在详细信息host项右键 apply as column
要查找加密 HTTPS 流量中使用的域,请使用 Wireshark 过滤器 ssl.handshake.type == 1 并检查帧详细信息窗口。
4.将时间更改为 UTC 要更改时间显示格式,请转到“视图”菜单,操作到“时间显示格式”,然后将值从“自捕获开始以来的秒数”更改为“UTC 日期和时间”。使用相同的菜单路径将分辨率从“自动”更改为“秒”。图 显示了这些选项的菜单路径。
如果您在显示过滤器中键入任何内容,Wireshark会根据您键入的文本提供建议列表。虽然显示筛选器栏保持红色,但尚未接受表达式。如果显示筛选器栏变为绿色,则表达式已被接受,应正常工作。如果显示筛选器栏变为黄色,则表达式已被接受,但它可能无法按预期工作。
1.表达式可以使用布尔表达式
Equals: == or eq
And: && or and
Or: || (double pipe) or or
less than 小于 < lt
小于等于 le
等于 eq
大于 gt
大于等于 ge
不等 ne
2.http过滤
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
3.过滤ip
ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107
ip.addr eq 192.168.1.107
4.过滤端口
tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80
5.过滤协议
例子:
tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
oicq
bootp
等等
排除arp包,如!arp 或者 not arp
6.tcp参数过滤
tcp.flags 显示包含TCP标志的封包。
tcp.flags.syn == 0x02 显示包含TCP SYN标志的封包。
tcp.window_size == 0 && tcp.flags.reset != 1
7.包内容过滤
matches(匹配)和contains(包含某字符串)语法
ip.src==192.168.1.107 and udp[8:5] matches “\\x02\\x12\\x21\\x00\\x22″
ip.src==192.168.1.107 and udp contains 02:12:21:00:22
ip.src==192.168.1.107 and tcp contains “GET”
udp contains 7c:7c:7d:7d 匹配payload中含有0x7c7c7d7d的UDP数据包,不一定是从第一字节匹配。
8.wireshark利用正则表达式
wireshark过滤http中jpg,png,zip数据:
http.request and !((http.request.full_uri matches "http://.*\.jpg.*") or(http.request.full_uri matches "http://.*\.png.*") or(http.request.full_uri matches "http://.*\.zip.*"))
按照数据包内容过滤。假设我要以IMCP层中的内容进行过滤,可以单击选中界面中的码流,在下方进行选中数据。如下
右键->Apply as Filter->Selected。后面条件表达式就需要自己填写。如下我想过滤出data数据包中包含"abcd"内容的数据流。包含的关键词是contains 后面跟上内容。
指定值排除时,请勿在筛选器表达式中使用 !=。例如,如果要指定不包含 IP 地址 192.168.10.1 的所有流量,请使用 !(ip.addr eq 192.168.10.1) 而不是 ip.addr != 192.168.10.1
流量如果包括在正常活动期间通过 UDP 端口 1900 的 HTTP 请求。通过 UDP 端口 1900 的此 HTTP 流量是简单服务发现协议 (SSDP)。SSDP是用于发现即插即用设备的协议,它与正常的Web流量无关。因此,我使用以下表达式将其过滤掉:
(http.request 或 ssl.handshake.type == 1) and !(udp.port eq 1900)
您还可以使用以下过滤器并实现相同的结果:(http.request 或 ssl.handshake.type eq 1) and !(SSDP)
在某些情况下,受感染的主机可能试图连接已脱机或拒绝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发出同步信号,并未返回相应信号。
在过滤器中包含 TCP SYN 段可能会显示受感染主机与其他服务器的连接尝试失败。
某些情况,受害者主机感染后,流量不会基于web,受感染的主机将联系命令和控制 (C2) 服务器。这些服务器可以直接托管在 IP 地址上,也可以使用域名托管在服务器上。一些感染后活动,如由Nanocore远程访问工具(RAT)引起的C2流量,不是HTTP或HTTPS/SSL/TLS流量。
因此,在查看 pcap 时添加 DNS 活动,以查看这些域中的任何一个在流量中是否处于活动状态。这将生成以下筛选器表达式:
从 www.mercedes-club-bg[.] 下载的 Nanocore RAT 可执行文件
初始下载之后是尝试与franex.sytes的TCP连接
将 DNS 流量与 TCP 活动相关联。
分析ftp_pcap
受感染的 Windows 主机登录到 totallyanonymous.com 的 FTP 帐户,
追踪tcp流,检索名为 fc32.exe 和 o32.exe 等文件
之后在登录ftp服务器,上传6R7MELYD6文件
6R7MELYD6文件包含从受感染的windows主机窃取的密码数据,未加密。
除了 FTP 之外,恶意软件还可以使用其他常见协议来处理恶意流量。垃圾邮件机器人恶意软件可以将受感染的主机变成垃圾邮件机器人,旨在每分钟发送数十到数百封电子邮件。其特点是向各种邮件服务器发出多个 DNS 请求,然后是 TCP 端口 25、465、587 或与电子邮件流量关联的其他 TCP 端口上的 SMTP 流量。
pacp分析
对邮件服务器的dns查询
STARTTLS 可能是加密的smtp数据
近年来,来自垃圾邮件插件的电子邮件流量很可能是加密的SMTP。但是,您可以通过在常见的电子邮件标题行中搜索字符串来找到未加密的 SMTP 通信,例如:
smtp contains "From: "
smtp contains "Message-ID: "
smtp contains "Subject: "
点击+ 保存过滤器
来自 DHCP 流量的主机信息
来自 NetBIOS 名称服务 (NBNS) 流量的主机信息
来自 HTTP 流量的设备型号和操作系统
来自 Kerberos 流量的 Windows 用户帐户
pcap中可能没有dhcp流量,可以使用NBNS流量来识别运行Microsoft Windows的计算机或运行MacOS的Apple主机的主机名。
显示分配给 IP 地址的主机名的 NBNS 流量的帧详细信息。
过滤:nbns or http
主机名JANET-WORK-PC<00> 对应IP192.168.1.97
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36
代表 Google Chrome 网络浏览器版本 72.0.3626[.]81运行在微软的Windows 7 x64操作系统上。
各大浏览器UserAgent总结:https://cloud.tencent.com/developer/article/1758440
Windows NT 5.1: Windows XP
Windows NT 6.0: Windows Vista
Windows NT 6.1: Windows 7
Windows NT 6.2: Windows 8
Windows NT 6.3: Windows 8.1
Windows NT 10.0: Windows 10
使用来自 Windows 主机的基于 HTTP 的 Web 浏览流量,您可以确定操作系统和浏览器。来自 Android 设备的相同类型的流量可以显示设备的品牌名称和型号。
此 pcap 来自使用 172.16.4.119 的内部 IP 地址的 Android 主机
Android 7.1.2,它是 2017 年 210 月发布的 Android 操作系统的旧版本。LM-X4APM 表示此安卓设备的型号。快速的谷歌搜索显示该型号是LG Phoenix <> Android智能手机。
来自iPhone或其他Apple移动设备的HTTP流量的用户代理行将为您提供操作系统,并为您提供设备类型。但是,它不会给你一个型号。我们只能确定苹果设备是iPhone,iPad还是iPod。我们无法确定型号。
选择对 web.mta[.] 的第一个 HTTP 请求的帧
iPhone;CPU iPhone OS 12_1_3 like Mac OS X。这表明苹果设备是iPhone,并且运行的是iOS 12.1.3。
关于HTTP流量和用户代理字符串的最后一点说明:并非所有HTTP活动都是Web浏览流量。某些 HTTP 请求不会显示浏览器或操作系统。搜索流量以标识主机时,可能需要尝试多个不同的 HTTP 请求,然后才能查找 Web 浏览器流量。
由于越来越多的网站使用HTTPS,因此这种主机识别方法可能很困难。**HTTP 标头和内容在 HTTPS 流量中不可见。**但是,对于那些有幸在调查期间找到 HTTP Web 浏览流量的用户,此方法可以提供有关主机的更多信息。
此 pcap 来自以下 AD 环境中的 Windows 主机:
Domain: happycraft[.]org
Network segment: 172.16.8.0/24 (172.16.8[.]0 - 172.16.8[.]255)
Domain controller IP: 172.16.8[.]8
Domain controller hostname: Happycraft-DC
Segment gateway: 172.16.8[.]1
Broadcast address: 172.16.8[.]255
Windows client: 172.16.8[.]201
nbns 主机名JOHNSON-PC<00> 对应IP:172.16.8.201
对于 Active Directory (AD) 环境中的 Windows 主机,我们可以从 Kerberos 流量中找到用户帐户名。
kerberos.CNameString过滤 点击第一帧,将CNameString应用为列
主机名 JOHNSON-PC$ 已$结尾,用户名theresa.johnson
或者 kerberos.CNameString and !(kerberos.CNameString contains $) 过滤掉主机名
Kerberos 是一种基于加密 Ticket 的身份认证协议。Kerberos 主要由三个部分组成:Key Distribution Center (即KDC)、Client 和 Service。
从 HTTP 流量导出对象
从 SMB 流量导出对象
从 SMTP 通信中导出电子邮件
从 FTP 流量导出文件
文件-导出对象-http
导出之后确认文件类型,计算hash后vt搜索确认大概信息,是否为恶意文件。
除了Windows可执行文件或其他恶意软件文件外,我们还可以提取网页。
背景:某人在虚假登录页面上输入登录凭据的流量PayPal,在查看来自网络钓鱼网站的网络流量时,我们可能希望查看网络钓鱼网页的外观。我们可以使用导出 HTTP 对象菜单提取初始 HTML 页面,如图 6 所示。然后,我们可以在隔离环境中通过 Web 浏览器查看它,
文件-导出对象-http 提取初始html页面
某些恶意软件使用 Microsoft 的服务器消息块 (SMB) 协议在基于 Active Directory (AD) 的网络中传播。一种名为Trickbot的银行木马早在2017年<>月就增加了一个蠕虫模块,该模块使用基于EternalBlue的漏洞通过SMB在网络中传播。我们今天继续发现这个Trickbot蠕虫模块的迹象。
【100.00%】才能正确提取,任何小于 100% 的数字都表示网络流量中存在一些数据丢失,从而导致文件副本损坏或不完整。
某些类型的恶意软件旨在将受感染的 Windows 主机变成垃圾邮件机器人。这些垃圾邮件插件每分钟发送数百封垃圾邮件或恶意电子邮件。在某些情况下,消息是使用未加密的SMTP发送的,我们可以从感染流量的pcap中导出这些消息。
smtp.data.fragment 过滤
文件 --> 导出对象 --> IMF… 导出
从 FTP 服务器检索恶意软件可执行文件,然后将来自受感染的 Windows 主机的信息发送回同一 FTP 服务器。
用户名,密码登录ftp服务器,
RETR 五个Windows可执行文件的请求:q.exe,w.exe,e.exe,r.exe和t.exe
STOR 大约每 18 秒请求将基于 html 的日志文件存储回同一 FTP 服务器
ftp-data 过滤
我们不能使用 Wireshark 中的导出对象功能来导出这些对象。但是,我们可以从每个数据通道中跟踪TCP流。左键单击以 (SIZE q.exe) 结尾的任何行以选择其中一个 TCP 段。然后右键单击以显示一个菜单,并为 Follow --> TCP 流选择菜单路径。
ftp.request.command
要查看通过 ftp 数据通道发送的关联文件,请使用过滤器ftp-data.command contains .html
每次将文件存储 (STOR) 到 FTP 服务器时,目标端口都会更改。第一次有 TCP 端口 52202。第二次具有 TCP 端口 57791。第三次有 TCP 端口 55045。第四次有57203。第五次有61099。
**我们使用与以前相同的过程。不要关注文件名,而是关注 TCP 端口。使用端口 52202 跟踪任何 TCP 段的 TCP 流。**在 TCP 流窗口中,将“显示数据并将其另存为”更改为“原始”。然后保存文件。对通过 TCP 端口 57791 的 HTML 文件执行相同的操作。
如果对所有五个 HTML 文件执行此操作,您会发现它们是完全相同的文件。这些基于文本的HTML文件包含有关受感染的Windows主机的数据,包括恶意软件发现的任何密码。