我正在尝试使用tcpdump来显示在我的网络上流动的tcp数据包的内容.我有类似的东西:
tcpdump -i wlan0 -l -A
Run Code Online (Sandbox Code Playgroud)
-A选项将内容显示为ASCII文本,但我的文本似乎是UTF-8.有没有办法使用tcpdump正确显示UTF-8?你知道其他任何有用的工具吗?
非常感谢
对pcap文件运行file命令将打印出以下内容:
$ file pcap.pcap
pcap.pcap: tcpdump capture file (little-endian) - version 2.4 ....
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一种方法来创建一个big-endian捕获文件,或者在线下载一个样本,但无济于事.
我也很困惑pcap中究竟是小端还是大端.据我所知,libpcap捕获了它在线上看到的内容.
我正在使用 Linux 命令行,当我运行以下命令时:
tcpdump -n dst host destsitename
tcpdump -n dst host stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
看看我的服务器作为源是否与该域通信,我如何找出哪个进程从我的服务器作为源进行通信。
我的问题是我应该在“tcpdump”中使用哪个选项。
如何使用 tcpdump 捕获流量并仅以原始二进制格式保存完整的有效负载(应用程序层数据,无 tcp/ip 标头)?
如何使用tcpdump捕获以太网帧并显示本地计算机使用UDP,ARP和ICMP协议之一发送或接收的任何帧。
我正在尝试以下命令:
须藤tcpdump -e udp或arp或icmp
但是,我认为这是错误的。
运行这个版本的内核4.11.8-1.el6.elrepo.x86_64并想知道为什么 TCP 堆栈发送一些 RST 数据包,即是否有 BSD 的 Linux 对应项net.inet.tcp.log_debug=1?
以下是需要原因的案例之一。在握手最终到达 ACK 后立即发送 RST。可以看到SYN丢失了好几次,并且最后一个ACK在超过1秒后才到达。但目前还不清楚为什么要发送RST。禁用 syn cookie 没有帮助。
15:27:41.166799 IP CLIENT.16537 > SERVER.80: Flags [S], seq 1397492268, win 29200, options [mss 1440,sackOK,TS val 1230199 ecr 0,nop,wscale 6], length 0
15:27:41.166820 IP SERVER.80 > CLIENT.16537: Flags [S.], seq 1773519351, ack 1397492269, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 9], length 0
15:27:42.069572 IP CLIENT.16537 > SERVER.80: Flags [S], seq 1397492268, win 29200, options [mss 1460,sackOK,TS val 1230299 ecr 0,nop,wscale 6], length …Run Code Online (Sandbox Code Playgroud) 我的操作系统版本:CentOS Linux release 7.5.1804(核心)
我的 tcpdump 版本:
tcpdump: option requires an argument -- 'V'
tcpdump version 4.9.2
libpcap version 1.5.3
OpenSSL 1.0.2k-fips
26 Jan 2017
Run Code Online (Sandbox Code Playgroud)
当命令为 tcpdump -i any -e -nn 时,输出如下:
15:55:07.876878 **In 00:50:56:c0:00:08** ethertype IPv4 (0x0800), length 80: 172.16.248.1.61944 > 172.16.248.101.80: Flags [S], seq 448335523, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 386448815 ecr 0,sackOK,eol], length 0
15:55:07.876939 **Out 00:50:56:28:6d:20** ethertype IPv4 (0x0800), length 80: 172.16.248.1.61944 > 172.16.248.101.80: Flags [S], seq 448335523, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS …Run Code Online (Sandbox Code Playgroud) 我可能已经做了一些更改我的设备权限的操作,因为我收到错误:"tcpdump: en0: You don't have permission to capture on that device"。TCP 部分无关紧要,因为我在使用设备时遇到问题bpf。我尝试将权限恢复为默认值,并将它们设置为如下所示,但我仍然遇到问题sudo。
我已重置权限并重新启动多次。另外,我的笔记本电脑被更换了,硬盘是唯一被转移的东西。
zjam@ZimSec:~$ tcpdump -i en0
tcpdump: en0: You don't have permission to capture on that device
((cannot open BPF device) /dev/bpf0: Permission denied
)
zjam@ZimSec:~$ sudo tcpdump -i en0
tcpdump: en0: You don't have permission to capture on that device
((cannot open BPF device) /dev/bpf0: Permission denied)
0 crw-rw---- 1 root access_bpf 23, 0 Aug 22 13:27 bpf0
0 crw-rw---- 1 root …Run Code Online (Sandbox Code Playgroud) 我想使用 scapy 嗅探一些数据包,但不是从自己主机的接口嗅探,而是想从远程主机(例如 192.168.1.x)及其接口嗅探。使用 python 和 scapy 和/或带有 tcpdump 的 paramiko 隧道可以实现这一点吗?
sniff(prn=packet_callback, iface=iface, filter=bpf_filter, count=0)
Run Code Online (Sandbox Code Playgroud)
iface如果我能用适当的功能或虚拟接口替换,我会很高兴。远程是一个tcpdump已安装的 Linux 盒子,所以我可以通过 ssh 执行以下操作
$ tcpdump -i eth1 -U -w -
Run Code Online (Sandbox Code Playgroud)
请指教,谢谢。
tcpdump ×10
tcp ×3
linux ×2
macos ×2
wireshark ×2
binary ×1
bpf ×1
centos7 ×1
encryption ×1
endianness ×1
libpcap ×1
linux-kernel ×1
networking ×1
packet ×1
pcap ×1
python ×1
scapy ×1
sniffing ×1
utf-8 ×1
wireless ×1