5 分鐘復(fù)現(xiàn) log4J 漏洞,手把手實(shí)現(xiàn)

2021年12月10日凌晨前,網(wǎng)上曝出了 log4j 的核彈級(jí)漏洞,這種漏洞超級(jí)高危,操作簡(jiǎn)單,利用方便,適用范圍廣,可以直接任意代碼執(zhí)行,接管你的服務(wù)器。

此處思考曝光者凌晨曝光的原因,或許選擇凌晨曝光,想著無(wú)數(shù)工程師半夜起來緊急修復(fù),讓 TA 產(chǎn)生了變態(tài)的快感。
我知道你們是想看什么的,就是想看如何演示,不過可能要讓你失望了,本來我是發(fā)表了如何復(fù)現(xiàn)的介紹。

發(fā)表后立馬得到了不錯(cuò)的反饋,但是想到可能很多人不是來學(xué)習(xí)的,可能是真的會(huì)進(jìn)行不當(dāng)利用,所以還是決定刪掉了。真的只是研究下那就加個(gè)好友交個(gè)朋友吧,公開場(chǎng)合不適合介紹漏洞復(fù)現(xiàn)。
0x01. 漏洞情況
Apache Log4j2是一款優(yōu)秀的Java日志框架。由于 Apache Log4j2 某些功能存在遞歸解析功能,攻擊者可直接構(gòu)造惡意請(qǐng)求,觸發(fā)遠(yuǎn)程代碼執(zhí)行漏洞。漏洞利用無(wú)需特殊配置。
這里貼下漏洞公開級(jí)別。
| 漏洞細(xì)節(jié) | 漏洞PoC | 漏洞EXP | 在野利用 |
|---|---|---|---|
| 公開 | 公開 | 公開 | 存在 |
通過網(wǎng)上公開資料,這個(gè)漏洞的細(xì)節(jié)已經(jīng)完全公開,這里簡(jiǎn)單演示,讓大家了解漏洞情況,盡快安全升級(jí)。
根據(jù)網(wǎng)絡(luò)公開新聞,可以梳理出以下時(shí)間脈絡(luò):
2021年 11 月 24 日,阿里云安全團(tuán)隊(duì)向Apache官方報(bào)告了Apache Log4j2遠(yuǎn)程代碼執(zhí)行漏洞。
2021年12月06日,log4j2 發(fā)布修復(fù)包 log4j-2.15.0-rc1.jar
2021年12月10日,log4j2 發(fā)布修復(fù)包 log4j-2.15.0-rc2.jar
2021年12月10日,阿里云安全團(tuán)隊(duì)發(fā)現(xiàn) Apache Log4j 2.15.0-rc1 版本存在漏洞繞過,請(qǐng)及時(shí)更新至 Apache Log4j 2.15.0-rc2 版本。
實(shí)際受影響范圍如下:
Apache Log4j 2.x < 2.15.0-rc2
0x02. 安全建議
排查應(yīng)用是否引入了 Apache log4j-core Jar 包,若存在依賴引入,且在受影響版本范圍內(nèi),則可能存在漏洞影響。請(qǐng)盡快升級(jí)Apache Log4j2所有相關(guān)應(yīng)用到最新的 log4j-2.15.0-rc2 版本,地址 https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
升級(jí)已知受影響的應(yīng)用及組件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
臨時(shí)緩解方案。可升級(jí)jdk版本至6u211 / 7u201 / 8u191 / 11.0.1以上,可以在一定程度上限制JNDI等漏洞利用方式。對(duì)于大于2.10版本的Log4j,可設(shè)置 log4j2.formatMsgNoLookups 為 True,或者將 JndiLookup 類從 classpath 中去除,例如 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
0x03. 漏洞復(fù)現(xiàn)
以下測(cè)試,只做學(xué)習(xí)分析之用,不要于其他用途!單機(jī)演示,所有地址都是 127.0.0.1。
本來不準(zhǔn)備畫圖的,但是很多同學(xué)以為注入漏洞就是簡(jiǎn)單的運(yùn)行網(wǎng)上的 ${jndi:ldap://127.0.0.1:1389/Log4jTest} ,我覺得還是有必要畫個(gè)圖簡(jiǎn)單說明一下, 一個(gè)簡(jiǎn)單的攻擊鏈路步驟圖,畫的匆忙見諒。

3.1. 環(huán)境模擬 - 受害者小白服務(wù)
已刪除,學(xué)習(xí)交流可以加微信。
3.2. 環(huán)境模擬 - 攻擊者服務(wù)
已刪除。
3.3. 測(cè)試
受害者小白服務(wù)再次運(yùn)行,原本只簡(jiǎn)單打印一行日志,現(xiàn)在多了一行說明信息。
無(wú)害測(cè)試,沒有攻擊性,linux/mac 創(chuàng)建文本:xxxyyyzzz.txt;windows 彈出計(jì)算器。最后求關(guān)注,公眾號(hào):程序猿阿朗
20:21:57.780?[main]?ERROR?Log4j2?-?params: xxx
同時(shí)運(yùn)行項(xiàng)目目錄多了一個(gè)文件 xxxyyyzzz.txt

如果你是在 windows 上運(yùn)行測(cè)試,那么會(huì)彈出一個(gè)計(jì)算器。
一如既往,文章中的代碼存放在:github.com/niumoo/lab-notes
推薦閱讀:
歡迎關(guān)注微信公眾號(hào):互聯(lián)網(wǎng)全棧架構(gòu),收取更多有價(jià)值的信息。
