wireshark&tcpdump 抓包分析

解释

Tcpdump是基于Unix系统的命令行式的数据包嗅探工具

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。

Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工作环境中的Linux一般只有字符界面,且一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析

操作

在linux 中开启tcpdump监听,写入日志到目标文件夹

sudo tcpdump host www.baidu.com -w /tmp/tcpdump.log

开始监听

在另外一个窗口使用curl 访问目标网址

ctrl+c 结束tcpdump 监听,共监听到17个包

使用wireshark打开tcpdump日志

以下三个数据包就是著名的TCP三次握手的数据包,其中58000是客户端的TCP端口,http的默认端口是80,如果tcpdump在/etc/services中发现端口对应的服务名称,那么会自动的转为名字,所以这里会显示为80。表示客户端的58000端口和服务器端的http端口进行TCP三次握手。

三次握手与四次挥手

 

 

第一次握手:

客户端给服务端发一个 SYN 报文,(首部的同步位SYN=1初始序号seq=x ,x=0),(SYN=1的报文段不能携带数据)但要消耗掉一个序号,此时TCP客户进程进入SYN-SENT(同步已发送)状态

第二次握手

服务器收到客户端的 SYN 报文之后,由SYN=1得知客户端要求连接。想客户端发送SYN=1,ACK=1 的tcp报文。

在确认报文段中 SYN=1,ACK=1,确认号 ACK= x+1,初始序号 seq=y (y初始化为=0)

第三次握手

客户端收到ack=x+1的请求,检查标志位无误后,再次发送确认包:ACK=1 ,ack=y+1(y=0),seq=x+1

 

 

wireshark使用

如果你想要wireshark中出现本地接口的话,就需要下载一个winpcap的软件。

如果电脑是win10的话,可以去下面的网址下载winpcap。
Windows10的WinPcap下载

 

 

wireshark实用的过滤器表达式


#抓HTTP的请求
tcp.port == 80 || udp.port == 80
#抓某出站请求路径
http.host == "domain.com" and http.request.uri contains "/url/path"
#只抓请求返回
ip.src_host contains "realdomain.com" and http

过滤地址

 

posted @ 2022-02-25 16:41  成子吃橙子  阅读(332)  评论(0编辑  收藏  举报