在 Linux 系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。
一、/etc 目录
关键文件有:
/etc/passwd 和 /etc/shadow:添加特权用户或修改密码。
/etc/hosts:劫持域名解析(用于指向指向恶意 IP)。
/etc/crontab 或 /etc/cron.*:添加定时任务。
/etc/ld.so.preload:注入恶意动态链接库(劫持进程执行)。※这是 Linux 系统中动态链接器(如 ld.so 或 ld-linux.so)的配置文件,用于指定系统范围内预加载的共享库。
隐蔽手段:
使用 touch -r 将恶意文件的时间戳修改为与系统文件一致。
在 /etc/passwd 中创建 UID 0 的隐藏用户。
利用 cron 实现持久化,定期执行恶意脚本。
二、/bin、/sbin、/usr/bin 等二进制目录
关键文件有:
各种系统命令(如 ls、ps、netstat、sshd)可能被替换为恶意版本。
隐蔽手段:
Rootkit,通过劫持 ls、ps 等命令隐藏恶意进程或文件
替换 ssh、telnet 等工具以记录用户输入的密码。
预编译的恶意二进制文件覆盖原文件。
利用动态链接库劫持修改程序行为。
三、/tmp 和 /dev/shm
这两个目录存放临时文件或共享内存,权限宽松,常用于存储攻击工具或恶意脚本。
隐蔽手段:
使用随机字符串命名文件伪装成系统文件。
内存驻留在 /dev/shm 中,运行无文件恶意程序,重启后消失。
利用 wget 或 curl 下载远程脚本并执行(如挖矿木马)。
四、用户主目录(如 /home/[user])
关键文件有:
.bashrc、.profile:添加恶意命令实现登录时触发。
.ssh/authorized_keys:注入公钥以获取 SSH 无密码访问权限。
.viminfo、.bash_history:篡改或删除操作历史。
隐蔽手段:
以 . 开头的配置文件。
使用 chattr + i 防止文件被修改或删除。
通过弱口令或 SSH 密钥泄露植入后门。
五、/var 目录
关键文件有:
/var/log:删除或篡改日志文件,掩盖攻击痕迹。
/var/www/html:在Web根目录植入Webshell(如php后门)。
隐蔽手段:
删除特定日志条目。
将恶意代码嵌入图片文件中(如著名的图片马)。
六、/lib 和 /lib64
关键文件有:
系统动态链接库(如 libc.so),劫持后可实现全局代码注入。
隐蔽手段:
替换系统库文件并配合 ld.so.preload 加载恶意代码。
重定向库文件路径到恶意版本。
七、/proc 文件系统
通过 /proc/[pid]/ 操控进程内存。
隐蔽手段:
修改进程名或PID以躲避检测。
加载恶意内核模块,隐藏进程、端口等。
关键目录防御建议
1、使用 AIDE、Tripwire 或 auditd 检测关键文件完整性变化。
2、限制 /etc、/bin 等关键目录的写权限,禁用不必要的SUID/SGID。
3、将日志发送到远程服务器(避免本地篡改)。随后我会更新一篇实时备份日志的文章。
4、修补系统和应用漏洞,减少攻击面。
攻击者通常会结合多种手法掩盖行踪,防御需从监控、权限控制和纵深防护多维度入手。