跳转至

T1574-001-win-劫持执行流程-DLL搜索顺序劫持

来自ATT&CK描述

攻击者可以通过劫持用于加载DLL的搜索顺序来执行自己的恶意负载。Windows系统使用一种通用方法来查找要加载到程序中的DLL。劫持DLL加载可能是为了建立持久化以及提升特权或逃避文件执行限制。

攻击者可以通过多种方式劫持DLL加载。攻击者可能会将特洛伊木马动态链接库文件(DLL)放置在一个目录中,该目录将在程序请求的合法库的位置之前进行搜索,从而导致Windows在受害程序调用时加载其恶意库。攻击者还可以通过将恶意DLL放置在合法DLL搜索位置之前的某个位置,其与模糊指定的DLL同名,来执行DLL预加载,也称为二进制植入攻击。通常,此位置是程序的当前工作目录。当程序在加载DLL之前将其当前目录设置为远程位置(例如Web共享)时,就会发生远程DLL预加载攻击。

攻击者还可以通过替换现有DLL或修改.manifest或.local重定向文件,目录或联结,来直接修改程序加载DLL的方式,以使程序加载其他DLL。

如果搜索易受攻击的程序被配置为以更高的特权级别运行,则加载的受攻击者控制的DLL也将在更高的级别执行。在这种情况下,该技术可用于从用户到管理员或SYSTEM,或从管理员到SYSTEM的特权升级,具体取决于程序。由于恶意DLL可能被配置为也加载正常的DLL,因此成为路径劫持受害者的程序可能看起来像正常的一样。

测试案例

测试1 DLL Search Order Hijacking - amsi.dll

攻击者可以利用PowerShell不安全的库加载,加载amsi.dll的脆弱版本,以绕过AMSI(反恶意软件扫描接口)https://enigma0x3.net/2017/07/19/bypassing-amsi-via-com-server-hijacking/

成功执行后,powershell.exe将被复制并重命名为updater.exe,并从一个非标准路径加载amsi.dll。

攻击命令,用命令提示符运行,需要权限提升,admin/root权限:

copy %windir%\System32\windowspowershell\v1.0\powershell.exe %APPDATA%\updater.exe
copy %windir%\System32\amsi.dll %APPDATA%\amsi.dll
%APPDATA%\updater.exe -Command exit

清除命令:

del %APPDATA%\updater.exe >nul 2>&1
del %APPDATA%\amsi.dll >nul 2>&1

检测日志

Windows Sysmon日志

测试复现

测试1 DLL Search Order Hijacking - amsi.dll

Microsoft Windows [版本 10.0.17763.973]
(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\Administrator.ZHULI>copy %windir%\System32\windowspowershell\v1.0\powershell.exe %APPDATA%\updater.exe
已复制         1 个文件。

C:\Users\Administrator.ZHULI>copy %windir%\System32\amsi.dll %APPDATA%\amsi.dll
已复制         1 个文件。

C:\Users\Administrator.ZHULI>%APPDATA%\updater.exe -Command exit

C:\Users\Administrator.ZHULI>del %APPDATA%\updater.exe >nul 2>&1

C:\Users\Administrator.ZHULI>del %APPDATA%\amsi.dll >nul 2>&1

C:\Users\Administrator.ZHULI>

测试留痕

测试1 DLL Search Order Hijacking - amsi.dll

Windows sysmon日志 ```事件ID:7

Image loaded:

RuleName: technique_id=T1059.001,technique_name=PowerShell

UtcTime: 2022-01-13 08:49:39.694

ProcessGuid: {78c84c47-e7a3-61df-9a02-000000000900}

ProcessId: 1044

Image: C:\Users\Administrator.ZHULI\AppData\Roaming\updater.exe

ImageLoaded: C:\Users\Administrator.ZHULI\AppData\Roaming\amsi.dll

FileVersion: 10.0.17763.1 (WinBuild.160101.0800)

Description: Anti-Malware Scan Interface

Product: Microsoft® Operating System

Company: Microsoft Corporation

OriginalFileName: amsi.dll

Hashes: SHA1=B7B7398DB0EDCE2C39A964096B009F60C544DC29,MD5=21EAA9941DB9CA4B41A5FFCBFE4CA9A5,SHA256=F675D2A8686A7CFD7A7056AC490E159A17D6B728420CF15C4EE26C670437370A,IMPHASH=11E9179F7B8A676A1110DA8E334D75BE

Signed: true

Signature: Microsoft Windows

SignatureStatus: Valid

User: ZHULI\Administrator ```

检测规则/思路

建议

监视文件系统,移动、重命名、替换或修改DLL行为。与已知软件、补丁等不相关的进程加载的DLL集的更改(与过去的行为相比)是可疑的。监控加载到进程中DLL,检测文件名相同但路径异常的DLL。对与软件更新无关的文件的修改、创建.manifest.local重定向是可疑的。

参考推荐

MITRE-ATT&CK-T1574-001

https://attack.mitre.org/techniques/T1574/001

Atomic-red-team-T1574-001

https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1574.001/T1574.001.md