请稍侯

挖矿病毒处理排查 - 查找并修复常见的系统配置文件与参数

08 September 2024

挖矿病毒处理排查 - 查找并修复常见的系统配置文件与参数

入门姿势:

狡猾的猎手会在最出其不意的地方隐藏自己。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系统木马查杀