首先检查DNS解析是否异常,通过对比dig或nslookup结果、查看/etc/resolv.conf配置及使用tcpdump监控DNS流量;接着用netstat -tulnp或ss -tulnp排查异常监听端口和可疑外连,结合arp -a检测ARP欺骗;再通过ps aux分析高资源占用或伪装进程,检查crontab定时任务及/etc/cron.d/目录防持久化后门;最后利用AIDE等工具验证系统文件完整性,防止关键命令被替换。定期执行上述步骤可有效发现网络劫持。

Linux系统下检测网络是否被劫持,核心在于监控异常的网络行为和关键服务。重点要检查DNS解析、网络连接、路由表以及是否存在可疑进程。以下是具体排查方法。
检查DNS解析是否被劫持
DNS劫持是最常见的网络劫持形式,攻击者会将域名解析到恶意IP。可以通过以下方式检测:
-
对比解析结果:使用
dig或nslookup命令查询关键域名(如 google.com),并将结果与可信网络环境下的解析结果进行对比。如果IP地址明显不同,则可能被劫持。
- 检查resolv.conf文件:查看
/etc/resolv.conf文件,确认其中配置的DNS服务器是否是已知且可信的。攻击者可能会篡改此文件,将其指向恶意DNS服务器。执行cat /etc/resolv.conf即可查看。 -
监控DNS流量:使用
tcpdump抓包分析,例如运行sudo tcpdump -i any port 53,观察DNS请求和响应的详细信息,查找异常的解析记录。
检查异常的网络连接和监听端口
黑客入侵后常会建立反向Shell或开启后门监听端口,需要仔细排查。
-
列出所有网络连接:使用
netstat -tulnp或ss -tulnp命令,查看所有正在监听的TCP/UDP端口及其对应的进程。重点关注非标准端口(如60000以上)或不熟悉的程序。 - 识别可疑外连:在上述命令输出中,特别留意那些主动向外网IP发起连接的进程。这些很可能是木马或后门程序在“回连”攻击者的服务器。
-
检查ARP缓存:执行
arp -a,查看局域网内IP与MAC地址的映射关系。如果发现网关的MAC地址与正常情况不符,可能遭遇了ARP欺骗攻击。
检查系统进程和计划任务
网络劫持往往由系统层面的入侵导致,因此必须检查是否有恶意代码在运行。
-
查看活跃进程:运行
ps aux,按CPU或内存排序(如ps aux --sort=-%cpu),寻找占用资源异常高或名称伪装成系统进程(如./kthreadds)的可疑程序。 -
检查定时任务:使用
crontab -l查看当前用户的计划任务,并检查/etc/crontab和/etc/cron.d/目录。攻击者常利用定时任务来持久化后门或定期执行恶意脚本。 -
验证系统文件完整性:如果之前部署过AIDE或Tripwire等工具,运行一次检查,可以快速发现被替换的关键系统文件(如
/bin/ps,/usr/bin/netstat),因为这些文件一旦被替换,其输出结果就不可信了。










