centos exploit攻击者如何隐藏踪迹
导读:一、清理系统日志:抹除入侵痕迹的核心手段 系统日志是攻击者留下的“数字脚印”的主要载体,CentOS系统中的日志文件(如/var/log/auth.log记录登录信息、/var/log/messages记录系统消息、/var/log/htt...
一、清理系统日志:抹除入侵痕迹的核心手段
系统日志是攻击者留下的“数字脚印”的主要载体,CentOS系统中的日志文件(如/var/log/auth.log
记录登录信息、/var/log/messages
记录系统消息、/var/log/httpd/
记录Web服务日志)会详细记录攻击者的登录行为、命令执行、文件修改等活动。攻击者通常会通过以下方式清理日志:
- 使用journalctl命令:CentOS 7及以上版本使用systemd管理日志,
journalctl
是清理日志的核心工具。攻击者可通过journalctl --vacuum-time=3d
删除3天前的旧日志,或journalctl --vacuum-size=100M
将日志文件大小限制在100MB以内,保留最新日志以维持系统正常运行;还可通过journalctl --vacuum-by-service=ssh.service
针对性清理SSH服务的日志,消除登录痕迹。 - 手动删除日志文件:攻击者会直接删除
/var/log
目录下的特定日志文件(如/var/log/secure
记录SSH登录、/var/log/wtmp
记录用户登录历史),或使用rm -rf /var/log/*
清空整个日志目录。为避免系统因缺少日志无法排查问题,部分攻击者会先备份日志(如cp -r /var/log /var/log_backup
)再删除。 - 配置日志轮转:通过
logrotate
工具设置日志自动轮转策略(如/etc/logrotate.d/ssh
配置文件),将日志按天分割、保留7天并压缩旧日志(如daily rotate 7 compress missingok notifempty create 640 root adm
),使日志文件不会无限增长,同时隐藏早期的入侵痕迹。
二、木马化系统程序:隐藏进程与文件的关键方法
攻击者会修改系统关键程序(如ps
、ls
、netstat
),使其跳过自身进程或隐藏特定文件,避免被管理员通过常规命令发现:
- 修改ps命令:攻击者在
ps
命令的源代码中添加过滤逻辑(如if (sb.st_uid == 8765) continue;
),使ps
命令跳过UID为8765的进程(攻击者进程),从而隐藏恶意进程。修改后的ps
命令会正常显示其他进程,但不会暴露攻击者的活动。 - 修改ls命令:通过修改
ls
命令的file_interesting
函数(如if (strstr(next-> d_name, "...")) return 0;
),使ls
命令忽略名称包含特定字符串(如“…”)的文件或目录。攻击者可将恶意文件命名为“…”,从而隐藏在ls
命令的输出中。 - 修改netstat命令:攻击者会修改
netstat
命令的源代码,隐藏与C2服务器(攻击者控制的远程服务器)的连接(如过滤特定IP或端口),使管理员无法通过netstat -tulnp
查看异常网络连接。
三、隐藏进程与网络连接:规避实时检测的技术
攻击者通过特殊技术使恶意进程或网络连接不被常规工具检测到:
- 隐藏进程:使用
LD_PRELOAD
环境变量加载恶意库(如processhider.c
编译的libc2.28.so
),该库会拦截readdir
等系统调用,过滤掉特定进程(如攻击者进程)。攻击者需将恶意库路径添加到/etc/ld.so.preload
文件中(如echo /usr/local/lib/libc2.28.so > > /etc/ld.so.preload
),使系统在启动所有进程时自动加载该库,从而隐藏进程。清理时只需删除恶意库文件并清空/etc/ld.so.preload
即可恢复进程可见性。 - 隐藏网络连接:攻击者会使用反向隧道(如Metasploit的
reverse_tcp
payload),将本地端口连接到远程C2服务器的非标准端口(如8080、4444),并通过加密通信(如TLS)隐藏流量内容。此外,攻击者还会修改/proc/sys/net/ipv4/ip_forward
为1(echo 1 > /proc/sys/net/ipv4/ip_forward
),开启IP转发功能,将流量转发到其他主机,进一步隐藏自身位置。
四、IP地址欺骗与路由欺骗:隐藏真实来源的进阶手段
攻击者通过伪造IP地址或修改路由表,使流量看起来来自其他主机,规避源追踪:
- IP地址欺骗:攻击者伪造数据包的源IP地址(如目标主机的信任IP),伪装成被信任主机向目标发送请求(如SSH登录)。但这种方法需解决TCP序列号猜测问题(攻击者需猜测目标的TCP序列号才能建立连接),且无法收到目标的应答(因为数据包发送到了伪造的IP地址)。
- ARP欺骗:攻击者在局域网内发送虚假ARP响应(如
arp -s 目标IP 攻击者MAC
),将目标主机的ARP缓存表中的网关MAC地址替换为自己的MAC地址。这样,目标主机的所有流量都会发送到攻击者主机,攻击者可截获并篡改流量(如窃取密码、注入恶意代码)。为避免被发现,攻击者会开启IP转发(echo 1 > /proc/sys/net/ipv4/ip_forward
),将流量转发到真正的网关。 - 路由欺骗:攻击者通过RIP协议(自治系统内传播路由信息的协议)向路由器发送虚假路由信息(如“攻击者控制的路由器到目标网络的距离更近”),诱使路由器将目标网络的流量转发到攻击者主机。攻击者可截获、篡改或丢弃流量,进一步隐藏自身活动。
五、其他隐藏手段:增强隐蔽性的辅助方法
- 文件名诡计:攻击者使用不可打印字符(如
\x00
)命名文件(如“…”目录),或重命名恶意程序为系统命令(如“sh”),使ls
或ps
命令无法正常显示。例如,创建名为“…”的目录(mkdir ".."
),将恶意程序重命名为“sh”(mv malicious_program sh
),这样ls
命令不会显示异常目录,ps
命令不会显示异常进程。 - 修改系统调用:攻击者通过修改系统内核(如加载内核模块),拦截
open
、read
等系统调用,隐藏特定文件或进程。例如,内核模块会检查文件名,若为攻击者文件则返回“文件不存在”的错误,使ls
或cat
命令无法访问该文件。这种方法隐蔽性极高,但需要对内核有深入了解。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos exploit攻击者如何隐藏踪迹
本文地址: https://pptw.com/jishu/721102.html