暴露的 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调试线协议,旨在帮助开发者远程调试运行中的Java应用程序,允许检查线程、内存和执行流。

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

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

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

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

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

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

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

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

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

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

➡️

继续阅读