










dns-filter 进程反复自动重启,且你提到的定时任务 /etc/.dd/systemdev/cron-fetch 具有典型的恶意软件特征(隐藏目录、伪装名称、高频执行),这表明你的系统已经感染了持久化恶意软件(极可能是挖矿病毒或僵尸网络代理)。
仅仅删除定时任务和杀死进程是无效的,因为恶意软件通常拥有多重持久化机制(如 systemd 服务、init.d 脚本、动态链接库劫持等)。dns-filter 很可能是该恶意套件的一部分,用于拦截或篡改 DNS 请求以维持连接或进行流量劫持。
请按照以下步骤彻底清理:
1. 定位 dns-filter 的真实路径和所属用户
首先确定该进程的具体位置和启动者,这有助于找到其他残留文件。
bash
# 查看进程详细信息,包括完整路径
ps -ef | grep dns-filter
# 假设 PID 为 12345,查看其打开的文件和网络连接
ls -l /proc/12345/exe
netstat -antp | grep 12345
注意:如果 /proc/PID/exe 指向 /tmp、/var/tmp、/dev/shm 或 /etc/.dd 等非常规目录,确认为恶意文件。
2. 排查所有可能的持久化入口
攻击者不会只依赖 crontab。你需要检查以下所有位置:
A. Systemd 服务(最常见)
恶意软件常注册为系统服务以实现开机自启和崩溃重启。
bash
# 查找包含 "dns"、"filter"、"systemdev"、"dd" 或可疑名称的服务
systemctl list-units --type=service --all | grep -E "dns|filter|systemdev|dd"
# 检查具体服务文件内容
cat /etc/systemd/system/<可疑服务名>.service
cat /usr/lib/systemd/system/<可疑服务名>.service
# 如果发现可疑服务,禁用并删除
systemctl stop <可疑服务名>
systemctl disable <可疑服务名>
rm /etc/systemd/system/<可疑服务名>.service
systemctl daemon-reload
B. Init.d 和 RC 本地脚本
bash
# 检查启动脚本
ls -l /etc/init.d/ | grep -E "dns|filter|systemdev"
cat /etc/rc.local
cat /etc/rc.d/rc.local
C. 其他定时任务目录
除了 crontab,还要检查:
bash
# 检查 /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/ 等
ls -l /etc/cron.d/
grep -r "dns-filter\|cron-fetch\|\.dd" /etc/cron.*
D. SSH 公钥和 Bash 配置文件
攻击者可能通过修改 .bashrc 或 .profile 在用户登录时启动进程。
bash
# 检查 root 和当前用户的配置文件
cat ~/.bashrc
cat ~/.profile
cat /root/.bashrc
cat /root/.profile
# 检查 authorized_keys,移除未知的公钥
cat ~/.ssh/authorized_keys
E. 动态链接库劫持 (LD_PRELOAD)
检查环境变量是否被篡改,导致每次执行程序时加载恶意库。
bash
# 检查全局环境变量
cat /etc/environment
cat /etc/profile.d/*.sh
# 检查 ld.so.preload
cat /etc/ld.so.preload
如果 /etc/ld.so.preload 存在且包含可疑 .so 文件,这是高级持久化手段,需立即清空该文件并删除对应的 .so 文件。
3. 彻底清除恶意文件
停止进程:
bash
kill -9 <dns-filter的PID>
kill -9 <cron-fetch相关进程的PID>
删除恶意目录和文件:
bash
# 删除之前发现的恶意目录
rm -rf /etc/.dd
# 删除 dns-filter 可执行文件(根据步骤1找到的路径)
rm -f /path/to/dns-filter
# 清理临时目录中的可疑文件
rm -rf /tmp/*
rm -rf /var/tmp/*
清除 DNS 配置篡改:
恶意软件可能修改了 /etc/resolv.conf 或安装了本地 DNS 代理。
bash
# 检查 resolv.conf
cat /etc/resolv.conf
# 如果 nameserver 指向 127.0.0.1 或未知 IP,请恢复为正常的 DNS(如 8.8.8.8 或公司内网 DNS)
4. 深度排查与加固
由于该恶意软件表现出极强的 persistence(持久性),建议执行以下操作:
检查网络连接:
使用 ss -antp 或 netstat -antp 查看是否有异常的外联连接,特别是连接到国外 IP 或非标准端口的连接。结合你提供的威胁情报,注意排查与 msupdate.us、guikms.dns.army 等恶意域名的关联 IP 的连接。
全盘扫描:
使用 Linux 恶意软件扫描工具(如 ClamAV、LMD (Linux Malware Detect) 或 rkhunter)进行全盘扫描,查找其他潜在的后门或 Rootkit。
bash
# 示例:安装并使用 rkhunter
apt-get install rkhunter # 或 yum install rkhunter
rkhunter --check
修改所有密码:
感染期间,所有账户密码可能已泄露。请在清理完成后,立即修改 root 及所有用户密码,并检查 /etc/passwd 中是否有新增的异常特权账户(UID 为 0 的非 root 账户)。
审计日志:
检查 /var/log/secure (CentOS/RHEL) 或 /var/log/auth.log (Ubuntu/Debian),查找入侵初期的暴力破解记录或异常登录 IP,以便在防火墙上封禁。
5. 最终建议
如果经过上述清理后,dns-filter 或 cron-fetch 仍然复发,或者系统出现无法解释的行为(如文件被锁定、命令失效),最安全且彻底的做法是备份重要数据后重装操作系统。因为高级 Rootkit 可能内核级隐藏,常规手段难以彻底清除。
紧急处置总结:
kill 掉所有相关进程。
删除 /etc/.dd 目录和 dns-filter 二进制文件。
检查并删除恶意的 systemd 服务文件。
检查 /etc/ld.so.preload 和 .bashrc。
重置 DNS 配置。
修改所有密码并更新系统补丁。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。