标签: tcpdump

wireshark和tcpdump -r:奇怪的tcp窗口大小

我正在使用tcpdump捕获http流量,并且对TCP慢启动和窗口大小增加感兴趣:

$ sudo tcpdump -i eth1 -w wget++.tcpdump tcp and port 80
Run Code Online (Sandbox Code Playgroud)

当我使用Wireshark查看转储文件时,窗口大小的进展看起来正常,即5840,5888,5888,8576,11264等...

但是当我查看转储文件时

$ tcpdump -r wget++.tcpdump -tnN | less
Run Code Online (Sandbox Code Playgroud)

我得到了似乎毫无意义的窗口大小(为简洁省略了IP地址):

: S 1069713761:1069713761(0) win 5840 <mss 1460,sackOK,timestamp 24220583 0,nop,wscale 7>
: S 1198053215:1198053215(0) ack 1069713762 win 5672 <mss 1430,sackOK,timestamp 2485833728 24220583,nop,wscale 6>
: . ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: . 1:1419(1418) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: P 1419:2002(583) ack 1 win 46 <nop,nop,timestamp 24220604 2485833728>
: . ack 1419 win 133 <nop,nop,timestamp …
Run Code Online (Sandbox Code Playgroud)

linux tcp tcpdump wireshark

5
推荐指数
2
解决办法
2万
查看次数

如何使用tcpdump对WPA/WPA2-PSK进行实时解密?

这是我的问题:

如果我连接到网络(所以我知道WPA/WPA2-PSK),我倒是希望能够解密我从网络中的其他设备拍摄的交通.(如果使用WEP,tcpdump会自动执行此操作).

据我所知,WPA为WiFi中的每个客户端使用类似会话密钥的东西 - 但我知道这是可能的 - 所以我想知道如何做到这一点.(如果tcpdump无法做到这一点,那么"手工"怎么做?)

谢谢你的帮助!

security encryption wireless tcpdump

5
推荐指数
2
解决办法
5854
查看次数

Tshark-无法仅显示自定义协议的数据

我有一个运行在端口8888(不,它不是http)和TCP之上的自定义协议。我已经捕获到PCAP文件中的数据包流。问题在于,现在我不能仅显示其数据部分。

我尝试使用以下命令:

tshark -r test.pcap -R 'tcp.port==8888 && tcp.len>0' -T fields -e "tcp.data"
Run Code Online (Sandbox Code Playgroud)

但它显示一个空字符串。tcp.data字段不是保存TCP数据包数据的字段吗?

如何仅显示所需数据?

linux networking tcp tcpdump wireshark

5
推荐指数
1
解决办法
5731
查看次数

当客户端愉快地发送它们时,为什么TCP数据包始终无法到达服务器?

我有一个简单的客户端服务器设置,似乎我从客户端发送的TCP数据包没有到达服务器.

通常一切正常,但是当我在客户端上启动50个线程以同时使用相同的小数据包(仅39个字节)"同时"命中服务器时,服务器无法接收所有字节的随机次数.更奇怪的是,它在如何接收它们方面非常一致......只收到5个字节.

我正在使用tcpdumptcpflow捕获两端发生的事情(如果不熟悉tcp流,它会从TCP流中删除大量的TCP SYN/ACK/FIN/etc噪声,只显示发送的数据)任何方向).

在客户端,50个线程触发39字节数据包,它看起来很完美.具体来说,tcpflow(使用libpcap)向我展示了50个相同的数据传输:

07 B6 00 01 | 00 1E 00 00 | <etc>
Run Code Online (Sandbox Code Playgroud)

据我了解,libpcap/tcpdump从相当低的级别(低于TCP堆栈)获取数据,所以我认为这意味着数据发送正常,或者至少没有卡在内核缓冲区中.

但是,在查看服务器端时,一切都不完美.随机数失败,而且百分比很高.例如,在50个套接字连接中,30个工作正常,但是对于其中20个,我有一个协议失败,服务器socket.recv超时等待字节(协议指示确切的数据包长度).

它的失败方式非常一致.对于30/20的情况,30个插座完全接收传输的39个字节.其余20个ALL收到这个部分数据,之后我的socket.recv时间超出:

07 B6 00 01 | 00
Run Code Online (Sandbox Code Playgroud)

对于20个连接中的每一个,只有5个字节到达,并且它似乎处于内核级别,因为tcpdump仅显示5个字节到达.

怎么会发生这种情况?

这个5字节的边界不是100%重合.它是标头的第一部分,接下来是34字节的有效负载,但是没有到达.在客户端,它是这样分开的.

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
sock.sendall(HEADER)  # 5 bytes
sock.sendall(PAYLOAD) #34 bytes
Run Code Online (Sandbox Code Playgroud)

并且两个sock.sendall调用都在每个线程中成功完成,事实证明我的tcp日志记录显示所有50个运行完全发送39个字节"出门".

关于这个根本原因的任何想法?我错过了什么?

c python sockets tcp tcpdump

5
推荐指数
1
解决办法
4151
查看次数

使用tcpdump监视在我的网络上访问了哪些网站

我刚刚接触过Raspberry Pi,并已将其设置为充当家庭网络中的DNS和DHCP服务器。这意味着所有网络请求在被释放之前都要经过它……这为我提供了一个绝佳的机会来使用tcpdump并查看我的网络中正在发生什么!

我在玩tcpdump参数来创建完美的网络间谍。这个想法是捕获HTTP GET请求。

这是我到目前为止所拥有的,并且非常好:

tcpdump -i eth0 'tcp[((tcp[12:1] & 0xf0)>> 2):4] = 0x47455420' -A
Run Code Online (Sandbox Code Playgroud)
  • -i eth0告诉它哪个接口来听
  • 用引号引起来的位是十六进制匹配的精妙之处,它可以检测到GET请求
  • -A意思是“打印此包的ASCII内容”

每当我的网络上的任何东西发送GET请求时,这都会触发,这很棒。最后,我的问题是如何过滤出无聊的请求,例如图像,JavaScript,收藏夹图标等?

使用tcpdump甚至可以做到这一点,还是我需要转向更全面的工具(如tshark)?

谢谢你的帮助!

免责声明:目前我网络上唯一的人是我...这不是恶意的,这是技术难题!

networking http-get tcpdump raspberry-pi

5
推荐指数
1
解决办法
1420
查看次数

android上的Tcpdump跟踪 - 无法加载"/ system/bin/tcpdump"所需的库"libssl.so"

我需要在我的Android设备上执行tcpdump跟踪.


我的设置:

将tcpdump文件推送到SD卡

adb push filepath/tcpdump /sdcard/tcpdump
Run Code Online (Sandbox Code Playgroud)

将文件复制到/ system/bin

为tcpdump文件授予root权限

adb shell
cd /system/bin
su
chmod 777 tcpdump
Run Code Online (Sandbox Code Playgroud)

从Google Play安装BUSYBOX

运行tcpdump trace

tcpdump -vv -s 0 -w /sdcard/filename.pcap
Run Code Online (Sandbox Code Playgroud)

我已经设法在三星Galaxy S4上做到了 - 它工作正常.但是,它不适用于我的三星Galaxy Tab.在tcpdump命令后我收到错误:

tcpdump
soinfo_link_image(linker.cpp:1635): could not load library "libssl.so" needed by
 "/system/bin/tcpdump"; caused by load_library(linker.cpp:761): not a valid ELF
executable: libssl.soCANNOT LINK EXECUTABLE
Run Code Online (Sandbox Code Playgroud)

两个设备都是root用户,并且它们具有相同的tcpdump配置.我 在/ system/lib /中有libssl.so

三星Galaxy S4

C:\Windows\System32>adb shell
shell@android:/ $ su
su
root@android:/ # cd system/bin
cd system/bin
root@android:/system/bin # tcpdump
tcpdump
tcpdump: …
Run Code Online (Sandbox Code Playgroud)

android linker-errors tcpdump adb libssl

5
推荐指数
2
解决办法
1万
查看次数

tcpdump有多个dst IP地址?

我可以指定多于1个dstIP地址tcpdump吗?如果没有,如果我只想要两个特定目的地的流量,我该怎样才能很好地过滤信息?非常感谢你!

tcpdump

5
推荐指数
1
解决办法
2万
查看次数

将NFLOG pcap转换为以太网pcap

我需要嗅探特定Linux用户(UID)的流量。我正在用iptables / NFLOG(http://wiki.wireshark.org/CaptureSetup/NFLOG)很好地工作。

我的问题是NFLOG将pcap封装更改为“ NFLOG”(从“以太网”),并且某些工具(如tcpflow)无法再读取它。

我的问题是:是否可以将这样的pcap转换为“旧式” pcap文件?

linux networking iptables tcpdump

5
推荐指数
1
解决办法
517
查看次数

子进程中带有tcpdump的Python:如何正确关闭子进程?

我有一个Python脚本来捕获网络流量与tcpdumpsubprocess

p = subprocess.Popen(['tcpdump', '-I', '-i', 'en1',
                  '-w', 'cap.pcap'], stdout=subprocess.PIPE)
time.sleep(10)
p.kill()
Run Code Online (Sandbox Code Playgroud)

当此脚本完成工作时,我正在尝试.pcap在Wireshark中打开输出文件并得到以下错误:

“捕获文件似乎在数据包中间被剪切了。”

有什么解决方案可以适用于“正确”收盘tcpdumpsubprocess

python subprocess tcpdump python-2.7

5
推荐指数
1
解决办法
2425
查看次数

配置QEMU(Guest Debian-9.0 Sparc64 - Host MacOS High Sierra)从guest到host执行ssh

首先,用QEMU Virtual Machine (Debian Sparc64 Etch 4.0),我已经能够成功地获得sshscp从游客的命令到主机(MacOS Hight Sierra OS 10.13.3).

我只想在来宾和主机之间传输文件.

为了得到它,我已经按照本教程:

1)我已安装 TUN/TAP drivers

2)像这样启动QEMU:

qemu-system-sparc -boot c -hda debian_etch.img -m 512M -net nic -net tap,script=no,downscript=no
Run Code Online (Sandbox Code Playgroud)

3)VM启动后,在MacOS主机上执行: ifconfig tap0 192.168.10.1

4)在Debian Etch主机上,进入/etc/network/interfaces:

auto eth0
iface eth0 inet static
address 192.168.10.2
netmask 255.255.255.0
gateway 192.168.10.1
Run Code Online (Sandbox Code Playgroud)

并做: /etc/init.d/networking restart

5)最后,请客人: $ scp -r dir user_host@192.168.10.1:~/

现在,我想和一位Debian Sparc64 Stretch 9.0客人做同样的事情.

似乎ifconfig不推荐使用最新版本的Debian.

无论如何,我尝试使用以下命令启动Sparc64映像:

qemu-system-sparc64 \
-drive …
Run Code Online (Sandbox Code Playgroud)

linux macos ssh qemu tcpdump

5
推荐指数
0
解决办法
320
查看次数