🦈Wireshark入门与实战
2021-4-1
| 2024-2-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
wireshark入门:
他这里顺序有点误,应该是 P1-P26,P32-P39,P27-P31
notion image

Wireshark 入门

伯克利包过滤 - Wireshark包过滤

BPF(Berkeley Packet Filter) 采用与自然语言相近的语法,利用语法构造字符串确定保留具体符合规则的数据包而忽略其他数据包
最简单语法空白字符,任何数据包都符合空白字符规则

语法规则

  • type表示对象 如 IP地址、子网或端口 -> host、net、port
  • dir 表示数据包传输的方向 -> src、dst
  • proto 表示与数据包匹配的协议类型 -> ether、ip、tcp、arp

演示实例

notion image
会发现直接在 Apply a display filter 里输入是无法过滤的,
notion image
新版的 wireshark 的 expression 功能在如下图所示这里
notion image
 
notion image
在 wireshark 里,不是直接使用 host 来表示主机名和对应的 ip 地址,而是使用 ip.addr = <ip> 来表示
notion image
 
其他也是类似,如 ip.srcip.dst
在找服务这一块,服务都是以占用端口的形式展示的,因此可以通过这种形式来看怎么用,然后点OK即可。
notion image
notion image
也可以使用 逻辑运算符实现筛选,如 tcp.port == 80 and ip.src == 192.168.123.37
notion image
当然也有类似补全的操作
notion image

wireshark包过滤器分类 - 遵循伯克利语法规则

捕获过滤器 -> 在抓包之前进行设置,在抓取时,就不会抓取不符合文件的数据包
  • 只捕获目标端口为80的TCP数据包 -> tcp dst port 80
notion image
  • 捕获目的主机IP地址为 192.168.123.37 的数据包 -> dst host 192.168.123.37
notion image
  • host 不支持 cidr 域名 书写

筛选过滤器 (显示过滤器)-> 抓包之后进行应用的,即再次筛选
然后显示过滤器有两种创建方式
  1. 输入框创建
notion image
当不知道如何创建就看下图这里
notion image
notion image
  1. 数据包细节面板创建
notion image
... and Selected 表示 目前的过滤器 + and 进行连接
notion image
一开始是只有 Selected 和 Not Selected
  • 表达式规则
    • 主题 + 运算符 + 值
    • 逻辑关系 与 或 非 -> and (&&) or (||) not (!)

Wireshark 捕获数据包文件保存

notion image
notion image

杂项设置

wireshark 数据包颜色的意思

可以通过 视图 -> 着色规则进行查看
notion image
notion image

wireshark 故障包过滤

notion image
有5个等级
  • Error 严重错误,譬如:畸形数据包或识别出数据包协议头部的某些字段和预期值不符
  • Warning 一般性问题(应用程序问题或通信问题),譬如:TCP zero window ,TCP window full ,TCP报文段失序,TCP报文段丢失
  • Note 可能引发故障的异常现象(正常行为),譬如:TCP重传,重复确认,快速重传
  • Chat 符合常规流量的特征,譬如:SYN,FIN,RST
  • Comment
  • OK

查看wireshark 内置文件路径

notion image

修改wireshark默认配置

notion image

Wireshark 网络分析

notion image
# Wireshark 部署方式

远程数据包捕获

方式1:

开启远程桌面,rdp服务,在系统中安装wireshark进行抓包分析 缺点: 在于远程登录过程中,都会产生无关与目的远程连接数据流量

方式2: wireshark 远程抓包

windows

 
服务端: winpcap -> rpcapd
 
客户端: wireshark
notion image
notion image

linux

macos

注意 macos 版本没有直接抓取数据包的功能,可参考 https://distanceblog.github.io/2020/06/05/wireshark%E8%BF%9C%E7%A8%8B%E6%8A%93%E5%8C%85/

本地数据包捕获

wireshark 不能抓取本地环回网卡数据包 不过可以使用 RawCap https://www.netresec.com/?page=RawCap
notion image
然后浏览器访问 localhost
不过可以通过访问本机 ip 代替 localhost 间接捉取数据包(狗头

虚拟机数据包捕获

选择对应网卡即可。。。
比如在 kali 上运行
notion image
哈哈哈哈,原来arp广播还真就这么直白,,Who has ....? Tell ...(netdiscover 还真直白

ARP欺骗捕获数据包

攻击原则

  • 任何主机均能发送伪造包给局域网中的另一主机;
  • 任一主机相信它们接受到的所有包;
  • 当一个新的响应包到达时,它甚至在没有请求包被发送的情况下覆盖掉旧的记录。

实践

kali 一般要先安装
kali 上运行
notion image
然后此时在 192.168.123.37 这台机器上wireshark 选择网卡 eth0,因为是欺骗这一张网卡,wireshark 筛选过滤器填入 icmp 查看
notion image
会发现 192.168.123.1 的 mac 地址是 kali的。。。
notion image
所以在 192.168.123.37 上是上不了网的,除非kali上开启了数据包转发,当 ip_forward 为 0 时,欺骗的目标 上不了网,当该值为 1 时,会把192.168.123.37发送的数据包做转发给网关,就可以正常上网,但是192.168.123.37的数据包都会经过 kali。
notion image
 

Wireshark 网络安全

链路层安全

针对于交换机的安全问题

MAC对称欺骗 —— macchange

擦除只是暂时的,不是覆盖原来的mac地址,机器重启后就会恢复。 通过MAC地址欺骗达到隐藏真实主机的目的
设置前需要关闭网卡
notion image
随机化设置

MAC地址泛洪分析 —— 溢出交换机CAM表

交换机之所以可以交换数据,是因为交换机在内存中维护着一张CAM表,即 端口 <-> MAC地址 当表被添满时,其他主机就无法在对应的端口正常交互数据

wireshark 抓包分析

notion image
因为实际中,主要数据包类型是 tcp 或 udp 下面只有 ip 数据包,因此很可能有问题(当然有问题,哈哈
notion image
notion image
 
很多无关的 ip 以及 mac地址,数据包很小
notion image
notion image

查找源头端口

交换机
找到对应的端口
notion image

防御策略

限制交换机端口 MAC 地址数量,比如这个端口只能有3或5个,那他就只能添加3或5跳记录到CAM表,那么就无法溢出啦。

STP操纵

生成树协议按照树的结构构造网络拓扑,避免形成回路。STP协议中的各交换机通过交换BPDU报文信息传播生成树信息,如果伪造BPDU报文,控制交换机的端口转发状态,从而动态改变网络拓扑,劫持网络流量到本地。

广播风暴

ARP DHCP 通过在局域网中广播,占用网络资源,网络性能下降 -> 网络速度变慢 产生原因
  • 网络短路引发广播风暴 -> 8根连接 两两连接 -> 互联网上网线导致网络性能下降
  • 网络中存在环路引发广播风暴
  • 网卡损坏引发广播风暴
  • 蠕虫病毒引发广播风暴

网络层安全

中间人安全测试 - 欺骗

ARP协议

  • 局域网内用来寻找主机发送数据包的协议,通过它可以找到指定 IP 地址对应的 MAC地址
  • 每台终端设备都具有ARP缓存表
    • arp -a 查看缓存表
    • arp -d 删除缓存表
    • 表的填充,寻找 IP 地址对应MAC地址,如果没有则广播此时设置的目标MAC地址为 (00:00:00:00:00:00) 是否具有IP地址对应的MAC地址,找到填充。

ARP协议分析介绍

显示过滤器
  • arp
  • 请求数据包
    • arp.opcode == 0x0001
  • 响应数据包
    • arp.opcode == 0x0002
  • 查看源 MAC 地址
    • arp.src.hw_mac == 00:00:00:00:00:00
    • arp.src.hw_mac == 00:00:00:00:00:00 && arp.opcode == 0x0002

专家系统分析

网关地址与局域网中的计算机具有一致的MAC地址
notion image

出现大量ARP数据包的原因

  • ARP主机扫描
  • ARP病毒进行通信
  • ARP欺骗 中间人安全测试

防御ARP欺骗措施

  • 静态绑定ARP表
    • arp -s 网关的IP地址 网关的MAC地址
      • 不适合大型网络使用
      • 需要管理员权限
      • win netsh i i show in -> 查看网卡编号
      • win netsh -c "i i" add neighbors <网卡编号> <网关IP地址> <网关MAC地址>
      • notion image
  • 交换机也有端口安全配置,固定MAC和IP使用端口
    • 不适合大型网络使用
  • 交换机 DHCP-Snooping
    • 交换机监听DHCP数据,提取IP和MAC建立DHCP Snooping的绑定表
  • 划分VLAN
    • 每一个VLAN就是一个广播域 -> 限制网络范围

泪滴安全测试

原理介绍
  • 针对于IP协议的安全测试,主要是伪造IP地址和发送畸形数据包
  • 向目标发送畸形数据包,使得IP数据包碎片在重组的过程中有重合的部分(偏移位置不够),从而导致目标系统无法进行重组,进一步导致系统奔溃而停止服务。
根据数据包表示 Identification 来确实是否属于同一分组
notion image
分析 第8和第9个数据包
notion image
偏移量仅为 24,远不够36。
notion image
因此无法重组
不过对现在的计算机来说,泪滴测试不会对计算机造成很大的影响,所以基本不关心泪滴安全测试了。不够泪滴测试和ARP泛洪结合,还是能对计算机造成很大的困扰。

传输层安全

传输层主要针对TCP和UDP协议,因此拒绝服务DOS(Denial of Service)也主要是基于这两个协议

TCP SYN 泛洪

TCP连接介绍

  • 客户端发送SYN到服务器
  • 服务器响应 SYN+ACK 到客户机
  • 客户机发送ACK到服务器
使用 wireshark 分析 TCP 三次握手数据包
notion image

TCP SYN flooding 安全测试

原理
  • 客户端发送syn服务端返回syn+ack,如果客户端不再发送ack,那么服务端将等待超时,重新发送syn+ack。如果是大量的等待,就可能导致服务器奔溃。
案例演示
  • q: 安静模式
  • n: 数字化输出,象征性输出主机地址
  • -rand-source: 随机源IP
  • S: 发送SYN数据包
  • p: 指向端口
  • -flood: 使用泛洪
为了便于分析。打开 Statistics -> Flow Graph
notion image
先选择流类型为TCP
notion image
发现客户端发送syn服务端返回syn+ack,但客户端不再发送ack,导致资源消耗。

TCP SYN flooding安全防御

  • 丢弃第一个SYN数据包 -> 用户体验差
  • 反向探测 -> 向源地址方向发送探测包,确定源地址合法性
  • 代理模式 -> 防火墙代理 -> 即先与防火墙建立tcp连接

UDP 泛洪

非连接状态的协议,简洁协议,控制选项少,不可靠,传输速率高,适合大文件传输
UDP协议关键点
  • 源端口
  • 目的端口
  • UDP报文长度
  • 检验码
notion image

UDP flooding 安全测试

原理: 测试人员向目标发送大量巨大的UDP数据包,就会使网络资源被耗尽
  • a: 伪造的 ip -s: 53端口
notion image

UDP flooding 安全防御

防火墙
  • 限流: 将链路中的UDP报文控制在合理的范围,当超过指定值,则丢弃UDP报文
  • 指纹学习: 先学习,在匹配

网络取证简析

wireshark 恢复传输文件

无论使用何种应用层协议,对于传输层来说都是TCP或UDP协议,来恢复一下wireshark官网提供的文件 https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=view&target=http_with_jpegs.cap.gzhttp_with_jpegs.cap.gz
首先在显示过滤器中筛选具有jpeg内容的数据包: http contains "jpeg"
notion image
选第一个,追踪tcp流
notion image
notion image
最后点一下 Save as... 保存为 xxx.bin 就好,然后用16进制编辑器打开,JPEG的文件开始字节为 FF D8,文件结束字节为 FF D9
notion image
然后把其余没用的都删除掉,这里因为结束符号就是最后了,因此把上图 FF D8 之前的都删除掉就好了。
notion image
notion image
成功恢复。

取证实践案例

1.寻找Ann的通信好友名称

根据题目名称提示 aim 通信,wireshark 自带 aim 解密
notion image
这三项依次改为
notion image
然后查看数据包,发现通信好友名称是 Sec558user1
notion image

2. 通信过程中的第一条信息内容是什么

notion image
 

3. Ann 通信过程中传输的文件名字

显示过滤器输入 data,然后追踪tcp流
notion image
文件名字
notion image
 

4. 还原Ann发送文件并得出文件幻数(magic number)

文件幻数介绍: https://baike.baidu.com/item/magic%20number 说直白点就是以 zip 之父的首字母PK来命名,对应的16进制是50 4B 03 04 50(P)4B(K)03(文本结束)04(传输结束),组合起来就是压缩包的标识开头。 那为啥word文档的文件开头是这个,把word文档后缀改为.zip试试,这是微软2006年公布的OOXML规范。
显示过滤器输入 data,然后追踪tcp流
notion image
另存为,xxx.bin,用16进制编辑器打开xxx.bin
notion image
notion image
notion image

5. 查看文件md5值

notion image
 

应用层网络安全

暴力破解分析

分析使用 medusa 破解 ssh 登录
notion image
 

后门分析

某些软件具有其他的目的 -> 设置隐藏后门 这里针对vsftpd 2.3.4 后门 帐号密码不要紧,有 :) 笑脸就行,因此这个后门也被称为笑脸后门,2333
notion image
  • 流量分析
  • Wireshark
  • MISC
  • 2021HFCTF Web Writeup=======总结 & 手动分割线=======
    • GitTalk
    目录