- 应用安全
- 渗透测试
- 红蓝对抗
【免费下载链接】LOLBAS
Living Off The Land Binaries And Scripts - (LOLBins and LOLScripts)
Gpup.exe 是 Notepad++ 安装目录updater子目录下随附的更新辅助程序,其具备"代执行其他程序"的能力,被 LOLBAS 项目收录为一条典型的第三方签名组件滥用型 LOLBin。本篇以仓库归档条目 Gpup.exe.md 为主干,结合其 YAML 源文件与项目收录标准,系统讲解该条目的命令用法、参数语义、条目数据结构与检测思路,读完即可掌握"通过 Gpup.exe 执行任意程序"这条技术点的原理与落地细节。
Gpup.exe 是什么:Notepad++ 更新器中的"意外"执行入口
Gpup.exe 是 Notepad++ 软件包自带的一个程序,默认安装路径为:
C:\Program Files (x86)\Notepad++\updater\gpup.exe从路径结构看,它位于 Notepad++ 的updater(更新器)目录下,属于随 Notepad++ 安装而分发的第三方可执行文件。LOLBAS 归档条目将其功能定义为Execute(执行),与仓库 CategoryList.md 中列出的功能分类(ADS、AWL bypass、Compile、Copy、Credentials、Download、Execute 等)中的Execute类别对应。
之所以值得收录,是因为它具备了超出"更新程序"本职之外的能力——可以代为启动另一个进程。这正符合 README.md 中描述的 LOLBAS 项目收录标准:"具备额外的、意料之外的功能(extra 'unexpected' functionality),且该功能对 APT 或红队实战有用"。不过需要注意:该条目收录于Archive-Old-Version归档目录(第三方软件二进制分区),并未出现在当前yml/主目录中,属于项目早期(2018 年)收录并保留下来的历史资源。
利用原理与命令实例:一行命令拉起 calc.exe
归档条目给出的核心命令非常简洁:
Gpup.exe -w whatever -e c:\Windows\System32\calc.exe其描述为:"Execute another command through gpup.exe (Notepad++ binary)"——即通过 Gpup.exe 代为执行另一个命令/程序。
从命令行为可以推断出两个关键参数的作用:
| 参数 | 示例值 | 语义(推断) |
|---|---|---|
-w | whatever | 接收一个工作类参数,示例中为任意字符串占位(可替换为任意内容) |
-e | c:\Windows\System32\calc.exe | 指定要代为执行的程序路径,是真正被拉起的目标 |
其中-e指向的路径可以被替换为任意可执行程序,例如系统自带工具或其他脚本宿主。示例中选择calc.exe(计算器)作为无害的验证目标,用于证明该二进制确实具备"代执行"能力;在实战场景中,-e参数完全可以指向攻击者需要的程序(如反弹 Shell、下载器或攻击载荷)。由于代执行的是完整程序路径,该技巧不依赖内存注入或反射加载,落地方式直接而稳定。
仓库条目结构:Markdown 与 YAML 双版本对照
Gpup.exe 在仓库中有两个记录文件,内容互为镜像:
- Markdown 版(面向人读的归档文档):Gpup.exe.md
- YAML 版(面向机器解析的源数据):Gpup.yml
YAML 版把条目拆解为标准的字段结构,与仓库模板 YML-Template.yml 及 NOTICE.md 中描述的字段规范一一对应:
--- Name: Gpup.exe Description: Execute Author: '' Created: 2018-05-25 Commands: - Command: Gpup.exe -w whatever -e c:\Windows\System32\calc.exe Description: Execute another command through gpup.exe (Notepad++ binary). Full_Path: - 'C:\Program Files (x86)\Notepad++\updater\gpup.exe ' Code_Sample: [] Detection: [] Resources: - https://twitter.com/pabraeken/status/997892519827558400 Acknowledgement: - Person: Pierre-Alexandre Braeken Handle: '@pabraeken'各字段含义如下:
Name/Description:LOL 资源名称与一句话功能描述(合法用途视角);Created:条目创建时间,此条为 2018-05-25;Commands:利用命令及行为描述,是整条记录的技术核心;Full_Path:该二进制常见的文件系统路径,用于蓝队定位与脚本化收集;Code_Sample/Detection:代码样例与检测规则链接,此条目均为空(见下文检测章节);Resources:原始发现来源链接(Twitter 帖子 status/997892519827558400);Acknowledgement:技术发现者署名——Pierre-Alexandre Braeken(@pabraeken)。
根据 CONTRIBUTING.md 的说明,yml/下的 YAML 源文件是项目"生成其他一切内容"的源头,归档区的 Markdown 与此 YAML 即同一信息的两种呈现形态。
使用前提与边界
从条目本身可以明确的使用前提如下:
- 目标主机需安装 Notepad++(32 位):默认完整路径位于
C:\Program Files (x86)\下,说明该程序随 32 位安装布局分发;未安装 Notepad++ 的主机自然不存在该入口; - 文件是否被篡改不影响代执行能力:
-e机制是更新程序自身提供的参数化启动能力,而非依赖 DLL 劫持或文件替换(与同归档中 AcroRd32、ROCCAT_Swarm 等"替换组件"类条目原理不同); - 权限要求:条目未标注特权要求,按执行型 LOLBin 的通用形态推断,通常在普通用户上下文即可触发,但实际可用性以运行环境为准。
值得说明的是,LOLBAS 项目文档(NOTICE.md)明确声明:项目不保证任何条目附带或引用的检测资源能提供完整、正确的防御覆盖,条目内容仅供教育与情报参考使用。因此上述推断结论在实战落地前,应在受控环境中自行验证。
检测与防御思路
该条目的 YAML 中Detection: []为空,即仓库层面没有为 Gpup.exe 提供现成的 Sigma/Elastic/Splunk 规则或 IOC。结合代执行行为的本质,以下检测思路属于通用实践推断,供防御侧参考:
- 进程创建命令行监控:关注
gpup.exe的启动命令行中是否出现-e参数,且其指向的路径不是 Notepad++ 更新流程常规涉及的进程;Windows 事件 4688(进程创建)配合命令行记录(CommandLineProcessCreation 策略)是捕捉该行为的最直接手段; - 进程树分析:
gpup.exe正常情况下是更新链的一部分,其子进程应为更新相关程序;一旦观察到其派生出calc.exe、cmd.exe、powershell.exe等非预期子进程,即为异常信号; - 路径白名单/应用控制:在允许 Notepad++ 安装的环境中,对
updater\gpup.exe可执行代启动的参数组合进行约束,或直接将该目录加入执行限制策略。
同类发现:同一研究者的"签名组件滥用"系列
Gpup.exe 并非孤例。归档区中由 Pierre-Alexandre Braeken(@pabraeken)在同一时期(2018 年 5 月)提交的多个条目,共同勾勒出"第三方签名软件组件被滥用"这一技法家族:
- Setup.exe.md:劫持 hpbcsiServiceMarshaller.exe 并运行 Setup.exe 拉起载荷;
- AcroRd32.exe.md:替换 Adobe Reader 的 RdrCEF.exe 以实现启动时执行;
- ROCCAT_Swarm.exe.md:替换 ROCCAT_Swarm_Monitor.exe 后随主程序启动执行。
与上述"替换组件"模式不同,Gpup.exe 的核心价值在于参数化代执行:无需替换或劫持任何文件,一条命令行即可借道完成执行,隐蔽性与落地便捷性都更高。这类"签名软件自带执行通道"的技法,正是 LOLBAS 项目持续追踪与归档的核心对象。
小结
Gpup.exe 条目虽短,却完整呈现了一个第三方签名组件的 LOLBin 利用模型:更新器类程序往往自带"启动其他程序"的能力,-w/-e参数组合使其成为任意命令的启动代理。通过本条目,读者既能掌握具体命令与参数语义,也能理解 LOLBAS 仓库"Markdown 归档 + YAML 结构化数据"的双轨条目组织方式,以及检测与防御层面的基本思路。实际评估该技巧时,请以受控环境验证为准,并遵循项目文档中的教育与授权使用边界。
- 应用安全
- 渗透测试
- 红蓝对抗
【免费下载链接】LOLBAS
Living Off The Land Binaries And Scripts - (LOLBins and LOLScripts)
相关推荐
LOLBAS 深度解析:Msbuild.exe 的 Living Off The Land 利用——编译执行、Logger DLL 注入与 RSP 命令行混淆
LOLBAS 深度解析:Msbuild.exe 的 Living Off The Land 利用——编译执行、Logger DLL 注入与 RSP 命令行混淆
应用安全渗透测试红蓝对抗LOLBAS 系列:Control.exe —— 利用控制面板程序执行 .cpl 与 ADS 隐藏代码的 Living Off The Land 技巧
LOLBAS 系列:Control.exe —— 利用控制面板程序执行 .cpl 与 ADS 隐藏代码的 Living Off The Land 技巧 导读 本
应用安全渗透测试红蓝对抗强力解析:PEGTL如何重新定义C++语法解析范式
强力解析:PEGTL如何重新定义C++语法解析范式 你是一个文章写手,你负责为开源项目写专业易懂的文章。今天要介绍的是PEGTL(Parsing Express
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考