恶意 NuGet 包攻击 ASP.NET 开发人员以窃取登录凭据
针对 ASP.NET 开发人员的供应链攻击已经出现,该攻击涉及四个恶意 NuGet 包,旨在窃取登录凭据并在 Web 应用程序中植入持久后门。 这些软件包——NCryptYo、DOMOAuth2_、IRAOAuth2.0 和 SimpleWriter_——由用户名为“hamzazaheer”的威胁行为者于 2024 年 8 月 12 日至 21 日期间发布,它们累计下载量已超过 4,500 次。
针对 ASP.NET 开发人员的供应链攻击已经出现,该攻击涉及四个恶意 NuGet 包,旨在窃取登录凭据并在 Web 应用程序中植入持久后门。
这些软件包——NCryptYo、DOMOAuth2_、IRAOAuth2.0 和 SimpleWriter_——由用户名为“hamzazaheer”的威胁行为者于 2024 年 8 月 12 日至 21 日期间发布,它们累计下载量已超过 4,500 次。
攻击始于蓄意欺骗。NCryptYo 通过抢注广泛使用的 NCrypto 软件包的域名,将自己伪装成一个密码学库。
其 DLL 文件名 NCrypt.dll 模仿了 Windows 的原生 CNG 加密提供程序,其命名空间与 Microsoft 自己的加密 API 相对应。
关键在于,该软件包会在程序集加载时立即触发一个静态构造函数——在任何开发人员调用任何方法之前——在本地主机端口 7152 上静默部署一个隐藏的代理,该代理会将流量转发到外部的、由攻击者控制的服务器。
Socket.dev 的研究人员通过追踪所有四个软件包中的共享基础设施,确定了整个攻击活动。
他们注意到 DOMOAuth2_、IRAOAuth2.0 和 SimpleWriter_ 都包含一个字节相同的硬编码身份验证令牌,该令牌使用 GZip 压缩和自定义 Base64 替换进行编码,这证实了它们是由同一操作员构建的。
VirusTotal 分析显示,72 家安全厂商中只有 1 家标记了 NCrypt.dll,这表明混淆技术能够有效地使恶意软件躲避标准检测工具的检测。
一旦激活,DOMOAuth2_ 和 IRAOAuth2.0 会静默地收集 ASP.NET Identity 数据(用户帐户 ID、角色分配和权限映射),并通过本地代理将其路由到攻击者的服务器。
SimpleWriter_伪装成PDF转换工具,将攻击者控制的文件写入磁盘,并在不显示任何窗口的情况下运行隐藏进程。其真正目标不仅是开发人员的工作站,而是他们最终部署给最终用户的每一个生产应用程序。
JIT 钩子:核心感染机制
NCryptYo 使用一种称为 JIT 编译器劫持的技术来隐藏其真实行为,使其不被安全扫描器检测到。
.NET 运行时通常会在方法运行之前对其进行编译;此包用自己的钩子替换了该过程,因此恶意代码仅在执行时解密——使其对静态分析不可见。
该 DLL 受 .NET Reactor 混淆保护,并配有 14 天过期计时器和反调试检查。
内部嵌入了五个加密资源,其中最大的是一个 126 KB 的有效载荷,负责构建到攻击者外部服务器的隐藏代理隧道。
开发者在安装任何第三方库之前,应核实软件包名称、作者身份和下载历史记录,并注意不寻常的本地主机端口上的流量。
建议安全团队启用自动化 CI/CD 管道扫描,在任何软件包进入生产构建之前,检查是否存在混淆标记、静态构造函数滥用和嵌入式加密有效负载。



评论3次
最近这2年的新闻 关于恶意库 恶意模块包 次数越来越多了。
这个要是感染了影响还是挺大的
结论 恶意NuGet包通过供应链污染实现持久化后门部署,核心攻击链为:静态构造函数触发代理通道建立 → JIT编译器劫持规避静态检测 → 身份数据/文件写入窃取 → 生产环境横向扩散。攻击者利用.NET运行时特性(如程序集加载时构造函数执行顺序)实现零交互植入,需重点关注嵌入资源解密、跨进程注入和反调试逃逸机制。
L1攻击面识别(Source-Sink分析)
L2假设与验证
验证假设:
验证步骤:
L3边界/异常场景
L4防御反推与修复
System.Reflection.Emit和System.Runtime.CompilerServices相关API调用(JIT劫持特征)Census或自研hook检测工具),拦截非法JIT替换NCrypt.dll依赖项的Reflection.Emit功能:7152端口出站流量,结合YARA规则匹配硬编码令牌:最小可执行验证步骤
若需快速验证本地项目是否受影响:
NCrypt.dll的静态构造函数调用netstat -ano | findstr 7152确认异常端口占用SimpleWriter_包是否存在未声明的System.IO.File.WriteAllText调用路径