Linux命令tcpdump是分析数据包的重要工具,但无法以彩色显示字段。
这里提供一个以绿色显示源IP,以黄色显示目标IP的脚本,这样能清晰地分辨出不同的数据包。
实验步骤:
- A电脑运行WEB服务,编写彩色输出脚本,运行tcpdump
- B电脑运行wget抓取A电脑的网页
- A电脑抓取数据包并以彩色形式输出
第一步:确保A电脑WEB服务运行正常,可访问网页
第二步:A电脑编写彩色输出脚本color.sh
#!/bin/bash
# 使用 tput 设置颜色
green=$(tput setaf 2)
yellow=$(tput setaf 3)
reset=$(tput sgr0)
echo -n
# 直接从标准输入读取并处理每一行
while IFS= read -r line || [[ -n "$line" ]]; do
# 检查行中是否包含 '>'
if [[ "$line" == *">"* ]]; then
# 找到源IP地址和目标IP地址
src_ip=$(echo "$line" | awk '{print $3}' | cut -d':' -f1)
dst_ip=$(echo "$line" | awk '{print $5}' | cut -d':' -f1)
# 替换源IP地址为绿色
line=$(echo "$line" | sed "s/\b$src_ip\b/${green}${src_ip}${reset}/g")
# 替换目标IP地址为黄色
line=$(echo "$line" | sed "s/\b$dst_ip\b/${yellow}${dst_ip}${reset}/g")
fi
# 打印处理后的行
echo -e "$line"
done
第三步:A电脑给彩色输出脚本添加执行权限
chmod +x color.sh
第四步:A电脑运行tcpdump和彩色输出脚本
本例监听的网卡名称是enp11s0,依现场情况而定
tcpdump -i enp11s0 -nn port 80 and host 192.168.0.146|./color.sh
第五步:B电脑抓取A电脑的网页
运行2次wget命令:wget http://192.168.0.147/
第六步:A电脑以彩色输出抓取到的数据包
tcpdump -i enp11s0 -nn port 80 and host 192.168.0.146|./color.sh
注:B电脑第1次运行wget命令,A电脑无反应,第2次运行wget命令A电脑才会显示第1次的抓取结果,以此类推。