zoukankan      html  css  js  c++  java
  • 抓包工具之tcpdump

    tcpdump 官网 -> http://www.tcpdump.org

    1. 安装步骤

    在官网分别下载 Tcpdump、Libpcap 这两个包链接

    在安装Tcpdump之前,先安装Libpcap

    以目前最新版为例,找一个合适的目录,把它们下载回来

    wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
    wget http://www.tcpdump.org/release/tcpdump-4.9.2.tar.gz

    然后分别解压

    tar -zxvf libpcap-1.9.0.tar.gz
    tar -zxvf tcpdump-4.9.2.tar.gz

    开始安装

    cd libpcap-1.9.0
    ./configure
    make
    make install

    如果在./configure编译的时候报错,有Error信息,先看它的报错信息,然后再继续,一般错误通常为少一些依赖包。

    ex:configure: error: Neither flex nor lex was found.
    解决办法:yum install flex bison
    然后再次 ./configure

    cd tcpdump-4.9.2
    ./configure
    make
    make install

    顺利的话,走到这一步已经安装完成了。

    或者使用yum 直接进行安装

    yum -y install tcpdump

    2. 使用方法

    tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] 
             [ -c count ] 
             [ -C file_size ] [ -G rotate_seconds ] [ -F file ] 
             [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ] 
             [ --number ] [ -Q in|out|inout ] 
             [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ] 
             [ -W filecount ] 
             [ -E spi@ipaddr algo:secret,... ] 
             [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] 
             [ --time-stamp-precision=tstamp_precision ] 
             [ --immediate-mode ] [ --version ] 
             [ expression ]

    常见参数说明(区分大小写)

    • -s 用于设置数据包抓取长度。如果 -s 为 0,则表示自动选择合适的长度来抓取数据包。
    • -w 用于将抓包结果导出到文件,而不是在控制台进行分析和打印输出。
    • -i 用于指定需要监听的接口(网卡)。
    • -vvv 用于输出详细的交互数据。
    • expression 是一个正则表达式,用于过滤报文。主要包含如下几类:
      • 指定类型的关键字:包括 host(主机)、net(网络)和 port(端口)。
      • 指定传输方向的关键字:包括 src(源)、dst(目标)、dst or src(源或目标)和 dst and src(源和目标)。
      • 指定协议的关键字:包括 icmp、ip、arp、rarp、tcp、udp 等协议类型。

    更多参数说明及用法,请参阅 tcpdump 的 Manpage

    常见用法和示例输出

    • 抓取指定网卡指定端口的交互数据。
      • 操作指令:
        tcpdump -s 0 -i eth0 port 22
        示例输出:
        
        tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
        listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
        20:24:59.414951 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq     442372:442536, ack 53, win 141, length 164
        20:24:59.415002 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq   442536:442700, ack 53, win 141, length 164
        20:24:59.415052 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq   442700:442864, ack 53, win 141, length 164
        20:24:59.415103 IP 172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], seq 442864:443028, ack 53, win 141, length 164
    • 抓取指定网卡发送给指定 IP 上指定端口的交互数据,并在控制台输出详细交互信息。
      • 操作指令:
        tcpdump -s 0 -i eth1 -vvv port 22
        示例输出:
        
        tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535   bytes
        20:24:20.991006 IP (tos 0x10, ttl 64, id 22747, offset 0, flags [DF], proto TCP (6), length 316)
        172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], cksum 0x2504 (incorrect -> 0x270d), seq 133624:133900, ack 1, win 141, length 276
        20:24:20.991033 IP (tos 0x0, ttl 53, id 2348, offset 0, flags [DF], proto TCP (6), length 92)
        42.120.74.107.43414 > 172.16.2.226.ssh: Flags [P.], cksum 0x4759 (correct), seq 1:53, ack 129036, win 15472, length 52
        20:24:20.991130 IP (tos 0x10, ttl 64, id 22748, offset 0, flags [DF], proto TCP (6), length 540)
        172.16.2.226.ssh > 42.120.74.107.43414: Flags [P.], cksum 0x25e4 (incorrect -> 0x5e78), seq 133900:134400, ack 53, win 141, length 500
        20:24:20.991162 IP (tos 0x0, ttl 53, id 2349, offset 0, flags [DF], proto TCP (6), length 40)
        42.120.74.107.43414 > 172.16.2.226.ssh: Flags [.], cksum 0xf39e (correct), seq 53, ack 129812, win 15278, length 0
    • 抓取发送至指定 IP 的 ping 交互数据,并在控制台输出详细交互数据。
      • 操作指令:
        tcpdump -s 0 -i eth1 -vvv dst 223.5.5.5 and icmp
        示例输出:
        
        tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
        20:26:00.368958 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
        172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 341, length 64
        20:26:01.369996 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
        172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 342, length 64
        20:26:02.371058 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
        172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 343, length 64
        20:26:03.372181 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
        172.16.2.226 > public1.alidns.com: ICMP echo request, id 55097, seq 344, length 64
    • 抓取系统内所有接口数据并保存到指定文件。
      • 操作指令:
        tcpdump -i any -s 0 -w test.cap
        示例输出:
        
        tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes



  • 相关阅读:
    Atitit 趋势管理之道 attilax著
    Atitit 循环处理的新特性 for...else...
    Atitit 2017年的技术趋势与未来的大技术趋势
    atitit 用什么样的维度看问题.docx 如何了解 看待xxx
    atitit prj mnrs 项目中的几种经理角色.docx
    Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
    Atitit 工具选型的因素与方法 attilax总结
    Atitit.团队文化建设影响组织的的一些原理 法则 定理 效应 p826.v4
    Atiitt 管理方面的误区总结 attilax总结
    Atitit 未来趋势把控的书籍 attilax总结 v3
  • 原文地址:https://www.cnblogs.com/xingxia/p/linux_tcpdump.html
Copyright © 2011-2022 走看看