初始访问 (Initial Access)
在红队演练 (Red Team exercise) 的背景下,初始访问文件是指红队用于初步渗透目标系统或网络的各种文件、脚本、可执行文件或文档。这些文件通常包含恶意 payload,或者是为了利用特定漏洞而设计的,目的是在目标环境中建立立足点 (foothold)。
目录 (Summary)
复杂攻击链 (Complex Chains)
投递 (容器 (触发器 + PAYLOAD + 诱饵)) DELIVERY (CONTAINER (TRIGGER + PAYLOAD + DECOY))
- 投递 (DELIVERY):指投递一整包文件的方式
- HTML 走私 (HTML Smuggling)、SVG 走私、附件
- 容器 (CONTAINER):捆绑所有感染依赖项的归档文件
- ISO/IMG、ZIP、WIM
- 触发器 (TRIGGER):运行 payload 的某种方式
- LNK、CHM、ClickOnce 应用程序
- PAYLOAD:恶意软件
- 二进制文件
- 代码执行文件
- 嵌入式文件
- 诱饵 (DECOY):在引爆(运行)恶意软件后,用于继续进行背景铺垫的文件
- 通常是打开 PDF 文件
示例:
- HTML 走私 (加密 ZIP + ISO (LNK + IcedID + PNG)),由 TA551/Storm-0303 使用。
容器 (Container)
- ISO/IMG - 可以包含隐藏文件,会被自动挂载 (automounted),从而轻松访问包含的文件 (
powershell –c .\malware.exe)。 - ZIP - 可以包含隐藏文件(定位 ZIP + 解压 + 切换目录 + 运行恶意软件)。
-
WIM - Windows 映像 (Windows Image),用于部署系统功能的内置格式。
-
7-zip, RAR, GZ - 在 Windows 11 中应会获得原生支持。
触发器 (Trigger)
- LNK
- CHM
- ClickOnce
Payload
二进制文件 (Binary Files)
这些文件可以在系统上直接执行,无需任何第三方支持。
- .exe 文件:可执行文件,点击即可运行。
-
.dll 文件:使用
rundll32 main.dll,DllMain执行。#define WIN32_LEAN_AND_MEAN #include <windows.h> extern "C" __declspec(dllexport) DWORD WINAPI MessageBoxThread(LPVOID lpParam) { MessageBox(NULL, "Hello world!", "Hello World!", NULL); return 0; } extern "C" __declspec(dllexport) BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: CreateThread(NULL, NULL, MessageBoxThread, NULL, NULL, NULL); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } -
.cpl 文件:与带有
Cplapplet导出的 .dll 文件相同。#include "stdafx.h" #include <Windows.h> extern "C" __declspec(dllexport) LONG Cplapplet( HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2 ) { MessageBoxA(NULL, "嘿,我现在是你的控制面板项了。", "控制面板", 0); return 1; } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { Cplapplet(NULL, NULL, NULL, NULL); } case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }
代码执行文件 (Code Execution Files)
- 带有宏的 Word 文档 (.doc, .docm)
- Excel 库 (.xll)
-
启用宏的 Excel 加载项文件 (.xlam)
-
WSF 文件 (.wsf)
-
MSI 安装程序 (.msi)
-
MSIX/APPX 应用包 (.msix, .appx)
- ClickOnce (.application, .vsto, .appref-ms)
- Powershell 脚本 (.ps1)
-
Windows Script Host 脚本 (.wsh, .vbs)
嵌入式文件 (Embedded Files)
- 带有嵌入文件的 ICS 日历邀请
代码签名 (Code Signing)
证书的状态可以是 过期 (Expired)、吊销 (Revoked)、有效 (Valid)。
许多证书在互联网上泄露并被攻击者重复使用。
其中一部分可以通过 VirusTotal 查询找到:content:{02 01 03 30}@4 AND NOT tag:peexe
2022 年,LAPSUS$ 声称对显卡和 AI 技术制造商 NVIDIA 的网络攻击负责。作为此次攻击的一部分,LAPSUS$ 据称窃取了 NVIDIA 的专有数据并威胁要将其泄露。该泄露内容包含:
-
证书可以受密码保护。使用 pfx2john.py
-
使用证书对二进制文件进行签名。
-
以下文件可以使用证书进行签名:
- 可执行文件:.exe, .dll, .ocx, .xll, .wll
- 脚本:.vbs, .js, .ps1
- 安装程序:.msi, .msix, .appx, .msixbundle, .appxbundle
- 驱动程序:.sys
- 压缩包:.cab
- ClickOnce:.application, .manifest, .vsto
参考资料 (References)
- Top 10 Payloads: Highlighting Notable and Trending Techniques - delivr.to
- Executing Code as a Control Panel Item through an Exported Cplapplet Function - @spotheplanet
- Desperate Infection Chains - Multi-Step Initial Access Strategies by Mariusz Banach - x33fcon Youtube
- Desperate Infection Chains - Multi-Step Initial Access Strategies by Mariusz Banach - x33fcon PDF
- Red Macros Factory - https://binary-offensive.com/