tcpdump wireshark 网络抓包

转自:https://www.cnblogs.com/daofaziran/p/18412311

网络协议及抓包

 

1. TCP/UDP 区别

1.1 概述与总结 ⭐⭐⭐⭐⭐

4层协议

概述

TCP

传输控制协议: 基于3次握手四次挥手,可靠连接.

UDP

用户数据报协议: 不可靠连接.

TCP 与 UDP区别 ⭐ ⭐ ⭐ ⭐ ⭐

传输控制协议(TCP

数据报协议(UDP)

面向连接(3次握手4次挥手,建立,断开连接

无连接

可靠传输

不可靠传输

流控(检查数据是否丢失,丢失重新发送)

尽力而为,尽力传递

使用TCP应用:WEB浏览器;电子邮件;文件传输程序

使用UDP的应用:域名系统(DNS);视频流;IP语音(VoIP)

1.2 TCP数据包结构

1.3 UDP数据包结构

1.4 UDP演示-了解

连接测试udp端口请使用nc命令. telnet仅仅连接tcp端口.

 

#2台 linux
都要安装nc命令 .
#1台: 创建 udp 12306端口
[root@Kylin-V10-sp3 ~]# nc -ul 12306

# 另外开个窗口查看12306端口
[root@Kylin-V10-sp3 ~]# ss -lntup | grep 12306
udp     UNCONN   0        0                0.0.0.0:12306          0.0.0.0:*      users:(("nc",pid=2123,fd=4))                                                   
udp     UNCONN   0        0                   [::]:12306             [::]:*      users:(("nc",pid=2123,fd=3))                                                   
[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# 

#另一台: 连接 udp 12306端口,发消息如hello
[root@ubuntu2204 ~]# nc -u 10.0.0.36 12306
hello

wireshark虚拟机选VMnet8

 

wireshark 过滤规则udp.port == 12306

2. 常见网络协议

  • DNS 域名解析服务/协议: 域名--->ip地址 ⭐ ⭐ ⭐ ⭐ ⭐
  • ARP
  • ICMP(ping)
  • HTTP/HTTPS(第2阶段)

2.1 DNS

  • 域名: baidu.com jd.com taobao.com 
  • DNS 域名解析服务/协议: 域名--->ip地址 ⭐ ⭐ ⭐ ⭐ ⭐
  • 公共DNS服务器地址:223.5.5.5 , 114.114.114.114 网卡配置文件里面写的.
  • 目标:
    • 域名结构
    • 给已有的域名配置DNS解析. 如 qq.com--->ip
    • DNS解析原理(域名-->ip)
2.1.1 域名结构

域名结构

域名: 网站名字,网址

www.aliyun.com

jd.com

taobao.com

 

2.1.2 如何配置域名解析

购买域名:

 https://wanwang.aliyun.com/newdomain/1yuan?_v_=47edc66742fe36fc0a839ea5700b8cd5

流程

说明

购买域名

xxx.xxx.cn

云服务器

xxx.xxx.xxx.xxx(ip)

备案(域名-->云服务器)

 

如果不备案,dns解析可以使用. http/https访问提示需要备案.云服务器不在大陆.

2.1.3 记录类型
2.1.4 网站备案流程
2.1.5 DNS解析详细流程⭐⭐⭐⭐⭐

域名解析流程: 域名--过程?-->ip地址

  1. 客户端发起查询‌:当用户在浏览器中输入一个域名(如www.example.com)并尝试访问时,浏览器首先会检查本地缓存中是否已存在该域名的IP地址。如果不存在,浏览器会向本地DNS服务器发起查询请求。

  2. 本地DNS服务器查询‌:本地DNS服务器收到查询请求后,会首先查看自身缓存中是否存在已有结果。如果缓存中有记录,直接返回给客户端浏览器;如果没有,则代替客户端向根服务器发起请求。

  3. 全球递归查询‌:本地DNS服务器向根域名服务器发起请求。如果根域名服务器不能给出最终结果,就会告知本地DNS服务器下一步向哪个顶级域名服务器发起查询。本地DNS服务器再向顶级域名服务器发起请求,顶级服务器不能直接解析出IP地址,就会告知本地DNS服务器下一级权威域名服务器的地址。

  4. 返回解析结果‌:当找到能够解析出IP地址的权威服务器后,权威服务器会将IP地址返回给本地DNS服务器,本地DNS服务器再将结果返回给客户端。客户端获得IP地址后,即可与对应的主机建立连接。

  5. 缓存更新‌:本地DNS服务器会将查询到的IP地址缓存一段时间,以便后续查询能够更快地得到响应。

此外,DNS解析的过程还涉及到浏览器的缓存检查、操作系统的缓存检查以及hosts文件的解析等步骤,这些步骤在客户端发起查询之前进行,以确保能够快速响应用户的访问请求‌

2.1.6 DNS解析的命令

通过命令查看DNS解析详细流程

DNS缓存
2.1.7   DNS故障
  • Linux无法上网.
  • 通过域名访问: ping域名 dig解析域名 报错. yum安装软件失败
  • ping 公网ip可以访问的.

 

  • 此时需要检测与配置下DNS(网卡配置文件中.)
#排查 是否DNS有问题
1. ping 域名
2. ping 公网ip

[root@Kylin-V10-sp3 ~]# ping baidu.com
ping: baidu.com: Name or service not known

[root@Kylin-V10-sp3 ~]# 
[root@Kylin-V10-sp3 ~]# ping 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=18.4 ms
64 bytes from 223.5.5.5: icmp_seq=2 ttl=128 time=20.4 ms
64 bytes from 223.5.5.5: icmp_seq=3 ttl=128 time=18.8 ms
64 bytes from 223.5.5.5: icmp_seq=4 ttl=128 time=19.2 ms
64 bytes from 223.5.5.5: icmp_seq=5 ttl=128 time=18.8 ms
^C
--- 223.5.5.5 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 18.442/19.121/20.364/0.665 ms
[root@Kylin-V10-sp3 ~]# ^C
[root@Kylin-V10-sp3 ~]# 
2.1.8 DNS小结
  • 理解什么是DNS.
  • 理解域名:根域名,顶级域,二级域,三级域.
  • 核心掌握DNS解析流程,配合dig +trace 查看.
  • DNS解析故障.

2.2 ARP协议

  • ARP: 地址解析协议
  • DNS协议:域名---->ip
  • ARP协议: IP ---> MAC地址
  • ARP地址解析协议: ip地址转换为网卡物理地址(MAC地址)

⚠ ARP协议是3层协议,工作在2层.

解析流程简单: 一问(广播)一答(单播)

10.0.0.200---> 10.0.0.2

  1. 发出arp请求,发送广播找人 谁知道10.0.0.2的mac地址,请告诉10.0.0.200
  2. 单播:所有局域网的设备都收到广播,只有10.0.0.2这个机器进行响应(回复): 我是10.0.0.2 我的mac地址是xx:xx:xxxxxxxx
  3. 缓存mac地址.

抓包查看过程

#10.0.0.200(都在这台机器操作)
arp -n #查看当前系统arp缓存表
ping 10.0.0.201
arp -d 10.0.0.201 #删除arp缓存
#10.0.0.201

 

注意: arp缓存是双刃剑,也会造成病毒危害系统.

预防:记录每个主机的mac地址. ip与mac地址绑定.

解决:抓包查看找出异常mac地址.

2.3 ICMP协议

Internet控制报文协议

ping 使用的就是icmp协议

2.3.1 禁ping 
#内核参数:
临时禁止ping,重启后恢复
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#准许ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#永久生效
echo 'net.ipv4.icmp_echo_ignore_all =1 ' >>/etc/sysctl.conf
sysctl -p #生效

2.4 网络协议小结

协议

名字

特点

DNS

域名解析系统/服务

域名--->ip地址

ARP

地址解析协议

IP地址---->mac地址

ICMP

因特网控制报文协议

ping背后使用的协议

DHCP原理

自动分配IP地址

可以扩展研究下.

HTTP/HTTPS

超文本传输协议/加密

 

第2个阶段 网站服务讲解

 

3. 用户访问www.baidu.com 整个过程 ⭐⭐⭐⭐⭐

适用于打开app,打开网站,打开小程序...

3.1 过程图解

3.2 过程详解

# 大致步骤:

1.DNS解析,xxx.cn解析得到ip
2.tcp3次握手:通过ip+端口,与服务器建立连接
3.用户-->服务器:发出请求(http),请求报文;
4.网站处理用户的请求;
5.服务器-->用户:发出响应(http),响应报文;
6. tcp4次挥手:断开连接

# 细致步骤:
1.DNS解析,xxx.cn解析得到ip
    1.1 访问本地dns缓存,hosts文件
    1.2 访问本地DNS服务器
    1.3 访问根域名解析服务器,得到顶级域
    1.4 访问顶级域DNS,得到二级域
    1.5 访问二级域DNS,得到三级域名的ip
    1.6 返回本地DNS,缓存,再给用户
2.tcp3次握手:通过ip+端口,与服务器建立连接
    2.1 客户端-->服务端:发出SYN建立连接请求,seq随机数
    2.2 服务端-->客户端:发出ACK确认,SYN建立连接,ack=seq+1 ,seq随机
    2.3 客户端-->服务端:发出ACK确认,ack=seq+1,seq
    2.4 连接建立
3.用户-->服务器:发出请求(http),请求报文;
4.网站处理用户的请求;
5.服务器-->用户:发出响应(http),响应报文;
6. tcp4次挥手:断开连接
    6.1 服务端-->客户端:断开连接请求FIN,ack,seq
    6.2 客户端-->服务端:发出ACK确认,ack,seq
    6.3 客户端-->服务端:发出FIN断开连接请求,ack,seq
    6.4 服务端-->客户端:发出ACK确认,ack,seq
    6.5 连接断开

3.3 抓包详解

https://www.processon.com/view/link/62466f935653bb072bd2771d

3.3.1 dns解析

3.3.2 三次握手

3.3.3 http请求

3.3.4 http响应

3.3.5 四次挥手

4. 抓包 ⭐⭐⭐⭐⭐

4.1 概述

目标:

  • 抓出指定协议的数据包.
  • 抓出指定端口.
  • 抓出指定ip.

抓包工具

 

特点.

wireshark

 

可视化抓包工具. win/mac/linux 

fiddler

 

代理,所有流量走fiddler,然后出去.

科来

 

 

tcpdump

 

linux自带,yum安装. 抓4层 

burpsuite

 

抓包,修改数据包.安全去使用

4.2 wireshark过滤器规则

4.2.1 抓出指定协议 ⭐⭐⭐⭐⭐
icmp #ping 数据包
tcp
udp
http
arp
过滤https数据包: tls

icmp协议

# 虚拟机 ping ip 如:
[root@Kylin-V10-sp3 ~]# ping 39.106.44.157
PING 39.106.44.157 (39.106.44.157) 56(84) bytes of data.
64 bytes from 39.106.44.157: icmp_seq=1 ttl=128 time=7.35 ms
64 bytes from 39.106.44.157: icmp_seq=2 ttl=128 time=7.61 ms
64 bytes from 39.106.44.157: icmp_seq=3 ttl=128 time=7.37 ms
^C
--- 39.106.44.157 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 7.352/7.443/7.614/0.120 ms
[root@Kylin-V10-sp3 ~]# ^C
[root@Kylin-V10-sp3 ~]# 

dns协议

# 虚拟机 dig
[root@Kylin-V10-sp3 ~]# dig baidu.com

; <<>> DiG 9.11.21-9.11.21-18.ky10 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22231
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;baidu.com.			IN	A

;; ANSWER SECTION:
baidu.com.		499	IN	A	39.156.66.10
baidu.com.		499	IN	A	110.242.68.66

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 三 9月 18 15:21:23 CST 2024
;; MSG SIZE  rcvd: 70

[root@Kylin-V10-sp3 ~]# 

4.2.2 抓住指定端口⭐⭐⭐⭐⭐

port 端口

tcp/udp

tcp.port

udp.port

tcp.port == 80 #过滤出源端口或目标端口是80的数据包.
如果是udp数据包
udp.port == 53
#src source 源
tcp.srcport == 80 #过滤出源端口80

#dst destitation 目标
tcp.dstport == 80 #过滤目标端口80
#src source 源
udp.srcport == 53
#dst destitation 目标
udp.dstport == 53
4.2.3 抓出指定ip的数据包 ⭐⭐⭐⭐⭐
#过滤源ip或目标ip为百度的数据包
ping baidu.com
ip.addr == 39.156.66.10 #过滤出源ip或目标ip是 10.0.0.200 数据包
#ip.src表示源ip
ip.src == 10.0.0.200 #过滤出源ip10.0.0.200 数据包
#ip.dst表示目标ip
ip.dst == 10.0.0.200 #过滤出目标ip10.0.0.200 数据包
4.2.4 不固定内容的过滤-比较大小
'''
过滤出端口小于等于1024的数据包.
tcp.dstport <= 1024
等于 ==
小于等于 <=
小于 <
大于等于 >=1
大于 >
不等于 !=
'''
4.2.5 与或非 ⭐⭐
#过滤端口号大于等于20 小于等于1024
tcp.port >=20 && tcp.port <=1024
tcp.port >=20 and tcp.port <=1024
#组合 过滤出 端口是80 并且 ip地址是虚拟机ip
or #或者 ||
! #取反
tcp.port == 80 && ip.addr == 10.0.0.200 #并且
tcp.port == 80 || ip.addr == 10.0.0.200 #或者
#过滤出udp协议 53端口数据表
udp && udp.port == 53
测试语句: dig www.baidu.com
#过滤源IP是虚拟机(10.0.0.200) 并且目标端口是80的数据包
测试语句:curl www.baidu.com
ip.addr == 10.0.0.200 && tcp.dstport == 80

4.3 tcpdump 过滤

# 安装:yum install -y tcpdump

tcpdump linux抓包并保存.通过wireshark查看与分析

过滤条件

wireshark

tcpdump

抓出指定协议

icmp/tcp/http

icmp/tcp/udp(不支持7层协议) 需要通过指定端口法

抓住指定端口

tcp.port == 80

port 80

过滤出源端口

tcp.srcport ==80

[tcp或udp] src port 80 #tcp或udp

过滤目标端口

tcp.dstport ==80

[tcp或udp] dst port 80

抓出指定ip的数据包

ip.addr ==10.0.0.200

host 10.0.0.200

过滤出源ip

ip.src ==10.0.0.200

 

src host 10.0.0.200

过滤出目标ip

ip.dst ==10.0.0.200

 

dst host 10.0.0.200

tcpdump抓包案例

#指定网卡 如果有多块网卡的时候需要指定。
[root@Kylin-V10-sp3 ~]# tcpdump -i ens33
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
15:37:17.804285 IP Kylin-V10-sp3.ssh > 10.0.0.1.54674: Flags [P.], seq 2281664028:2281664240, ack 1923919184, win 501, length 212
15:37:17.804789 IP Kylin-V10-sp3.50330 > dns.google.domain: 28584+ PTR? 1.0.0.10.in-addr.arpa. (39)
15:37:17.805072 IP 10.0.0.1.54674 > Kylin-V10-sp3.ssh: Flags [.], ack 212, win 4106, length 0
15:37:17.849287 IP dns.google.domain > Kylin-V10-sp3.50330: 28584 NXDomain 0/0/0 (39)

#过滤协议  
'''
tcpdump icmp
一台服务器ping另一台服务器 ,被ping的服务器收集数据
'''
[root@ubuntu2204 ~]# ping 10.0.0.36
PING 10.0.0.36 (10.0.0.36) 56(84) bytes of data.
64 bytes from 10.0.0.36: icmp_seq=1 ttl=64 time=0.828 ms
64 bytes from 10.0.0.36: icmp_seq=2 ttl=64 time=0.352 ms
64 bytes from 10.0.0.36: icmp_seq=3 ttl=64 time=0.553 ms

[root@Kylin-V10-sp3 ~]# tcpdump -nnn -vvv icmp
dropped privs to tcpdump
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
15:40:11.140528 IP (tos 0x0, ttl 64, id 47500, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.0.37 > 10.0.0.36: ICMP echo request, id 1, seq 1, length 64
15:40:11.140642 IP (tos 0x0, ttl 64, id 47827, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.0.36 > 10.0.0.37: ICMP echo reply, id 1, seq 1, length 64
15:40:12.224828 IP (tos 0x0, ttl 64, id 47682, offset 0, flags [DF], proto ICMP (1), length 84)
    10.0.0.37 > 10.0.0.36: ICMP echo request, id 1, seq 2, length 64
15:40:12.224862 IP (tos 0x0, ttl 64, id 48186, offset 0, flags [none], proto ICMP (1), length 84)
    10.0.0.36 > 10.0.0.37: ICMP echo reply, id 1, seq 2, length 64

#过滤指定端口号 80端口
'''
先访问服务 ,再收集数据
'''
[root@Kylin-V10-sp3 ~]# curl http://39.106.44.157

root@iZ2zei5cw2j6q770mgp5kvZ:~# tcpdump -nnn port 80
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
17:42:16.646024 IP 100.100.30.26.80 > 172.28.157.228.42796: Flags [P.], seq 1027664183:1027664193, ack 1573035204, win 12299, length 10: HTTP
17:42:16.648549 IP 172.28.157.228.42796 > 100.100.30.26.80: Flags [P.], seq 1:7, ack 10, win 5731, length 6: HTTP
17:42:16.686744 IP 100.100.30.26.80 > 172.28.157.228.42796: Flags [.], ack 7, win 12299, length 0



# 收集数据开始
17:42:21.859425 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [S], seq 1898797584, win 64240, options [mss 1452,nop,wscale 8,nop,nop,sackOK], length 0
17:42:21.859452 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [S.], seq 2053911007, ack 1898797585, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
17:42:21.868360 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [.], ack 1, win 516, length 0
17:42:21.868528 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [P.], seq 1:78, ack 1, win 516, length 77: HTTP: GET / HTTP/1.1
17:42:21.868546 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [.], ack 78, win 502, length 0
17:42:22.210726 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 1:2905, ack 78, win 502, length 2904: HTTP: HTTP/1.1 200 OK
17:42:22.210736 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 2905:5809, ack 78, win 502, length 2904: HTTP
17:42:22.210757 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 5809:8321, ack 78, win 502, length 2512: HTTP
17:42:22.211127 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 8321:11225, ack 78, win 502, length 2904: HTTP
17:42:22.211131 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 11225:14129, ack 78, win 502, length 2904: HTTP
17:42:22.217552 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [.], ack 2905, win 516, length 0
17:42:22.217567 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 14129:17033, ack 78, win 502, length 2904: HTTP
17:42:22.217572 IP 172.28.157.228.80 > 221.218.208.28.58295: Flags [P.], seq 17033:19937, ack 78, win 502, length 2904: HTTP
17:42:22.217578 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [.], ack 5809, win 516, length 0
17:42:22.241780 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [.], ack 84132, win 516, options [nop,nop,sack 1 {70757:72209}], length 0
17:42:22.243574 IP 221.218.208.28.58295 > 172.28.157.228.80: Flags [.], ack 84133, win 516, length 0
17:42:36.027787 IP 172.28.157.228.42796 > 100.100.30.26.80: Flags [P.], seq 7:1145, ack 10, win 5731, length 1138: HTTP
17:42:36.066020 IP 100.100.30.26.80 > 172.28.157.228.42796: Flags [.], ack 1145, win 12299, length 0
^C
87 packets captured
87 packets received by filter
0 packets dropped by kernel
^C^C^Croot@iZ2zei5cw2j6q770mgp5kvZ:~# 


[root@Kylin-V10-sp3 ~]# curl http://39.106.44.157
root@iZ2zei5cw2j6q770mgp5kvZ:~# tcpdump -nnn src port 80
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
17:46:57.199628 IP 100.100.30.26.80 > 172.28.157.228.42796: Flags [.], ack 1573043684, win 12299, options [nop,nop,sack 1 {4294966683:1}], length 0

17:47:03.115635 IP 100.100.18.120.80 > 172.28.157.228.58166: Flags [S.], seq 2915614551, ack 2526669515, win 29200, options [mss 1440,nop,nop,sackOK,nop,wscale 7], length 0
17:47:03.117962 IP 100.100.18.120.80 > 172.28.157.228.58166: Flags [.], ack 321, win 237, length 0
17:47:03.121967 IP 100.100.18.120.80 > 172.28.157.228.58166: Flags [P.], seq 1:332, ack 321, win 237, length 331: HTTP: HTTP/1.1 200 OK
17:47:03.121996 IP 100.100.18.120.80 > 172.28.157.228.58166: Flags [P.], seq 332:337, ack 321, win 237, length 5: HTTP
17:47:03.124314 IP 100.100.18.120.80 > 172.28.157.228.58166: Flags [F.], seq 337, ack 322, win 237, length 0

# 收集数据开始
17:47:11.774412 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [S.], seq 2034058171, ack 2583741922, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
17:47:11.781524 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], ack 78, win 502, length 0
17:47:12.155478 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 1:4357, ack 78, win 502, length 4356: HTTP: HTTP/1.1 200 OK
17:47:12.155489 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 4357:8321, ack 78, win 502, length 3964: HTTP
17:47:12.155768 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 8321:12677, ack 78, win 502, length 4356: HTTP
17:47:12.157020 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], seq 12677:14129, ack 78, win 502, length 1452: HTTP
17:47:12.162116 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 14129:19937, ack 78, win 502, length 5808: HTTP
17:47:12.162126 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 19937:25745, ack 78, win 502, length 5808: HTTP
17:47:12.162156 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 25745:31553, ack 78, win 502, length 5808: HTTP
17:47:12.162167 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 31553:40265, ack 78, win 502, length 8712: HTTP
17:47:12.162191 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 40265:43169, ack 78, win 502, length 2904: HTTP
17:47:12.168363 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 43169:53333, ack 78, win 502, length 10164: HTTP
17:47:12.168378 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 53333:64949, ack 78, win 502, length 11616: HTTP
17:47:12.169274 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 64949:78017, ack 78, win 502, length 13068: HTTP
17:47:12.170150 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [P.], seq 78017:84132, ack 78, win 502, length 6115: HTTP
17:47:12.177341 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], seq 64949:66401, ack 78, win 502, length 1452: HTTP
17:47:12.177353 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], seq 66401:67853, ack 78, win 502, length 1452: HTTP
17:47:12.178238 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], seq 67853:69305, ack 78, win 502, length 1452: HTTP
17:47:12.178244 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], seq 69305:70757, ack 78, win 502, length 1452: HTTP
17:47:12.178249 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [.], seq 70757:72209, ack 78, win 502, length 1452: HTTP
17:47:12.187360 IP 172.28.157.228.80 > 221.218.208.28.58702: Flags [F.], seq 84132, ack 79, win 502, length 0
^C
27 packets captured
27 packets received by filter
0 packets dropped by kernel
^Croot@iZ2zei5cw2j6q770mgp5kvZ:~#
tcpdump -nnn dst port 80


#抓住指定主机
tcpdump -nnn host 10.0.0.200

#抓取指定ip和端口的数据包
tcpdump -nnn src host 10.0.0.200 and port 80
tcpdump -nnn dst host 10.0.0.200 and port 80

#组合 过滤出 端口是80 并且 ip地址是10.0.0.200
and #并且
or #或者
! #取反

⚠ ❌ tcpdump无法过滤出7层的数据包 http 需要指定端口号过滤并保存,然后通过wireshark查看.

4.4 tcpdump + wireshark抓包流程⭐⭐

tcpdump linux抓包 并保存

下载

wireshark分析.

# tcpdump 抓包的时候 通过-w保存
#下载windows,通过wireshark分析即可.

root@iZ2zei5cw2j6q770mgp5kvZ:~/packages# tcpdump -vvv -nn -i eth0 port 80 or port 53  -w http-dns.pcap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C83 packets captured
83 packets received by filter
0 packets dropped by kernel
^C^C^Croot@iZ2zei5cw2j6q770mgp5kvZ:~/packages# 
root@iZ2zei5cw2j6q770mgp5kvZ:~/packages# 
root@iZ2zei5cw2j6q770mgp5kvZ:~/packages# ll
total 112
drwxr-xr-x 2 root    root      4096 Sep 18 17:58 ./
drwx------ 9 root    root      4096 Sep 18 17:57 ../
-rw-r--r-- 1 tcpdump tcpdump 104744 Sep 18 17:58 http-dns.pcap
root@iZ2zei5cw2j6q770mgp5kvZ:~/packages# 
root@iZ2zei5cw2j6q770mgp5kvZ:~/packages# sz http-dns.pcap

找到http-dns.pcap包直接打开如下图所示,可以对数据进行分析。(阿里云服务器抓包显示的是内网ip地址)

4.5 远程连接失败与抓包分析

远程连接云服务器失败了。

1. 关闭公有云安全组的远程连接端口规则

2. wireshark抓取本地网卡数据包 并过滤云服务器公网IP的数据表 ip.addr == ip

3. 发现失败

4. 去云服务器上tcpdump -vvv -nnn port 22抓包 发现没有任何数据包

5. 安全组放行22端口,重新2-4过程

4.6  抓包小结:

过滤条件

wireshark

tcpdump

抓出指定协议

icmp/tcp/http

icmp/tcp/udp

抓住指定端口

tcp.port == 80 或 

udp.port == 53

port 80 tcp或

udp port 53

过滤出源端口

tcp.srcport == 80

src port 80

过滤目标端口

tcp.dstport == 80

dst port 80

抓出指定ip的数据包

ip.addr == 10.0.0.200

host 10.0.0.200

过滤出源ip

ip.src == 10.0.0.200

src host 10.0.0.200

正则

字段(指标)字符串 ~或matches匹配正则,"正则"

&& 或 and

and

|| 或 or

 

or

!

!

选项

-w保存数据包

-i指定网卡

-vvv -nnn

4.6.1 抓包应用场景(排错)

4.6.2 抓包与网卡

 

 

posted @ 2025-05-13 16:46  郭大侠1  阅读(75)  评论(0)    收藏  举报