暴露的 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端口的安全配置。
➡️