之找到了自己服务器上的病毒

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了之找到了自己服务器上的病毒相关的知识,希望对你有一定的参考价值。

前言概述

处理linux应急响应主要分为4个环节:
识别现象->清除病毒->闭环兜底->系统加固

前言概述

本文是根据其他复现文章复现检查了一下自己的服务器,最终发现了自己的云服务器下载了被植入后门的python版本,已清除。仅供学习参考:原文连接

一、识别现象

1.1排查alias异常别名

通过alias查看是否存在异常的别名,查看了一下,我的服务器正常

异常举例:
如果发现别名被改成:print ""(输出为空)等等奇怪的现象,此时就需要将修改后的所有别名取消,删除别名的命令:unalias,如果想删除所有的别名,直接使用unalias -a即可,不过要谨慎使用,避免你设置的所有别名一下子都被清除了,自己还得一个一个重新设置回来。

这里有个小提示:别名可能被永久修改(意思就是每次重启服务器,别名都被修改一遍),所以为了防止这种情况,所以我们要一次解决到位,去进一步查

永久修改别名的文件在:
/home/用户名/.bashrc
/root/.bashrc
/etc/.bashrc针对所有用户生效
~/.bashrc是针对当前用户生效看是否存在这种情况!

接下来我们通过上面的命令检查一下,我的还是一切正常,就不放图了
异常举例:
下图左上角可以看到,通过cat /home/zyr/.bashrc发现,文件中引用了source var/tmp/.SQL-Unix/.SQL/.db,所以配置这个别名文件应该在这个·.db文件中,接下来去删除即可。同理,查看/root/.bashrc目录也能发现通过source调用了其他文件,跟着去删除。

删除别名文件
rm -rf /usr/.SQL-Unix/.SQL/.db
rm -rf /var/tmp/.SQL-Unix/.SQL/.db
删除/root/.bashrc、 /home/zyr/.bashrc文件
rm -rf /usr/.SQL-Unix/.SQL/.db
rm -rf /var/tmp/.SQL-Unix/.SQL/.db

1.2系统进程异常排查

· 通过top命令查看一下cpu占用(查看服务器cpu使用率发现 cpu使用率没有特别高的,没有接近或者超过100%的进程)

· 如果看到了可疑进程,可以使用lsof -p pid 查看进程打开的文件,或查看ls -l /proc/pid/exe 指向的文件。补充一个/proc/pid/exe的小知识:利用/proc/pid/exe恢复被删除的文件

·使用ps -aux枚举进程命令行(病毒一般都携带可疑的命令行,当你发现命令行中带有url等奇怪的字符串时,就要注意了,它很可能是个病毒)
正常:

·使用nvidia -smi查看服务器gpu使用率,查看gpu使用率有没有特别高的。(该命令只能在真实服务器使用,虚拟机中不可使用)

二、清除病毒

2.1恶意病毒定位

挖矿病毒一般都会有定时任务,为了防止服务器关闭之后或者病毒程序被杀掉进程之后,挖矿病毒不再运行,所以接下来我们去查看一下服务器上的定时任务:sudo crontab -l
异常举例:
发现一个未知文件,查看内容发现一个.可疑域名:eth-asia1.nanopool.org

通过微步社区识别,确认是一个矿池:

使用命令stat 文件名查看文件的创建时间,进行时间范围定位;然后再查看另一个定时文件:placi,发现该文件与文件.b4nd1d0创建时间相同,存在一定联系!

2.2清理病毒和定时任务

删除病毒文件,删除定时任务

rm -rf .b4nd1d0
rm -rf placi

cd /var/spool/cron
sudo rm -rf root
sudo rm -rf zyr

三、闭环兜底

Linux下的病毒持久化驻留方式相比于Windows较少,主要以4种方式:定时任务、服务、系统文件劫持、守护进程。

3.1检查定时任务是否清理干净

使用命令reboot重启服务检查病毒是否清理干净,因为有的病毒会更改启动项,进行后门自启。重启服务器之后,检查 /var/spool/cron/crontabs 目录正常,没有病毒的痕迹

3.2是否存在SSH后门

使用命令:netstat -anpt排查是否存在ssh软链接后门,经过检查,发现被PID为2612的程序建立了大量连接。

将上诉IP放到微步社区查询,确认IP为恶意IP


使用ls -l /proc/PID/exe命令定位到进程所在程序,初步判断我是安装了植入后门的python版本

河马查杀工具扫了一下,确实有可疑文件

删除可疑病毒文件,并重启计算机

rm -rf /www/server/panel/pyenv/bin/python3.7m
rm -rf /www/server/panel/pyenv/bin/python3.7
rm -rf /www/server/panel/pyenv/lib/libpython3.7m.a
rm -rf /www/server/panel/pyenv/lib/python3.7/config-3.7m-x86_64-linux-gnu/libpython3.7m.a

3.3是否存在后门账号

使用命令:awk -F: '$3==0 print$1' /etc/passwd
使用命令:awk '/\\$1|\\$6/print $1' /etc/shadow

删除后门账号

sudo userdel -rf username #强制删除该账户以及/home/username

加上-r可以删除/home/路径下的用户文件夹,否则不能

3.4查看是否有SSH公钥后门

异常举例:
首先查看 /home/目录下的账户,发现只有一个zyr,查看ssh的公钥文件的最近更改时间与挖矿时间按事件相同,确实存在ssh公钥后门!!!

删除公钥后门

rm -f authorized_keys

3.5后门检测工具推荐

Chkrootkit是一种Linux后门入侵检测工具,可以用来检测rootkit后门的工具,可以很好的检测到rootkit程序。

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense
./chkrootkit

rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。

Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvf rkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c

四、系统加固

4.1溯源分析

根据文件创建时间推测入侵事件为2022-02-15,然后去/var/log排查安全日志,通过以下一些命令再结合用户的登录情况和文件创建事件,总结分析:服务器是被ssh爆破出wxiaoge、zyr账户之后入侵并植入挖矿病毒与ssh公钥后门。

统计登录失败的记录命令
grep -o "Failed password" /var/log/auth* |uniq -c

查询被爆破的用户名都有哪些以及被爆破的次数
grep "Failed password" /var/log/auth*|perl -e 'while($_=<>) /for(.*?) from/; print "$1\\n";'|uniq -c|sort -nr

查询用户最近登录情况
grep "Accepted " /var/log/auth* | awk 'print $1,$2,$3,$9,$11'

查看 xxx账户的爆破时间段
grep  "Failed password" /var/log/auth*|grep xxx账号

4.2防护检查

Linux平台下90%的病毒是通过网络传播感染的,大部分原因也是因为Web安全防护不够。Linux平台下的恶意软件威胁以僵尸网络蠕虫和挖矿病毒为主,由于Linux大多作为服务器暴露在公网,且Web应用的漏洞层出不穷,所以很容易被大范围入侵。

·修改ssh弱口令
·添加命令审计(为历史的命令增加登录的IP地址、执行命令时间等信息)
·及时打补丁

以上是关于之找到了自己服务器上的病毒的主要内容,如果未能解决你的问题,请参考以下文章

准时下班系列!Access合集之第5集—闭环的Access系统开发流程演示

记一次WebLogic中病毒事件

Openresty的开发闭环初探 | 岂安低调分享

ORACLE的dblink突然连不上的问题分析

如何识别真Microsoft服务与非Microsoft服务来定位病毒自己的服务

中勒索病毒后的注意事项达康勒索病毒解密中心提供--第一弹开博