【问题标题】:tcpprep: Command line arguments not allowedtcpprep:不允许使用命令行参数
【发布时间】:2019-12-31 05:05:50
【问题描述】:

我不确定,为什么在 ubuntu 终端上执行以下命令会引发错误。根据帮助文档中提到的 tcpprep 语法和选项,仍然会引发错误。

root@test-vm:~# /usr/bin/tcpprep --cachefile='cachefile1' —-pcap='/pcaps/http.pcap' 

tcpprep: Command line arguments not allowed
tcpprep (tcpprep) - Create a tcpreplay cache cache file from a pcap file

root@test-vm:~# /usr/bin/tcpprep -V
tcpprep version: 3.4.4 (build 2450) (debug)

【问题讨论】:

    标签: networking pcap tcpreplay


    【解决方案1】:

    您的命令有两个问题(tcpprep 错误含糊不清或错误无济于事)。

    问题 #1:命令乱序

    tcpprep 要求 -i/--pcap 位于 -o/--cachefile 之前。您可以按以下方式解决此问题,但随后会出现不同的错误:

    bash$ /usr/bin/tcpprep —-pcap='/pcaps/http.pcap' --cachefile='cachefile1'
    
    Fatal Error in tcpprep_api.c:tcpprep_post_args() line 387:
    Must specify a processing mode: -a, -c, -r, -p
    

    请注意,上面的错误甚至不准确! -e/--mac也可以用!

    问题#2:必须指定处理模式

    tcpprep 用于使用您提供的启发式 将捕获文件预处理到客户端/服务器中。查看tcpprep manpage,有5 个有效选项(-acerp)。鉴于此capture fileinput.pcapng 与服务器192.168.122.201 和下一跳mac 52:54:00:12:35:02

    -a/--auto

    让 tcpprep 根据 5 种启发式方法之一确定:bridgerouterclientserverfirst。例如:

    tcpprep --auto=first —-pcap=input.pcapng --cachefile=input.cache
    

    -c/--cidr

    按 cidr 范围指定服务器。我们在 192.168.122.201、192.168.122.202 和 192.168.3.40 看到服务器,所以总结一下192.168.0.0/16

    tcpprep --cidr=192.168.0.0/16 --pcap=input.pcapng --cachefile=input.cache
    

    -e/--mac

    这在此捕获中不如此捕获中的所有流量具有52:54:00:12:35:02ff:ff:ff:ff:ff:ff(广播)或33:33:00:01:00:02(多播)的下一跳的 dest mac 有用。尽管如此,来自下一跳的流量不会是客户端流量,所以看起来像:

    tcpprep --mac=52:54:00:12:35:02 —-pcap=input.pcapng --cachefile=input.cache
    

    -r/--正则表达式

    这适用于 IP 范围,是使用 --cidr 汇总子网的替代方法。如果您有多个 IP,例如 10.0.20.1、10.1.20.1、10.2.20.1...,其中汇总不起作用而正则表达式将起作用,这将更加有用。这是我们可以用来总结服务器的一个正则表达式:

    tcpprep --regex="192\.168\.(122|3).*" —-pcap=input.pcapng --cachefile=input.cache
    

    -p/--端口

    查看 Wireshark > Statistics > Endpoints,我们看到端口 [135,139,445,1024]/tcp、[137,138]/udp 与服务器 IP 相关联。与dcerpc 一起使用的1024/tcp 是唯一一个不在0-1023 范围内的,因此我们必须手动指定它。根据services 语法,我们将其表示为“dcerpc 1024/tcp”。为了指定端口,我们还需要指定一个--services 文件。我们可以使用process substitution 指定一个内联作为临时文件描述符。总之,

    tcpprep --port --services=<(echo "dcerpc    1024/tcp") --pcap=input.pcapng --cachefile=input.cache
    

    进一步阅读

    如需更多示例和信息,请查看the online docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2011-11-10
      相关资源
      最近更新 更多