挖矿病毒处理排查 - 查找并修复常见的系统配置文件与参数
挖矿病毒处理排查 - 查找并修复常见的系统配置文件与参数
入门姿势:
狡猾的猎手会在最出其不意的地方隐藏自己。Shell环境变量就是用户最容易忽视的地方。PATH/LD_LIBRARY_PATH/LD_PRELOAD/LD_AUDIT/alias
篡改可以实现用户执行命令时主动触发恶意代码执行。
PATH变量:
此变量决定用户执行程序时系统定位目标程序的方式,默认情况下,普通用户会包含/bin, /usr/bin, /usr/local/bin等内容,root用户额外有/sbin, /usr/sbin, /usr/local/sbin等内容。如果攻击者篡改PATH变量的内容,可能导致用户运行了自己预料之外的恶意程序。可以使用以下命令查看PATH当前内容:
# env | grep PATH
LD_LIBRARY_PATH/LD_PRELOAD/LD_AUDIT
等变量:
此类变量影响动态链接程序运行时链接的实际依赖代码,默认情况下,这些变量都应为空。如果攻击者篡改变量的内容,用户在运行程序的同时,不知不觉加载并运行恶意代码。可以用以下命令查看类似变量的内容:
# env | grep LD_
注意:配置文件/etc/ld.so.preload
可以实现类似的功能,检查时不应忽略。
alias
命令:
alias命令为shell内置命令,可以让用户改变一个命令运行的实际语义。攻击者可以利用此命令实现张冠李戴,让用户常见命令加载恶意代码执行,甚至隐藏或改变常见命令的结果。例如,以下命令可以让用户的ls命令永远返回空目录:
$ alias ls=echo
可以单独运行alias命令查看当前所有命令别名:
$ alias
系统环境变量通常受系统及用户目录配置文件的影响,系统配置文件位置有:
/etc/profile
/etc/profile.d
/etc/environment
/etc/bashrc
用户目录配置文件有:
~/.profile
~/.bashrc
~/.bash_profile
~/.bash_logout
~/.zshrc
如果用户使用X Window服务,配置文件还包括:
~/.xprofile
~/.xinitrc
注意:攻击者也可能直接在配置文件中植入恶意代码,用户登录时自动触发。而系统中可以写入恶意代码的配置文件也远远不止这些。
修改/etc/modprobe
或者/etc/modules
文件可以让系统加载恶意的内核模块代码;
修改/etc/initcpio
或者/etc/initramfs
文件可以让恶意代码写入到系统启动的早期内存镜像中;
同样,修改/etc/yum
或者/etc/apt
处的文件可能让你的系统升级操作替攻击者下载恶意代码;
甚至修改/etc/hosts
也可以让你经常访问的网站变为黑客控制的投毒站点。
查找详细的入侵痕迹
-
执行
last,lastlog
命令,查看最近登录的账户和登录时间,锁定异常账户。 -
执行
grep -i Accepted /var/log/secure
命令,查看远程登录成功的IP地址。 -
执行以下命令,查找计划任务。
cat /var/spool/cron/ cat /etc/cron.hourly cat /etc/crontab
-
执行
find / -ctime 1
通过文件状态最后修改时间来查找木马文件。 -
检查/etc/passwd和/etc/shadow文件,确认是否有可疑用户。
-
检查临时目录/tmp、/var/tmp、/dev/shm下的文件,这些目录权限是1777,容易被上传木马文件。
-
查看端口对外的服务日志是否存在异常,例如:tomcat、nginx。
-
执行
service --status-all | grep running
,查看当前运行的服务中是否存在异常。 -
执行
chkconfig --list | grep :on
,查看自启动的服务中是否存在异常。 -
执行
ls -lt /etc/init.d/ | head
,查看是否有异常启动脚本。
用常用木马查杀命令
命令 | 功能 |
---|---|
ps,top | 查看运行的进程和进程系统资源占用情况,查找异常进程。 |
pstree | 以树状图的形式显示进程间的关系。 |
lsof | 查看进程打开的文件、文件或目录被哪个进程占用、打开某个端口的进程、系统所有打开的端口等信息。 |
netstat | 查看系统监听的所有端口、网络连接情况,查找连接数过多的IP地址等信息。 |
iftop | 监控TCP连接实时网络流量,可分别分析出入流量并进行排序,查找出流量异常的IP地址。 |
nethogs | 监控每个进程使用的网络流量,并从高到低排序,方便查找出流量异常的进程。 |
strace | 追踪一个进程执行的系统调用,分析木马进程的运行情况。 |
strings | 输出文件中可打印的字符串,可用来分析木马程序。 |
常用排查命令:
# 检查系统环境变量
env | grep PATH
vim /etc/profile
# 检查目录
ll -at /tmp
ll -at /etc
ll -at /bin
ll -at /usr/sbin
# 检查crontab
vim /etc/crontab
crontab -e
参考:
挖矿病毒处置(Linux篇) ——从入门到放弃 记一次 挖矿程序入侵和处理
处理挖矿程序最佳实践
Linux系统木马查杀