• tcpdump学习笔记


    简介 

        简单的说,tcpdump就是一个抓包工具,类似Wireshark。
        tcpdump可以根据使用者的定义过滤/截取网络上的数据包,并进行分析。tcpdump可以将数据包的头部完全接货下来进行分析。支持网络层、协议层、主机、端口等特定规则的过滤。

    tcpdump的使用

    快速入门

        首先接收两个选项
    -i 指定网络接口
    -w 将截取到的数据包写入文件

        为什么先介绍这两个选项呢,因为有了这两个选项,结合Wireshark,你不想学tcpdump就可以不学了,直接把通过某个网络接口的所有数据包都保存到一个文件中,再到Wireshark中进行分析即可。
          命令如下:
    windeal@ubuntu:~$ sudo tcpdump -i eth0 -w hello.cap
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    ^C129 packets captured
    129 packets received by filter
    0 packets dropped by kernel
    windeal@ubuntu:~$ 

    可以看出例子中一共截获了129个数据包,然后直接用Wireshark打开文件hello.cap即可对其进行分析。
    如下图:


    tcpdump常用命令:

        tcpdump提供了一系列的参数来满足用户需求,根据使用者定义分析过滤数据包。
    windeal@ubuntu:~$ tcpdump --help
    tcpdump: invalid option -- '-'
    tcpdump version 4.2.1
    libpcap version 1.1.1
    Usage: tcpdump [-aAbdDefhHIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
    		[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
    		[ -i interface ] [ -M secret ]
    		[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
    		[ -W filecount ] [ -y datalinktype ] [ -z command ]
    		[ -Z user ] [ expression ]
    windeal@ubuntu:~$ 
    


    这些参数大致可以分为以下几类:
    捕获过滤类:类似Wireshark的capture filter
    显示过滤类:类似Wireshark的display filter,就是Wireshark左上角有个下拉框的那个
    辅助类

    默认情况下,tcpdump显示格式如下:
    04:57:52.195631 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
    04:57:52.662335 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
    04:57:52.944999 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAS


    下面介绍一些常用的参数:
    -i  前面已经介绍,用于指定网络接口
    -v  显示稍微详细信息
    -vv 显示比-v更详细的信息
    -e  打印链路层头部信息
    -t  不输出时间戳
    -tttt 输出date格式的时间戳
    host 指定主机


    在tcpdump中也可以使用src、dst 以及and or not之类的参数

    应用举例:
    tcpdump host widneal-PC  #进出windeal-PC的数据包
    tcpdump host 192.168.1.1 #指定ip, 进出192.168.1.1 的数据包
    tcpdump src host 192.168.1.1 #指定源ip, 来自192.168.1.1 的数据包
    tcpdump tcp port 23 host 192.168.1.1 #获取主机192.168.1.1 接收或发出的telnet(端口号23)包
     
    #To print all ICMP packets that are not echo requests/replies (i.e., not ping packets)
    tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
     




  • 相关阅读:
    记录一次电话面试
    记录一次git合并
    HTML通用属性与常见标签
    位运算的应用
    HTML总结
    前端MVC
    常用软件
    docker常用命令
    composer install(update)时出现killed
    优化小技巧:该怎么识别百度蜘蛛呢
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284605.html
Copyright © 2020-2023  润新知