TCPDump使用方法

admin 2023年10月30日21:25:05评论270 views字数 2826阅读9分25秒阅读模式

基本介绍

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的详细使用方法

TCPDump使用方法

#参数说明-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:查看网卡

tcpdump -D

TCPDump使用方法

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

tcpdump -i eth0 host 192.168.204.128 and port 80 -w capture.pcap

TCPDump使用方法

TCPDump使用方法

TCPDump使用方法

TCPDump使用方法

过滤语法

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

#地址过滤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"的十六进制是47455420tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' //抓取HTTP POST数据,"POST"的十六进制是504f5354tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D' //抓取SSH返回,"SSH-"的十六进制是0x5353482Dtcpdump -i eth0 '((port 8080) and (tcp[(tcp[12]>>2):4]=0x47455420))' -nnAl -w /tmp/GET.log //实时抓取端口号8080的GET包,然后写入GET.logtime tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10 //抓取指定SYN个数,-c 参数指定抓多少个包

文末小结

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

原文始发于微信公众号(七芒星实验室):TCPDump使用方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月30日21:25:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TCPDump使用方法http://cn-sec.com/archives/2160605.html

发表评论

匿名网友 填写信息