暴露的 JDWP 在野外被利用:当调试端口被留下开放时会发生什么

💡 原文中文,约8900字,阅读约需22分钟。
📝

内容提要

Wiz研究团队发现,攻击者利用暴露的Java调试线协议(JDWP)接口,成功实现远程代码执行并部署挖矿恶意软件。由于JDWP未实现身份验证,成为高风险入口。攻击者通过扫描JDWP端口,执行命令并建立持久化机制,隐藏挖矿活动。

🎯

关键要点

  • Wiz研究团队发现攻击者利用暴露的JDWP接口实现远程代码执行并部署挖矿恶意软件。

  • JDWP未实现身份验证,成为高风险入口,攻击者通过扫描JDWP端口执行命令并建立持久化机制。

  • 攻击者使用定制的XMRig载荷,避免使用可疑命令行参数,隐蔽挖矿活动。

  • JDWP是Java平台的标准功能,允许远程调试,但默认未实现身份验证,暴露于互联网风险极高。

  • 在过去90天内,有超过6000个独立IP地址扫描JDWP端点,表明其是高度集中的攻击目标。

  • 攻击者通过JDWP-Handshake请求确认接口活跃,随后实现远程代码执行。

  • 攻击者使用Java字符串创建系统命令,下载并执行恶意脚本logservice.sh。

  • logservice.sh脚本用于杀死竞争的挖矿进程,下载并执行XMRig挖矿程序,设置持久化机制。

  • 攻击者通过传统启动脚本、systemd服务、cron作业和shell配置文件实现持久化。

  • 攻击者伪装恶意载荷为合法的logrotate工具,以避免引起怀疑。

  • Wiz提供IoC(指标)以帮助检测和防御此类攻击。

🔎

延伸解读

JDWP的安全风险

JDWP作为Java调试的标准功能,默认未实现身份验证,暴露在互联网中极易被攻击者利用。开发者在使用JDWP时需特别注意其安全配置,避免在生产环境中开启调试端口,以防止远程代码执行等安全事件的发生。

攻击者的隐蔽策略

攻击者通过定制的XMRig载荷和伪装成合法工具的方式,成功隐藏了挖矿活动。这种隐蔽性使得检测和响应变得更加困难,企业在防御时应关注异常流量和系统行为,以及时发现潜在的安全威胁。

持久化机制的复杂性

攻击者利用多种持久化机制,如systemd服务和cron作业,确保恶意软件在系统重启后依然存在。这种复杂的持久化策略使得清除恶意软件变得更加棘手,企业应定期审查系统配置和启动项,以降低被攻击的风险。

延伸问答

JDWP是什么,它的主要功能是什么?

JDWP是Java调试线协议,旨在帮助开发者远程调试运行中的Java应用程序,允许检查线程、内存和执行流。

攻击者如何利用暴露的JDWP接口进行攻击?

攻击者通过扫描开放的JDWP端口,发送JDWP-Handshake请求确认接口活跃,然后实现远程代码执行,注入并执行任意命令。

暴露的JDWP接口有哪些安全风险?

JDWP默认未实现身份验证,暴露于互联网后成为高风险入口,攻击者可以完全控制Java进程,导致远程代码执行漏洞。

攻击者是如何隐藏挖矿活动的?

攻击者使用定制的XMRig载荷,伪装成合法的logrotate工具,并通过矿池代理隐藏加密货币钱包地址,避免被追踪。

Wiz研究团队在这次事件中发现了什么?

Wiz研究团队发现攻击者利用暴露的JDWP接口实现远程代码执行,并部署了挖矿恶意软件和多种持久化机制。

如何检测和防御JDWP相关的攻击?

Wiz提供了IoC(指标)以帮助检测和防御此类攻击,用户应定期检查JDWP端口的安全配置。

🏷️

标签

➡️

继续阅读