杰瑞科技汇

Sniffer怎么用?图解教程步骤详解

第一部分:基础概念 - 什么是 Sniffer?

想象一下,邮递员在分发信件时,你有一个特殊的信箱,可以看到所有经过你信箱的信件封面(谁寄给谁),甚至可以打开信件查看内容(信里的具体内容),网络 Sniffer 就扮演了这个“特殊信箱”的角色。

  • 工作原理:网络设备(如交换机、路由器)在正常情况下,只会将目标地址是自己的数据包转发给对应的网卡,我们可以将网卡设置为一种特殊的模式——“混杂模式”(Promiscuous Mode),开启此模式后,网卡会接收并处理所有经过它的数据包,而不管这些数据包的目标地址是不是它自己。
  • 核心功能:捕获网络上传输的数据包,并将其解析成人类可读的格式,方便我们分析。

⚠️ 重要法律与道德警告: 未经授权对任何不属于你的网络进行嗅探是非法的,并且严重侵犯他人隐私,本教程仅用于学习和测试你自己的网络环境,请务必遵守法律法规和道德准则。


第二部分:工具准备 - 选择你的“嗅探器”

对于初学者和大多数场景来说,Wireshark 是不二之选,它功能强大、界面友好、跨平台(Windows, macOS, Linux),并且有详细的文档和庞大的社区支持。

下载与安装

  • 官网地址https://www.wireshark.org/
  • 安装步骤
    1. 访问官网,点击 "Download"。
    2. 选择适合你操作系统的版本(Windows 64-bit)。
    3. 下载安装包,双击运行。
    4. 关键一步:在安装过程中,确保勾选了 "Install Npcap in WinPcap Compatible Mode",这能确保 Wireshark 能与各种网络工具兼容,并允许你捕获来自其他电脑的数据包(在特定网络环境下)。

第三部分:实战操作 - 开始你的第一次抓包

我们将以在 Windows 上捕获自己电脑的网络访问为例进行图解。

步骤 1:启动 Wireshark 并选择网卡

  1. 打开 Wireshark,你会看到一个网卡列表。
  2. 选择正确的网卡:你需要选择正在用于上网的那个网卡,通常是 "Wi-Fi" 或 "以太网",不确定的话,可以断开一个网络再观察哪个网卡会消失。

步骤 2:开始捕获数据包

  1. 选中你的网卡后,点击工具栏上的蓝色鲨鱼鳍图标(开始捕获)。
  2. Wireshark 开始记录所有经过该网卡的数据包。

步骤 3:产生网络流量

为了让抓包有内容,你需要让你的电脑发送或接收一些网络数据,最简单的方法是:

  • 打开浏览器,访问一个网站,www.baidu.com
  • 或者,在命令提示符(CMD)中 ping www.baidu.com

步骤 4:停止捕获

访问网站后,点击工具栏上的红色方块图标(停止捕获)。

你应该能看到类似下图的界面,充满了各种数据包!


第四部分:数据分析 - 从数据包中读懂信息

捕获数据包只是第一步,如何看懂它们才是关键,Wireshark 的界面主要分为三个部分。

界面布局详解

  1. 列表区(The Packet List)

    • 作用:显示捕获到的所有数据包的摘要信息。
    • 关键字段
      • No.:数据包的序号。
      • Time:数据包捕获的时间戳。
      • Source:源 IP 地址或 MAC 地址。
      • Destination:目标 IP 地址或 MAC 地址。
      • Protocol:使用的协议,如 HTTP, DNS, TCP
      • Length:数据包长度。
      • Info:关于该数据包的简要描述,如 "GET /index.html"。
  2. 详情区(The Packet Details)

    • 作用:对选中的数据包进行分层解析。
    • 结构:数据包像洋葱一样,一层一层封装,从上到下依次是:
      • Frame (物理层):物理帧信息,如源/目标 MAC 地址、帧类型。
      • Ethernet II (数据链路层):更详细的以太网帧信息。
      • Internet Protocol Version 4 (网络层):IP 包信息,如源/目标 IP 地址、TTL、协议类型(TCP/UDP)。
      • Transmission Control Protocol (传输层):TCP/UDP 包信息,如源/目标端口号、序列号、确认号。
      • Hypertext Transfer Protocol (应用层):具体的应用层数据,HTTP 请求、DNS 查询内容。
    • 操作:点击左侧的 或 > 可以展开或折叠每一层,查看详细信息。
  3. 字节区(The Packet Bytes)

    • 作用:以原始十六进制(Hex)和 ASCII 码形式显示数据包内容。
    • 联动:当你点击详情区的某个字段时,字节区会高亮显示该字段对应的数据,这是理解数据包结构最直观的方式。

实战分析:访问百度.com

让我们回到我们刚才捕获的数据包,分析一下访问 www.baidu.com 的过程。

  1. 在列表区筛选:在顶部的显示过滤器中输入 http,然后按回车,这样列表里就只会显示 HTTP 协议的数据包,方便我们查找。

  2. 找到关键数据包:在过滤后的列表中,找到一个 ProtocolHTTPInfoGET / HTTP/1.1 的数据包,然后点击它。

  3. 查看详情区

    • 展开 Hypertext Transfer Protocol
    • 你会清晰地看到这是一个 GET 请求,请求的路径是 (根目录,即百度首页),HTTP 版本是 HTTP/1.1
    • 你还能看到 Host: www.baidu.com,这表明请求的目标主机是 www.baidu.com
  4. 查看响应:在列表中向下翻,找到一个 ProtocolHTTPInfoHTTP/1.1 200 OK 开头的数据包,这是百度服务器对你的 GET 请求的响应

    • 200 OK 表示请求成功。
    • 展开这个数据包的 Hypertext Transfer Protocol 部分,你可以看到 Content-Type: text/html,说明服务器返回的是 HTML 格式的网页内容。

第五部分:进阶技巧 - 显示过滤器

显示过滤器是 Wireshark 的灵魂,它能让你从海量数据中快速找到你需要的信息。

常用过滤器示例

过滤器表达式 作用说明
ip.addr == 192.168.1.100 只显示与 IP 地址 168.1.100 相关的数据包(包括源和目标)。
tcp.port == 80 只显示源或目标端口为 80 (HTTP) 的 TCP 数据包。
http 只显示 HTTP 协议的数据包。
dns 只显示 DNS 协议的数据包。
tcp.flags.syn == 1 只显示 TCP 握手过程中发送的 SYN 包(用于建立连接)。
tcp.flags.fin == 1 只显示 TCP 断开连接时发送的 FIN 包。
http.request.method == "GET" 只显示 HTTP GET 请求。
http.request.uri contains "/login" 只显示请求 URI 中包含 "/login" 的 HTTP 请求。

语法提示

  • (等于), (不等于), contains (包含), starts with (以...开始)。
  • 协议关键字(如 http, tcp, ip)本身就是有效的过滤器。
  • 使用 and, or, not 可以组合复杂的逻辑。

第六部分:高级应用 - ARP 欺骗嗅探(局域网嗅探)

默认情况下,在交换式局域网中,你的网卡只能收到发给自己的数据包,如果你想嗅探局域网内其他两台电脑(A 和 B)之间的通信,就需要使用 ARP 欺骗技术。

原理:通过欺骗 A,让 A 以为你的 MAC 地址是 B 的 MAC 地址;同时欺骗 B,让 B 以为你的 MAC 地址是 A 的 MAC 地址,这样,A 和 B 之间的所有数据都会经过你的电脑,你就可以抓取到它们的内容。

工具:Cain & Abel

这是一个功能强大的 Windows 安全工具集,内置了嗅探和 ARP 欺骗功能。

图解步骤

  1. 启动嗅探器

    • 打开 Cain & Abel。
    • 在左侧导航栏找到 "Sniffer" 并点击。
    • 点击工具栏上的绿色 "+" 号,扫描你的局域网,获取所有活跃主机的 IP 和 MAC 地址。
  2. 设置 ARP 欺骗

    • 在顶部的 "Sniffer" 标签页下,点击 "APR"。
    • 在下方的 "Victims" (受害者) 列表中,勾选你想要嗅探的两台主机(A 和 B)。
    • 点击工具栏上的黄色闪电图标,开始欺骗。
  3. 在 Wireshark 中抓包

    • A 和 B 之间的通信流量已经被“重定向”到你的电脑。
    • 打开 Wireshark,选择你的网卡,开始捕获。
    • 你将能看到 A 和 B 之间所有的数据包,即使这些数据包的目标地址不是你。

⚠️ 再次强调:此技术仅用于授权的网络安全测试、教学和研究,在未经授权的情况下使用是违法的。


总结与学习路径

  1. 入门:熟练掌握 Wireshark 的基本操作,能捕获并分析自己电脑的 HTTP、DNS 流量。
  2. 进阶:学习使用显示过滤器,能够快速定位特定协议或特定主机的数据包,尝试分析 TCP 三次握手和四次挥手的过程。
  3. 高级:了解 ARP 协议,理解 ARP 欺骗的原理,并在授权环境下进行实践。
  4. 专业:学习更复杂的协议,如 TLS/SSL 加密流量(需要 Master Secret)、FTP、SMTP 等,甚至尝试编写自己的 Lua 插件来扩展 Wireshark 的功能。

希望这份图文并茂的教程能帮助你顺利入门网络嗅探的世界!

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