加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

一条命令迅速排查大量服务器是否存在Apache Log4j2漏洞风险

发布时间:2023-01-07 11:24:24 所属栏目:Linux 来源:
导读:  最近,搞IT的小伙伴们我想都知道Apache被爆出来的这个Log4j2远程代码执行漏洞,这个漏洞可以说影响范围极广,危害性非常强,所以大家一定要小心!Apache Log4j2是一个基于Java的日志记录工具,当程序将用户输入的
  最近,搞IT的小伙伴们我想都知道Apache被爆出来的这个Log4j2远程代码执行漏洞,这个漏洞可以说影响范围极广,危害性非常强,所以大家一定要小心!Apache Log4j2是一个基于Java的日志记录工具,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。那么,我们如何快速地排查我们运行着的服务器是否存在这个Log4j2漏洞风险呢?本人当时一出来这个漏洞告警第一时间就排查出来了,可以说一条命令就得出结论,排查出我们大量服务器是否存在Apache Log4j2远程代码执行漏洞!!!本篇就来介绍一下本人的排查思路,大家可以参看一下哈~
 
  最简单的思路是查看服务器是否存在Log4j组件,那么Linux运维工程师们一条命令如下:
 
  find / -name "*log4j-*.jar"
 
  我们查找有没有存在这个log4j包的路径就行了,如果有的话就深入分析自己运行的版本是否有影响,现在受影响的版本是Apache log4j2 2.0 - 2.14.1的版本。
 
  那么如果只有少量服务器还好linux漏洞,有大量成百上千的服务器一台台去查看不得累死,所以就得有批量执行查看的思路,本人这里就采用了Ansible这款批量自动化运维神器了,在Ansible主机上执行命令如下:
 
  ansible Linux -m command -a "find / -name '*log4j-*.jar'"
 
  这条命令后,被ansible管理的所有远程主机会全部执行find命令后搜索显示结果,这样我们是不是第一时间就可排查出来了。
 
  如果大家要确认服务器运行着的Log4j到底是否有影响,这里有个脚本可以排查,下载链接如下:,脚本原理是首先通过读取系统中所有打开的文件,来读取所有加载了的log4j的jar包,然后识别log4j 2.x的jar包文件名特征来识别出结果,如果没检测出来,则对其他jar包进行正则匹配 log4j-core,看是否有引用该jar包,如果显示 jar包路径,则说明存在该漏洞,没有则说明没有直接加载log4j对应jar包。
 
  以下运行结果表示不存在log4j2漏洞风险。
 
  以下运行结果表示存在log4j2漏洞风险,可以看到运行的log4j版本为2.13.3为受影响的版本。
 
  接下来我们通过Ansible批量执行这个shell脚本命令如下:
 
  ansible Linux -m script -a "/root/log4j-check.sh"
 
  最后,我们所有的服务器运行log4j情况是不是就一目了然地展现出来了,就可以迅速排查出log4j2漏洞风险了。
 
  大家学会了吗?其实最关键的一点就是我们要有个批量自动化运维的思路了,并且学会这种技能,当遇到这种紧急情况的时候,只要在控制端一条命令就可以迅速排查结果,本人之前也写了《Ansible自动化运维从入门到实战》这份专栏,有兴趣的小伙伴可以关注一下咯~
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!