0x01 前言
同事在群里发了下面这篇关于 npm 供应链投毒的文章,顺便学习一下 npm 相关的投毒手法
原文地址:https://thehackernews.com/2023/11/48-malicious-npm-packages-found.html
分析文章:https://blog.phylum.io/dozens-of-npm-packages-caught-attempting-to-deploy-reverse-shell/
0x02 文章概要
文中提到 hktalent 用户在 https://www.npmjs.com/~hktalent 上发布了39个包含投毒的攻击手法(截止目前投毒样本均已被删除)
攻击者通过利用 package.json
配置文件中的 scripts
来实现执行恶意 js 代码,其中恶意的 js 代码就是一段混淆了的反弹shell 代码
首先就是在 scripts 中通过 node 执行了 scripts 下的 js 文件
init.js 中指向了 rsh.js 可以看到 rsh.js 做了一些混淆的处理
首先是最外层的一些 unicode 编码
首先看到最上面是进行了受害机器的网络信息的收集,然后会进行本机环境变量信息的收集
接下来就是重头戏可以看到s1应该是投毒作者的核心利用代码,为了防止被分析还做了加密的处理
但是很显然解密函数就是 uS 所以我们只要运行一下解密函数结合得到下面的类似内容,可以看到代码就是一个用来做反弹shell的
0x03 复现
简单复现一下,模拟受害者的执行流,为了本地测试我把 host 改成 localhost 了
然后执行 npm install 触发恶意投毒包
我们只需要稍等片刻就可以等到投毒包的本机信息搜集的数据
解密一下可以发现就是上面 rsh.js 中环境变量收集的那个代码执行结果
之后就是正常的反弹shell了
0x04 说在最后
博客已经积了厚厚一层灰了。。先水一篇..