最可靠的方法是检查ip link show输出中的promiscuity 1字段,而非ifconfig的PROMISC标志;再通过cat /sys/class/net/eth0/flags | grep -q '0x100'验证bit 8是否置位,两者均满足才确认混杂模式真实启用。

Linux系统中存在隐藏的网络嗅探后门时,往往不监听端口、不写入日志、不启动常规进程,仅通过混杂模式抓包或内核模块劫持实现静默监听——必须结合底层状态检查与行为验证才能定位。
检查网卡是否处于混杂模式
执行 ip link show,逐行查看输出中是否含 【PROMISC】 字样;若某物理网卡(如 eth0、enp0s3)出现该标记,且非预期用途(如运行 tcpdump、wireshark 或 IDS),则极可能被嗅探器启用。
重点比对:虚拟网卡(如 docker0、virbr0)、隧道接口(如 tun0)允许 PROMISC 属正常;但真实物理网卡在无监控/调试需求时出现该状态,需立即排查。
补充验证命令:cat /sys/class/net/eth0/flags 2>/dev/null | grep -q '0x1002' && echo "混杂模式已启用"(将 eth0 替换为实际接口名)。
扫描可疑的内核模块
运行 lsmod | awk '{print $1}' | xargs modinfo 2>/dev/null | grep -E '(sniffer|promisc|packet|bpf|netfilter|nflog)' | head -n5,快速筛选含嗅探语义关键词的模块描述。
手动检查未列在 lsmod 中的隐藏模块:执行 find /lib/modules/$(uname -r) -name "*.ko*" -exec modinfo {} \; 2>/dev/null | grep -A2 -B2 -i 'sniff\|promisc',避免遗漏已编译但未加载的嗅探模块。
【注意:某些 rootkit 会从内核 module_list 链表中脱链自身,lsmod 将完全不可见】,此时需用内存取证工具(如 LiME + volatility3)分析内核地址空间。
检测异常的原始套接字进程
步骤一:执行 sudo ss -tulpn | grep -E '(@|:0)',筛选监听在任意地址(0.0.0.0 或 *)且端口为 0 的进程——这是原始套接字(SOCK_RAW)常见特征,常被嗅探程序使用。
步骤二:对上步发现的 PID,运行 sudo cat /proc/[PID]/status 2>/dev/null | grep CapEff,若 CapEff 值包含 【00000000a80425fb】(对应 CAP_NET_RAW+CAP_NET_ADMIN),且该进程非 tcpdump、wireshark、suricata 等已知合法工具,则高度可疑。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
步骤三:检查该进程打开的文件描述符:sudo ls -l /proc/[PID]/fd/ 2>/dev/null | grep packet,若出现 socket:[*] 类型且关联 packet socket(协议族 AF_PACKET),基本可确认其具备链路层抓包能力。
核查系统日志与 wtmp/lastlog 异常
方法一:检查登录日志是否被清空或篡改——运行 ls -l /var/log/wtmp /var/log/lastlog,若大小为 0 或时间戳早于系统上次重启,说明攻击者可能已清除痕迹。
方法二:用 last -n 20 查看最近登录记录,若输出为空或仅显示近期几条,而系统实际运行数月,【说明 wtmp 可能被硬链接替换或截断】,此时嗅探后门往往伴随日志擦除行为。
方法三:执行 stat /var/log/wtmp | grep -E "(Inode|Size|Modify)",对比 Modify 时间与 uptime 输出,若 Modify 时间远早于系统运行时长,需进一步取证。
运行 rkhunter 进行交叉验证
先更新数据库:sudo /usr/local/bin/rkhunter --update。
再执行完整检测:sudo /usr/local/bin/rkhunter --check --sk(--sk 跳过交互提示)。
重点查阅报告末尾的 “Suspicious Files” 和 “Network Ports” 区域,尤其关注标记为 【Warning】 的项,例如 “Checking for promiscuous interfaces” 或 “Checking for suspicious (large) shared memory segments”。
报告默认保存在 /var/log/rkhunter.log,用 grep -E "(Warning|Promisc|Sniffer)" /var/log/rkhunter.log 快速定位关键线索。

















