Articles of wireshark

使用tshark解码SNMP OID(wireshark)

我正在Linux平台上使用tshark(TShark 1.6.6)来debuggingSNMP陷阱问题。 (目标平台不支持wireshark GUI。)尽pipe我已经在/usr/share/snmp/mibs安装了MIB,并且链接到/usr/local/share/mibs但PDUs中的OID以数字格式显示。 我试过了-V 。 除了一些内存debugging选项,似乎没有tshark详细或debugging选项。 我已经检查了手册页,在SNMP或MIB上找不到任何东西。 我尝试strace ,我find了一个文件/usr/share/wireshark/oid文件,但是当我把MIB目录放在那里时,我得到一个flex错误,而谷歌search这个神秘的文件意味着什么都没有。 我可以将OID复制并粘贴到snmptranslate命令中,并正确地转换它们。 我试图用smi_modules和smi_paths ( "/usr/share/snmp/mibs" )创build~/.wireshark目录。 我做了一个tshark -G currentprefs ,看看是否有相关的偏好,但没有。 我已经search了这个问题,但我得到了太多的cha to,以取得任何进展。 我检查了unix.stackexchange.com,superuser.com和这个网站。 我核实了人们在这个网站上询问wireshark的问题(其中一万个),以确保它是在主题上。 示例调用: tshark -R "snmp && ip.dst==<nms_ip>" -i eth0 Running as user "root" and group "root". This could be dangerous. Capturing on eth0 4.675952 <agent_ip> -> <nms_ip> SNMP 115 sNMPv2-Trap 1.3.6.1.2.1.1.3.0 1.3.6.1.6.3.1.1.4.1.0 ~/.wireshark/preferences […]

找不到init.lua文件

我目前正在使用安装在CentOs上的Wireshark,我想用Lua来做一些自动化的数据包分析。 如上所述,我试图运行tshark -X lua_script:hello.lua来查看我是否获得了Hello World! 。 但是因为我没有,我用tshark -v命令检查了tshark是否没有连接lua。 我得到了结果,其中一部分说'没有卢阿'。 所以我认为wireshark没有与lua链接。 然后正如在这个链接中提到的,我试图改变“ disable_lua ”的值,但我试图findinit.lua文件,但我无法在系统中find此文件。 任何人都可以告诉这个文件位于哪里,这是一个真正的问题,没有链接到lua的tshark ?

如何捕捉像Wireshark的所有udp消息没有滴?

我有两个程序udp发件人和消费者在本地主机上。 发送方以最快的速度生成四个字节的int消息,但消费者并没有得到所有的消息。 消费者最后一行stdout是 1484444 1999999 Wireshark拦截所有包,并慢慢处理它们。 我怎样才能在C程序中获得相同的行为? // sender.c #include <sys/socket.h> #include <netinet/in.h> #include <strings.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> int main() { int sock = socket(AF_INET, SOCK_DGRAM, 0); struct sockaddr_in dest; bzero(&dest, sizeof(dest)); dest.sin_family = AF_INET; dest.sin_port = htons(40500); inet_aton("127.0.0.1", &dest.sin_addr); int i; for (i = 0; i < 2000000; ++i) { sendto(sock, […]

hexstringwireshark pcap

我有一个hexstring,我想转换成Wireshark PCAP。 Wireshark接受以下格式的hex转储: 0000 00 00 00 00 00 aa 00 00 00 00 00 01 88 47 00 3e 0010 80 0a 00 00 d1 0a 10 00 89 02 20 01 05 46 00 00 0020 00 01 00 02 04 03 6d 64 31 02 03 6d 61 57 00 00 0030 […]

在Linux下捕获Wireshark时以太网FCS

使用Wireshark在Linux下捕获数据包时,是否有某种方法可以从以太网帧中获取帧检查序列(FCS)?

在后台运行Tshark

我正试图捕捉从CLI的tshark与这样的事情的stream量: tshark -i 1 -w Outputfile.pcap 如果我执行这个命令,提示符不会返回,因为tshark提供了有关包计数的信息,并将包信息保存在文件“Outputfile.pcap”中。 如果可能的话,我想要得到提示。 所以,我可以执行更多的命令,而无需在远程服务器上打开另一个terminal。 我已经尝试在最后使用“&”在后台运行进程,命令提示符返回,但数据包计数继续覆盖我input的命令,我什么都看不见:( 有谁知道解决这个问题的方法?

Tshark – 不能显示自定义协议的数据

我有一个自定义协议运行在端口8888(不,它不是HTTP),并在TCP之上。 我已经捕获到PCAP文件的数据包的stream量。 问题是,现在我不能只显示它的数据部分。 我试着用下面的命令: tshark -r test.pcap -R 'tcp.port==8888 && tcp.len>0' -T fields -e "tcp.data" 但它显示一个空的string。 tcp.data字段不是保存TCP数据包的那个字段吗? 如何只显示我需要的数据?

Pythonsubprocess为我的shell参数添加额外的引号

预期的行为 在正常情况下,我可以在Linux下发行tshark -E separator='@' 请参阅注释A,并强制显示由@分隔的字段,如下所示… [mpenning@hotcoffee ~]$ tshark -r scp_test.pcap -e frame.number -e ip.src_host -e tcp.srcport -E separator='@' -T fields tcp | less 1@192.168.12.236@33088 2@192.168.12.238@22 3@192.168.12.236@33088 … 意外的行为 同样,我以为我会运行相同的命令通过subprocess.Popen() ,columnify,并着色基于一些分析…所有我的分析依赖于输出被分隔@当我运行脚本…但是,我的脚本不使用@ …,而是使用单引号; 我不确定我明白为什么会发生这种情况。 脚本 import subprocess import sys filename = sys.argv[1].strip() fields = ['frame_num', 'IP Src', 'TCP Src'] sep = '@' cmd = r"""tshark -r %s […]

TCP ack暂停,然后恢复,然后再次暂停。 为什么?

注意:这个问题已被移到serverfault.com 。 我想在我的应用程序中寻找降低数据传输速率的原因。 我有12个embedded式系统和一个Linux服务器。 embedded式系统通过交换机通过以太网链路将数据通过TCP发送到服务器。 以下是Wireshark捕获一个板卡上的stream量的TCP StreamGraph。 正如你所看到的,数据传输发生在大约5.8MBit / s直到大约0.25秒。 这与我所预期的embedded式系统一样快。 在此之后,延期被插入转移。 以下显示了该图的一个特写: 标有ACK的底部的阶梯形曲线显示服务器在任何给定时间已经确认了多less数据。 标有RWIN的相应曲线显示了数据卡上的缓冲区有多less空间。 标记为“发送数据”的较小垂直段是实际发送的数据包。 在A点,服务器以尽可能快的速度发送数据,但是持续23ms,服务器不会发送数据。 允许embedded式系统在不等待ACK的情况下发送RWIN,但是它不这样做,因为它需要保持发送的数据,直到它们被发送(如果需要重新发送),发送缓冲区空间是有限。 然后,在B点,所有接收到的数据立即被确认,正常的确认和发送恢复2.5ms,然后再发生一次暂停。 Wireshark捕获是由一台不同的PC机完成的,该PC连接到交换机上的一个端口,该端口被设置为镜像在embedded式系统所连接的端口上发送和接收的所有数据。 Linux服务器运行一个Java应用程序来处理数据并将它们存储在磁盘上。 它没有显示已经超出了CPU的迹象。 操作系统是具有默认networking设置的Ubuntu Server 12.04。 我可以看到,我可能会从在embedded式系统中分配更多的发送缓冲区空间中获益,以匹配Linux服务器中的接收窗口空间量,但这似乎并不是限制因素。 我的问题是: 什么可能是Linux服务器暂停ACK的原因,即使它显然能够收到一切就好了? 我怎么去debugging呢?

监视器模式接口上的tcpdump – 没有捕获任何东西

我一直使用tcpdump(版本4.1.1) 尝试从airmon-ng设置的监视器模式接口捕获无线帧。 我说“尝试”,因为到目前为止没有发生任何事情。 这很奇怪: tcpdump -i mon0 上面的命令工作正常。 我看到所有的信标和探测请求,以及在屏幕上显示的其他所有可能的帧。 但是,当我尝试将输出写入捕获文件使用 tcpdump -i mon0 -w captures.cap 包含实际数据的第3层数据包绝对没有被捕获。 当我杀死tcpdump时,它给了我 13507 packets captured 13507 packets received by filter 0 packets dropped by kernel (在这种情况下,13507是一个任意数字)和一个完全空的捕获文件。 但是,当我在同一个界面上使用tshark或wireshark进行捕捉时,帧被捕获到文件没有任何问题。 我宁愿使用tcpdump而不是wireshark,因为它没有GUI的开销,它有“-z”选项,它允许我把捕获文件传递给一个shell脚本,将其复制到另一台计算机在我的networking上。 没有与tshark或wireshark类似的function,我非常想避免编写一个程序来检查捕获文件的存在。 我对tcpdump的工作方式有一个基本的误解,或者肯定有一些奇怪的事情发生在这里吗? 有没有更好的方式做我正在做的事情,或者我将不得不写我自己的基于libpcap的捕获程序?