- 应用安全
- 渗透测试
- 红蓝对抗
【免费下载链接】LOLBAS
Living Off The Land Binaries And Scripts - (LOLBins and LOLScripts)
导读
本文以 LOLBAS 仓库旧版存档(Archive-Old-Version)中记录的 Notes.exe.md 条目为核心,系统讲解如何将 IBM Lotus Notes 客户端自带的notes.exe(及其姊妹程序nlnotes.exe)滥用于"Living Off The Land"(LOL)攻击场景——在不落盘任何自定义工具的情况下,仅凭微软/厂商签名二进制自身的能力拉起 PowerShell 并执行任意命令。读完本文,你将掌握该 LOLBin 的完整命令形态、参数含义、可观测的检测特征,以及它在 LOLBAS 项目 YML 数据结构中的记录方式,可用于红队武器库建设与蓝队检测规则开发。
一、LOLBAS 项目背景:什么是 LOLBin
LOLBAS(Living Off The Land Binaries And Scripts)项目的目标(见 README.md)是系统化记录每一个可被用于"Living Off The Land"技术的二进制文件、脚本与库。所谓"Land",指的是目标主机上已经存在的、由微软签名的可信文件(原生系统自带或来自微软官方下载),它们具有超出设计用途的"意外功能",例如:
- 执行任意代码或透传执行其他未签名程序/脚本;
- 编译代码、文件下载/上传/复制;
- 持久化、UAC 绕过、凭据窃取、进程内存转储、日志规避与篡改等。
项目收录条目遵循明确标准:必须是微软签名文件,且具备对 APT 或红队有用的额外功能(详见 README.md 的 Criteria 一节)。notes.exe正是这样的典型——它是 IBM 官方签名的客户端程序,却可以被用来启动 PowerShell,因而被收录进项目,功能分类(Functions)为Execute(执行)。
二、Notes.exe 是什么:IBM Lotus Notes 客户端的可执行文件
notes.exe是 IBM Lotus Notes(即 IBM Notes)桌面客户端的主可执行文件,默认安装路径为:
C:\Program Files (x86)\IBM\Lotus\Notes\notes.exeLotus Notes 是企业环境中非常常见的邮件与协作客户端,因此该程序在大量内网主机上天然存在、由厂商签名、常被放行,这使它成为"Living Off The Land"的优质载体:攻击者无需上传工具,即可借助一款合法的办公软件完成代码执行。
仓库中该条目的核心记录如下(源自 Notes.exe.md):
- Functions(功能):Execute(执行)
- 完整命令:
Notes.exe "=N:\Lotus\Notes\Data\notes.ini" -Command if((Get-ExecutionPolicy) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass } - 功能描述:Run PowerShell via LotusNotes(通过 Lotus Notes 运行 PowerShell)
- 致谢:Daniel Bohannon(@danielhbohannon)
三、命令逐段解析:notes.exe 如何拉起 PowerShell
将上述命令拆解为四个组成部分,可以清楚看出它的运行逻辑:
Notes.exe "=N:\Lotus\Notes\Data\notes.ini" -Command if((Get-ExecutionPolicy) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass }| 片段 | 含义 |
|---|---|
Notes.exe | IBM Lotus Notes 客户端主程序,作为合法载体进程 |
"=N:\Lotus\Notes\Data\notes.ini" | 以=前缀指定启动时使用的 notes.ini 配置文件路径,即N:\Lotus\Notes\Data\notes.ini(Notes 支持以=路径形式显式指定 ini 文件) |
-Command | PowerShell 的命令行参数,其后内容被作为 PowerShell 命令执行 |
if((Get-ExecutionPolicy) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass } | 内联 PowerShell 逻辑:若当前执行策略不是AllSigned,则将当前进程作用域的 ExecutionPolicy 临时设为Bypass |
从命令形态可以推断其底层机制:notes.exe在启动过程中会解析并透传-Command之后的参数给 PowerShell,从而"借壳"执行任意 PowerShell 命令。命令中的 PowerShell 片段本身就是一个经典的策略自解除(Policy Bypass)手法——Get-ExecutionPolicy检查当前执行策略,若非AllSigned则通过Set-ExecutionPolicy -Scope Process Bypass将仅对当前进程生效的执行策略切换为Bypass,从而允许后续加载未签名脚本或执行受限操作,且无需管理员权限、不留全局配置改动。
这一"先解除策略、再执行载荷"的组合在实际攻击中通常被进一步扩展,例如将-Command替换为下载执行(IEX)一段远程 PowerShell 载荷。需要强调的是:原文档给出的是最小可复现示例,其核心价值在于证明了 notes.exe 具备将参数透传给 PowerShell 的能力,攻击者只需替换-Command后面的载荷即可实现任意代码执行。
四、姊妹程序:NLNOTES.EXE 的变体用法
在 Nlnotes.exe.md 中,仓库还记录了同族的第二个 LOLBin——NLNOTES.EXE。它是 Lotus Notes 的另一个可执行文件(常见于 Notes 相关组件),命令形态几乎一致,仅在参数上多了一个/authenticate:
NLNOTES.EXE /authenticate "=N:\Lotus\Notes\Data\notes.ini" -Command if((Get-ExecutionPolicy ) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass }记录路径为:
C:\Program Files (x86)\IBM\Lotus\Notes\Notes.exe两者的对比可以总结为:
| 维度 | Notes.exe | NLNOTES.EXE |
|---|---|---|
| 命令前缀 | Notes.exe | NLNOTES.EXE /authenticate |
| ini 指定方式 | "=N:\Lotus\Notes\Data\notes.ini" | "=N:\Lotus\Notes\Data\notes.ini" |
| PowerShell 透传 | -Command ... | -Command ... |
| 功能分类 | Execute | Execute |
| 致谢 | Daniel Bohannon | Daniel Bohannon |
对于红队而言,这意味着同一个滥用手法拥有两个可互换的合法载体:当环境中只有其中之一(或监控规则只覆盖其一)时,攻击者可以切换变体规避针对单一进程名的检测。
五、仓库中的结构化记录:Notes.yml 与 YML 规范
在旧版存档中,该条目的结构化数据保存在 YML 文件中(Notes.yml 与 Nlnotes.yml),字段与 Markdown 文档一一对应:
--- Name: Notes.exe Description: Execute Author: '' Created: 2018-05-25 Commands: - Command: Notes.exe "=N:\Lotus\Notes\Data\notes.ini" -Command if((Get-ExecutionPolicy) -ne AllSigned) { Set-ExecutionPolicy -Scope Process Bypass } Description: Run PowerShell via LotusNotes. Full_Path: - C:\Program Files (x86)\IBM\Lotus\Notes\notes.exe Code_Sample: [] Detection: [] Resources: - https://gist.github.com/danielbohannon/50ec800e92a888b7d45486e5733c359f - https://twitter.com/HanseSecure/status/995578436059127808 Acknowledgement: - Person: Daniel Bohannon Handle: '@danielhbohannon'关于 YML 格式,需要注意两点:
- 该项目主分支(YML-Template.yml)的标准条目包含更丰富的字段:
Commands下的每条命令可附带Usecase(用例)、Category(功能类别,取值见 CategoryList.md,如 Execute、Download、UAC bypass 等)、Privileges、MitreID(如 T1055)、OperatingSystem(适用系统版本)以及可选的Tags;此外还有Code_Sample、Detection(含 IOC、Sigma、Elastic、Splunk 等检测规则字段)和Acknowledgement。旧版存档中的 Notes.yml 是精简形态,仅保留了Command与Description两个核心字段,Detection与Code_Sample留空。 - 按 CONTRIBUTING.md 的说明,LOLBAS 项目以
yml/目录下的 YML 文件为唯一数据源,其余一切(含前端展示)均由 YML 生成;分类字段必须取自 CategoryList.md 以保证 Web 门户的正常工作。
六、检测与防御:如何发现 notes.exe 的异常行为
结合命令形态与进程行为,蓝队可以从以下几个可观测层面建立检测规则(以下 IOC 均基于该命令的可观察特征推断,可作为检测规则设计的起点):
- 进程父子关系异常:
notes.exe/nlnotes.exe启动后派生出powershell.exe子进程。正常情况下 Lotus Notes 客户端不会主动拉起 PowerShell,这是最直接的强信号。 - 命令行特征组合:notes.exe 的命令行中同时出现
notes.ini路径与-Command参数——正常启动 Notes 客户端不需要传递-Command,二者的组合几乎可以断定是滥用行为。 - 策略解除关键字:命令行内包含
Get-ExecutionPolicy、Set-ExecutionPolicy、Bypass、AllSigned等 PowerShell 策略操纵关键字,与 YML-Template.yml 中Detection字段建议的 IOC 记录方式对应。 - 配置文件路径异常:命令中指定的是网络共享路径(
N:\...),表明 ini 文件可能由攻击者远程控制,而非本地默认配置。
建议的工程化检测手段包括:EDR/SIEM 中采集进程创建事件(如 Sysmon Event ID 1)并关联父子进程链;对notes.exe、nlnotes.exe的进程树与命令行做白名单化放行(仅允许无-Command的常规启动);在 PowerShell 侧启用 Script Block Logging 与 Constrained Language Mode 作为纵深防御。上述思路与该 LOLBin 条目本身在Detection字段留空形成呼应——该项目鼓励社区补充 IOC、Sigma 与 Splunk 规则(见 YML-Template.yml),本文的检测清单可作为补充方向。
七、总结
notes.exe与nlnotes.exe是"Living Off The Land"思想的一个典型注脚:一款企业常见的办公客户端,因为其对-Command参数的透传行为,成了攻击者手中无需落地、难以察觉的 PowerShell 执行跳板。通过 LOLBAS 仓库 Archive-Old-Version/OtherBinaries/Notes.exe.md 与 Archive-Old-Version/OtherBinaries/Nlnotes.exe.md 的精简记录,配合 YML 结构化数据与项目模板,红队可以快速将此类已知 LOLBin 纳入武器库,蓝队则可以据此建立"进程-命令行-策略操作"三重维度的检测规则。研究此类条目时,建议始终回到 YML-Template.yml 与 CategoryList.md 理解数据规范,并以 README.md 的收录标准衡量每个条目的攻击价值,从而构建自己的 LOLBin 分析框架。
- 应用安全
- 渗透测试
- 红蓝对抗
【免费下载链接】LOLBAS
Living Off The Land Binaries And Scripts - (LOLBins and LOLScripts)
相关推荐
LOLBAS 系列:Control.exe —— 利用控制面板程序执行 .cpl 与 ADS 隐藏代码的 Living Off The Land 技巧
LOLBAS 系列:Control.exe —— 利用控制面板程序执行 .cpl 与 ADS 隐藏代码的 Living Off The Land 技巧 导读 本
应用安全渗透测试红蓝对抗LOLBAS 深度解析:Msbuild.exe 的 Living Off The Land 利用——编译执行、Logger DLL 注入与 RSP 命令行混淆
LOLBAS 深度解析:Msbuild.exe 的 Living Off The Land 利用——编译执行、Logger DLL 注入与 RSP 命令行混淆
应用安全渗透测试红蓝对抗LOLBAS与GTFOBins终极对比指南:两大Living Off The Land工具库深度解析
LOLBAS与GTFOBins终极对比指南:两大Living Off The Land工具库深度解析 在网络安全领域, LOLBAS项目 作为Living Of
应用安全渗透测试红蓝对抗
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考