前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCPDump使用方法

TCPDump使用方法

作者头像
Al1ex
发布2023-11-02 08:28:42
4270
发布2023-11-02 08:28:42
举报
文章被收录于专栏:网络安全攻防网络安全攻防
基本介绍

TCPDump是一个网络抓包工具,它可以在命令行下运行来捕获和分析网络传输过程中的数据包,TCPDump可以在多种操作系统上运行,包括Linux、Unix、Mac OS X和Windows等平台

主要功能

TCPDump的主要功能包括以下几个方面

  • 捕获数据包:TCPDump可以捕获网络传输过程中的数据包,包括TCP、UDP、ICMP和IP等协议
  • 过滤数据包:TCPDump可以根据用户定义的规则,过滤出符合条件的数据包,以便进行分析和统计
  • 分析数据包:TCPDump可以对捕获的数据包进行分析,包括解析数据包的各个字段,如源地址、目的地址、协议类型、端口号等
  • 存储数据包:TCPDump可以将捕获的数据包保存到文件中,以便后续分析和处理
  • 监控网络流量:TCPDump可以实时监控网络流量,包括统计网络流量的总量、速率和流量分布等信息

使用TCPDump需要一定的命令行操作技能和网络知识,但是它提供了非常强大的网络分析和监控功能,对于网络管理和安全分析非常有用

使用方法

Step 1:打开终端或命令行窗口,使用root权限运行"tcpdump -h"命令可以查看tcpdump的详细使用方法

代码语言:javascript
复制
#参数说明
-i:指定网络接口,例如-i eth0表示监控eth0网卡的数据包。
-n:禁用DNS解析,直接显示IP地址。
-vvv:输出详细的调试信息。
-c:指定捕获数据包的数量,例如-c 100表示捕获100个数据包后停止。
-s:指定捕获数据包的长度,例如-s 100表示捕获100个字节的数据包。
-w:将捕获到的数据包保存到文件中,例如-w capture.pcap表示将数据包保存到capture.pcap文件中。
-r:读取保存的数据包文件,例如-r capture.pcap表示读取capture.pcap文件中的数据包。
-A:以ASCII码形式输出数据包的内容。
-X:以16进制和ASCII码混合形式输出数据包的内容。
-v:输出详细的调试信息。
-e:显示数据包的链路层信息。
-q:不显示解析后的协议信息。
host:指定捕获数据包的源或目的IP地址,例如host 192.168.1.1表示捕获源或目的IP地址为192.168.1.1的数据包。
port:指定捕获数据包的源或目的端口号,例如port 80表示捕获源或目的端口号为80的数据包。
protocol:指定捕获数据包的协议类型,例如protocol tcp表示捕获TCP协议的数据包。
expr:指定复杂的捕获过滤条件,例如expr "src host 192.168.1.1 and dst port 80"表示捕获源IP地址为192.168.1.1且目的端口号为80的数据包。

Step 2:查看网卡

代码语言:javascript
复制
tcpdump -D

Step 3:按照上述参数说明,指定网络接口(例如:eth0)后开始抓包

代码语言:javascript
复制
tcpdump -i eth0 host 192.168.204.128 and port 80 -w capture.pcap
过滤语法

下面是一些tcpdump常用过滤语法:

代码语言:javascript
复制
#地址过滤
tcpdump host 192.168.1.100      //主机地址过滤,捕获192.168.1.100 主机的数据包
tcpdump src  192.168.1.100      //源地址过滤,捕获源地址为192.168.1.100的数据包
tcpdump dst 192.168.1.100      //目的地址过滤,捕获目的地址为 192.168.1.100 的数据包
    
#网段过滤
tcpdump net 192.168.1.0/24       //网络地址过滤,捕获网络地址为 192.168.1.0/24 的数据包
tcpdump src net 192.168.10.0/24    //网络地址过滤,源网段
tcpdump dst net 192.168.10.0/24    //网络地址过滤,目标网段
    
#端口过滤:
tcpdump tcp port 80         //捕获80端口
tcpdump src port 80        //源端口捕获
tcpdump dst port 80        //目的端口捕获
tcpdump port 80 or port 22       //同时捕获80和22端口(写法效果一样)
tcpdump portrange 8000-8080      //捕获端口的一个段   例如:(8000 8001 8002......8080端口,>2个没法用or)
tcpdump src portrange 8000-8080  //源端口段的捕获
tcpdump dst portrange 8000-8080  //目的端口段的捕获
tcpdump tcp port http         //过滤HTTP协议80端口    

#协议过滤
tcpdump tcp port 80        //捕获所有TCP协议且目的端口为80的数据包
tcpdump tcp src 192.168.1.100  //捕获所有TCP协议且源IP地址为192.168.1.100的数据包
tcpdump tcp src 192.168.1.100 dst port 80    //捕获所有TCP协议、源IP地址为192.168.1.100且目的端口为80的数据包

#其他应用
tcpdump -i eth1 -s 0 -l -w - dst port 3306 | strings                         //抓取mysql执行的sql语句
tcpdump -n -nn -tttt -i eth0 -s 65535 'port 3306' -w 20160505mysql.cap              //抓取mysql通讯的网络包(cap用wireshark打开)
tcpdump -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'          //抓取SMTP 数据
tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x47455420'                        //抓取HTTP GET数据,"GET"的十六进制是47455420
tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'       //抓取HTTP POST数据,"POST"的十六进制是504f5354
tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D'                        //抓取SSH返回,"SSH-"的十六进制是0x5353482D
tcpdump -i eth0 '((port 8080) and (tcp[(tcp[12]>>2):4]=0x47455420))' -nnAl -w /tmp/GET.log    //实时抓取端口号8080的GET包,然后写入GET.log
time tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10                      //抓取指定SYN个数,-c 参数指定抓多少个包
文末小结

本文介绍了TCPDump的基本使用方法和常用命令选项,希望能够对读者有所启发和帮助,同时需要注意的是TCPDump的使用需要一定的技术基础和实践经验,建议读者在实际操作中多加练习和尝试以充分发挥其功能和价值

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七芒星实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本介绍
  • 主要功能
  • 使用方法
  • 过滤语法
  • 文末小结
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档