贝博恩创新科技网

Kali与Wireshark联动如何抓包分析?

Kali Linux Wireshark 完整教程:从入门到实战

Wireshark 是网络协议分析领域的“瑞士军刀”,是网络安全专家、系统管理员和网络开发人员的必备工具,在 Kali Linux 中,它与 Metasploit、Nmap 等工具无缝集成,是进行网络侦察、漏洞利用和取证分析的核心组件。

Kali与Wireshark联动如何抓包分析?-图1
(图片来源网络,侵删)

第一部分:安装与准备

安装 Wireshark

Kali Linux 通常默认安装了 Wireshark,如果你的系统没有安装,可以通过以下命令轻松安装:

# 更新软件包列表
sudo apt update
# 安装 Wireshark 和命令行工具 tshark
sudo apt install wireshark tshark -y

安装过程中,系统会提示你将 wiresharktshark 添加到 wireshark 组。请选择“是”,这允许非 root 用户通过 wireshark 组来捕获数据包,而无需每次都使用 sudo

配置用户权限

安装完成后,你需要将你的普通用户添加到 wireshark 组,以便能够直接启动 Wireshark 进行抓包。

# 将当前用户添加到 wireshark 组
sudo usermod -a -G wireshark $USER
# 重要:注销并重新登录,或使用以下命令使组变更生效
newgrp wireshark

你可以直接在终端输入 wireshark 来启动程序,而无需 sudo

Kali与Wireshark联动如何抓包分析?-图2
(图片来源网络,侵删)

启动 Wireshark

在终端输入:

wireshark

或者从 Kali 的应用程序菜单中找到并启动它。

启动后,你会看到一个主界面,显示所有网络接口的实时流量统计。


第二部分:核心概念与界面

Wireshark 的界面主要由四个部分组成:

Kali与Wireshark联动如何抓包分析?-图3
(图片来源网络,侵删)
  1. 工具栏: 提供常用功能,如开始/停止捕获、重新加载、配置选项等。
  2. 过滤器栏: 这是你的“魔法棒”,用于在海量数据中快速定位你关心的流量。
  3. 数据包列表: 显示捕获到的所有数据包的概览,包括时间戳、源地址、目标地址、协议和协议信息。
  4. 数据包详情: 以树状结构展开选中数据包的各个协议层,让你看到每一层的详细信息。
  5. 数据包字节: 以十六进制(Hex)和 ASCII 码形式显示数据包的原始内容。

第三部分:捕获数据包

选择接口

在 Wireshark 启动后,首先要选择正确的网络接口进行监听。

  • eth0ens33 是你的有线网卡。
  • wlan0 是你的无线网卡。
  • lo 是本地回环接口(用于分析本地程序间的通信)。

在数据包列表上方的接口列表中选择你想要监听的接口。

开始与停止捕获

  • 开始捕获: 点击工具栏上的蓝色鲨鱼鳍图标。
  • 停止捕获: 点击红色的方块图标。

使用捕获过滤器

在开始捕获前,可以使用捕获过滤器 来减少不必要的数据包,避免磁盘空间被迅速占满,并提高效率,捕获过滤器的语法基于 libpcap/WinPcap,与 tcpdump 命令的语法相同。

常用捕获过滤器示例:

  • 只捕获与特定 IP 地址相关的流量:
    host 192.168.1.100
  • 只捕获特定端口的流量(只看 HTTP 流量):
    port 80
  • 只捕获 TCP 流量:
    tcp
  • 只捕获来自特定网段的流量:
    net 192.168.1.0/24
  • 组合使用(捕获来自 168.1.100 的 TCP 流量,但端口不是 22):
    host 192.168.1.100 and tcp and not port 22

注意: 捕获过滤器在数据包被捕获到之前就进行过滤,效率极高,而显示过滤器(后面会讲)是在捕获后对已抓取的数据包进行筛选。


第四部分:分析与解密

这是 Wireshark 最强大的部分,我们使用显示过滤器来分析已捕获的数据。

基础显示过滤器

显示过滤器的语法更丰富,支持更多函数和逻辑。

常用显示过滤器示例:

  • 按协议过滤:
    • http: 只显示 HTTP 流量。
    • dns: 只显示 DNS 查询/响应。
    • tcp: 只显示 TCP 流量。
    • arp: 只显示 ARP 请求/响应。
  • 按 IP/端口过滤:
    • ip.addr == 192.168.1.1: 显示源或目标 IP 为 168.1.1 的所有数据包。
    • tcp.port == 443: 显示源或目标端口为 443 (HTTPS) 的所有数据包。
    • http.request.uri contains "/login": 显示所有包含 /login 路径的 HTTP 请求。
  • 过滤:
    • http contains "password": 在 HTTP 数据包中搜索包含 "password" 字符串的包。
    • tcp.payload matches "^[A-Za-z0-9+/]{4}={0,2}$": 一个更复杂的例子,用于查找 Base64 编码的负载。
  • 逻辑运算符:
    • tcp and host 192.168.1.100: 同时满足 TCP 协议和主机 IP。
    • http or dns: 显示 HTTP 或 DNS 流量。
    • not icmp: 排除所有 ICMP 流量。

实战场景一:分析 HTTP 流量

  1. 启动 Wireshark 并捕获你的网络流量。
  2. 在浏览器中访问一个网站,http://httpbin.org/get?test=123
  3. 在 Wireshark 的过滤器栏输入 http 并回车。
  4. 在数据包列表中,找到一个 HTTP 协议的数据包,点击它。
  5. 在数据包详情中,展开 Hypertext Transfer Protocol 部分。
  6. 你可以看到完整的 HTTP 请求头,包括 User-Agent, Accept, Host 等。
  7. 找到对应的 HTTP/1.1 200 OK 响应包,展开后可以看到服务器返回的响应头和 HTML 内容。

实战场景二:解密 HTTPS 流量

默认情况下,Wireshark 无法解密 HTTPS 流量,因为它使用 SSL/TLS 加密,但如果你拥有服务器的私钥,就可以进行解密。

步骤:

  1. 获取私钥: 你需要从 Web 服务器(如 Nginx, Apache)获取其 SSL/TLS 私钥文件(server.key)。
  2. 配置 Wireshark:
    • 在 Wireshark 中,进入 编辑 -> 首选项
    • 导航到 protocols -> SSL
    • (Pre)-Master-Secret log filename 字段中,输入你的私钥文件的完整路径。
    • 点击 OK
  3. 捕获流量: 重新开始捕获流量,并访问你的 HTTPS 网站。
  4. 分析: 在 Wireshark 中应用 http 过滤器,你将能够看到解密后的 HTTP 请求和响应内容,包括明文数据、Cookie 等。

警告: 此方法仅适用于你拥有合法授权的服务器,在渗透测试中,这通常用于内部测试。


第五部分:Kali Linux 中的高级应用

作为渗透测试平台,Wireshark 在 Kali 中的真正威力体现在与其他工具的结合上。

与 Nmap 结合

Nmap 用于主机发现和端口扫描,Wireshark 用于分析扫描过程本身或扫描后的网络活动。

  • 分析 Nmap 扫描流量:
    1. 在 Wireshark 中开始捕获,过滤器设为 icmp or arp
    2. 在另一个终端运行 nmap -sn 192.168.1.0/24 (主机发现)。
    3. 观察 Wireshark 中的 ARP 请求/回复和 ICMP 包,你会看到 Nmap 是如何与网络中的主机通信的。
  • 分析端口扫描响应:
    1. 在 Wireshark 中捕获,过滤器设为 tcp port 22 (假设你扫描 SSH 端口)。
    2. 运行 nmap -sV -p 22 192.168.1.100
    3. 你会看到 Nmap 发送的 SYN 包,以及服务器返回的 SYN/ACK (开放) 或 RST/ACK (关闭) 包。

与 Metasploit 结合

当你在使用 Metasploit 进行攻击时,Wireshark 是验证攻击载荷是否成功发送、分析通信协议的绝佳工具。

  • 场景:分析 Meterpreter 通信
    1. 启动 Wireshark,捕获目标主机的网络流量。
    2. 在 Metasploit 中,使用 payload/meterpreter/tcp 攻击目标。
    3. 一旦会话建立,在 Wireshark 中过滤 tcp.port == <meterpreter 通信端口>
    4. 你会看到 Meterpreter 流量,通常是经过编码的,虽然无法直接读懂内容,但可以确认连接的建立、数据包的往返频率,这对于分析后门行为非常有帮助。

与 Aircrack-ng 结合(无线分析)

Wireshark 是分析无线网络流量的利器,常与 Aircrack-ng 配合使用。

  1. 捕获数据包: 使用 Aircrack-ng 套件中的 airodump-ng 来监听无线网络并捕获握手包。
    airodump-ng --bssid <目标AP的MAC> --write capture wlan0mon
  2. 分析握手包: airodump-ng 会将捕获的包保存为 .cap 文件,你可以直接在 Wireshark 中打开这个 .cap 文件。
  3. 定位握手包: 在 Wireshark 中,应用过滤器 eapol,EAPOL 握手包是 WPA/WPA2 加密的关键,如果你在数据包列表中看到了 4 个 EAPOL 包,那么你就成功捕获了完整的握手包,可以用于后续的离线破解。

第六部分:保存与导出数据

  • 保存捕获文件: 点击 文件 -> 另存为...,你可以将捕获的数据保存为 .pcap.pcapng 格式。.pcapng 是较新的格式,支持更多元数据,推荐使用。
  • 导出对象: 对于 HTTP 等协议,Wireshark 可以轻松提取出传输的文件。
    • 在过滤器中输入 http
    • 在数据包列表中,右键点击一个包含文件数据的包(如响应包)。
    • 选择 导出 -> HTTP 对象...
    • 在弹出的窗口中,你可以看到所有通过 HTTP 传输的文件(如图片、JS、CSS),选择你想要的并保存。

第七部分:注意事项与最佳实践

  1. 合法性: 未经授权的抓包是非法的。 请务必在获得明确授权的网络(如你自己的实验室、客户授权的测试环境)中使用 Wireshark。
  2. 性能: 捕获大量数据会消耗大量 CPU 和磁盘 I/O,使用捕获过滤器可以极大地减轻系统负担。
  3. 隐私: Wireshark 会捕获所有经过接口的明文数据,包括密码、个人信息等,请妥善保管你的捕获文件,不要随意分享。
  4. 学习资源:
    • Wireshark 官方文档: https://www.wireshark.org/docs/
    • Chaosreader: 一个强大的 Wireshark 输出分析工具,可以生成 HTML 格式的分析报告。
    • Google: 遇到任何协议或数据包看不懂的情况,直接搜索 "Wireshark [协议名] filter" 或 "what is [协议 name] packet"。

在 Kali Linux 中,Wireshark 不仅仅是一个简单的抓包工具,它是网络世界的“显微镜”和“X光机”,通过本教程,你已经掌握了从安装配置到高级分析的核心技能,继续练习,尝试分析不同的协议(如 FTP, SMTP, DNS),结合 Kali 的其他工具进行渗透测试和取证分析,你将真正体会到网络安全的魅力和深度。

分享:
扫描分享到社交APP
上一篇
下一篇