排查linux系统中隐藏在/proc/net下的网络后门,核心是识别“连接存在但进程缺失”的异常——即套接字在/proc/net/tcp、/proc/net/udp等文件中可见却无法关联任何真实进程;需重点检查监听端口孤儿、tcp/udp inode断联、raw socket异常、unix socket及netlink非常规路径四类痕迹。

排查 Linux 系统中隐藏在 /proc/net 下的网络后门,核心是识别“连接存在但进程缺失”的异常——即套接字(socket)在 /proc/net/tcp、/proc/net/udp 等文件中可见,却无法关联到任何真实运行中的进程。这种断联现象是 rootkit 或恶意模块剥离进程上下文后留下的典型破绽。
查监听端口有没有“孤儿”
正常服务监听端口时,必定有对应进程;若端口开着却查不到归属 PID,就高度可疑:
- 同时运行
ss -tunlp和netstat -tunlp,对比输出。若某个端口在ss中显示 PID/Program,但在netstat中只显示-或空白,说明netstat很可能被 LD_PRELOAD 劫持,ss更可信 - 重点关注非标准端口(如 31337、4444、5555)和高编号端口(>60000),尤其绑定在
0.0.0.0或公网 IP 上的监听项 - 对可疑端口执行
lsof -i :PORT,若返回can't identify protocol或完全无 PID 输出,需立即转向/proc/net手动验证
核对 TCP/UDP inode 是否“断联”
/proc/net/tcp 和 /proc/net/udp 每行末尾的 inode 是内核分配的唯一标识,恶意程序无法隐藏它,但可能让所属进程不可见:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 提取所有 TCP inode:
awk 'NR>1 {print $10}' /proc/net/tcp | sort -u - 遍历全部进程 fd 目录查找匹配链接:
for pid in /proc/[0-9]*; do [ -d "$pid/fd" ] && ls -l "$pid/fd/" 2>/dev/null | grep -q "socket:\[$inode\]" && echo "Found in $pid"; done - 若某个 inode 出现在
/proc/net/tcp中,却在所有/proc/*/fd/下都找不到对应软链接,就是强信号:连接活着,进程没了
盯紧 raw socket 和 packet 类型连接
普通服务极少使用原始套接字,而后门常依赖它绕过防火墙与常规监控:
- 执行
cat /proc/net/packet,关注type列为0002(PACKET_TX_RING)或0003(PACKET_RX_RING)的条目 - 检查
uid列是否为非 0(非 root 创建),再确认该 UID 对应的进程在ps aux中是否完全不可见 - 若
/proc/net/packet有记录,但lsof -i完全没列出任何进程使用 raw socket,就要立即深入调查
顺手扫一眼 unix socket 和 netlink
部分后门通过 Unix domain socket 或 netlink 与内核通信,不走网络协议栈,但也留有痕迹:
- 查看
/proc/net/unix的path列,留意非常规路径,如/tmp/.sock、/dev/shm/.ctl;再用find /tmp /dev/shm -name "*sock*" -o -name "*.ctl"反查对应文件是否存在 -
/proc/net/netlink正常情况下只有内核和极少数系统进程(如 systemd、NetworkManager)占用;若出现大量未知 UID 或重复 PID 条目,需警惕内核级 hook










