Wireshark抓取本地Tcp包(任何数据包)

本文介绍如何使用npcap解决Wireshark无法直接抓取本地接口(loopback)数据包的问题。通过虚拟网卡的方式,实现了对本地所有数据包的捕获,包括HTTP和TCP等协议的数据分析。

没有任何一个程序员在做项目的时候不会遇到网络编程的问题,要解决这些问题除了对各种网络协议深入了解之外,还需要掌握各种网络分析工具的用法,不用多说wireshark绝对是这方面的翘楚,可惜的是,wireshark不能对本地接口(loopback,或者127.0.0.1)进行直接抓包。

wireshark的工作原理

这里面的原理其实很简单,wireshark可以通过操作系统来访问所有的网络adapter,通俗点,就是网卡,并把网卡上的traffic截获,拷贝,用于数据包的分析。所以wireshark的使用前提是:你希望截获的数据包是通过网卡收发的!而loopback接口上的数据因为其特殊性(本地还回),是在操作系统内部转发的,不会通过网卡,类似于进程间通信。因此wireshark从工作原理上就不能够获得loopback上的traffice。

解决方案

百度上有不少解决方案,但很多关键字就是:RawCap或windows没法截取loopback数据包。其实这些方案没有从本质上解决问题。现在一个比较好的解决方案是用npcap,这个工具是北大的一个博士,叫做Luo yang,开发的。源码放在https://github.com/nmap/npcap,还在持续维护中。这个工具的原理大概就是虚拟了一个网卡让操作系统把loopback的数据镜像一份到npcap adapter,然后wireshark可以通过截取这个npcap adatper上的数据包来获得对本地数据包进行分析的一个途径。大家不要小看了这个东西,在npcap adatper上,wireshark抓到的可是本地的所有数据包,这个不得了,用处大了,特别是对于需要深入了解各种库的工作原理的。它可以抓取各种:

  • http包,用于web接口的分析(Java程序员各种用soap接口,rest接口的,如果不了解http协议,不知道抓包来看,就没法理解各种mediaType对应的http entity,就没法不受限的使用各种web接口来完成各种场景的开发)
  • tcp包,用于各种基于tcp的通信接口/协议的分析(知道吗,这货能够抓各种ejb远程调用,虽然每个应用服务器的厂商在实现J2EE规范的时候,都有自己的底层通信协议,但是通过这货,你就可以看到具体是怎么通信的)

具体安装配置方法

废话不多说,后面还可能会在这个方面多写几篇文章,先把最基础的安装配置方法列个各位。(这里只介绍windows下面的用法)
首先,当然是先要安装npcap。上头我已经给过一个github的地址了,那是源码。你可以在上面找每个release的安装包路径。这里再直接给一个:
https://github-cloud.s3.amazonaws.com/releases/35855357/bece22ea-9ab5-11e6-88ad-304fd50e2df0.exe?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20161031%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20161031T022347Z&X-Amz-Expires=300&X-Amz-Signature=10f67cbca359526bd638004a28e2a3d183a1d68ac755419083cc30676514e742&X-Amz-SignedHeaders=host&actor_id=8413239&response-content-disposition=attachment%3B%20filename%3Dnpcap-0.10-r12.exe&response-content-type=application%2Foctet-stream
先npcap安装:
这里写图片描述
这里写图片描述
安装完之后,你可以看到,在你的网络管理中心多了一块网卡(Npcap loopback Adapter):
这里写图片描述
打开你的wireshark:
你会发现,也多了一个可以监听的接口:
这里写图片描述
没错,通过这个东东你就可以直接截获本地的Http包了
来,跑一个试试:
这里写图片描述
看到这个127.0.0.1了吗?这可是货真价实的本地http包。
除了http包,之外,其他的tcp包也给你们瞅瞅:
这里写图片描述
看到了没,这是java的远程调用

注意事项

1, 这个工具是很好用,但是也有缺陷,如果你装了之后,突然有某一天发现:
这里写图片描述
你的wifi居然没法通过dhcp获得IP了,就是这个家伙搞的鬼。解决方案,目前是在device manger里面把它删了,重启电脑,我会在github上报一个Issue的。
2,另外,请把你的wireshark升级到比较新的版本,不要是1.9.xx以下的版本

<think>好的,用户现在想知道如何使用Wireshark抓取并分析登录相关的数据包。我之前已经回答过类似的问题,但需要结合用户提供的引用内容来给出更详细的步骤。首先,用户提到了导出文件、解析数据包以及使用CyberChef和ChatGPT的方法,可能需要将这些内容整合到分析登录请求的过程中。 首先,我需要确定用户的需求是抓取登录请求的数据包,比如HTTP登录、FTP认证或者其他协议。可能需要分步骤说明如何设置过滤器,如何捕获数据,以及如何识别登录相关的。 根据引用[1],Wireshark可以导出对象,这可能涉及到HTTP等协议中的文件,比如登录页面或POST请求。引用[2]提到用ChatGPT解析原始数据,这可能帮助用户理解捕获的登录数据。引用[4]中的RTMP抓包方法可能不相关,但筛选协议的部分可以参考。 接下来,用户可能需要知道如何设置捕获过滤器,比如针对特定端口(如HTTP的80或443,FTP的21等),或者使用显示过滤器如http.request.method == "POST"来找到登录请求。此外,导出HTTP对象可能帮助用户提取登录时提交的表单数据。 另外,引用[3]中的SMB流量处理可能不直接相关,但导出文件的方法可以类比到HTTP的导出,比如从POST请求中提取用户名和密码。 需要注意的是,用户可能需要识别加密流量(如HTTPS)的问题,这时候可能需要解释SSL/TLS解密的方法,或者说明在无法解密的情况下如何通过其他特征识别登录请求,比如Host头或URL路径。 还要考虑示例,比如抓取一个HTTP登录的过程,展示具体的步骤和过滤器。同时,提醒用户注意隐私和法律问题,确保有权捕获流量。 最后,结合引用[2],可以建议用户将捕获的数据包提交给ChatGPT进行进一步解析,帮助理解各个字段的含义,比如Cookie、Authorization头等。 总结步骤应该是:准备阶段选择网卡,开始捕获,触发登录操作,停止捕获,应用过滤器,分析数据包,导出相关对象或使用工具进一步解析。可能还需要提到使用Follow TCP Stream功能查看完整会话。 需要检查是否有遗漏的细节,比如如何保存捕获的数据,或者如何处理加密的登录请求。如果有必要,可能需要指导用户安装Wireshark的SSL密钥日志功能,但这对新手可能有些复杂,所以可能放在优化方法或注意事项中。</think>### 如何用 Wireshark 抓取并分析登录请求数据包 #### 一、操作步骤 1. **准备阶段** - 打开 Wireshark,选择需要监控的网卡(如 Wi-Fi 或以太网)[^1] - 设置捕获过滤器(例如 `tcp port 80 or tcp port 443` 过滤 HTTP/HTTPS 流量) 2. **开始捕获** ```bash # 启动捕获后立即进行登录操作(如网页/客户端登录) ``` 3. **停止捕获** - 完成登录操作后立即停止捕获,减少无关数据干扰 4. **筛选登录流量** - 输入显示过滤器: ```bash http.request.method == "POST" # 过滤 HTTP 登录请求 or tls.handshake.type == 1 # 过滤 HTTPS 握手请求 or ftp.request.command == "USER" # FTP 用户名请求[^3] ``` 5. **分析关键字段** - **HTTP 登录**:查看 `POST` 请求中的 `Form Item` 字段(含用户名/密码) - **HTTPS 登录**:需提前配置 SSL 密钥日志文件才能解密内容[^4] - **其他协议**:FTP 查看 `USER/PASS` 命令,SMB 查看 `Session Setup Request` #### 二、操作示例(以 HTTP 登录为例) 1. 使用过滤器 `http contains "login"` 定位登录页面 2. 右键选择 `Follow -> HTTP Stream` 查看完整会话 3. 在 `HTML Form URL Encoded` 中提取账号密码参数: ```json {"username": "test", "password": "123456"} ``` #### 三、高级技巧 1. **导出登录凭证**: - 通过 `File -> Export Objects -> HTTP` 可提取登录页面和提交的表单数据[^1] 2. **AI 辅助分析**: - 将抓包原始数据提交 ChatGPT,输入提示: ```python 请解析以下数据包中的登录认证过程,标注关键字段: [粘贴 hexdump 或过滤后的报文] ``` 可自动生成字段解析报告[^2]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值