
Служба Windows, которая создает поддельные SMB-сессии для имитации входов пользователей с высокими привилегиями, заманивая атакующих в машины-ловушки для раннего обнаружения и реагирования на инциденты.
________ _________ _____ _ _____ __
/ ___| \/ || ___ \ / ___| (_) / ___| / _|
\ `--.| . . || |_/ / \ `--. ___ ___ ___ _ ___ _ __ \ `--. _ __ ___ ___ | |_ ___ _ __
`--. \ |\/| || ___ \ `--. \/ _ \/ __/ __| |/ _ \| '_ \ `--. \ '_ \ / _ \ / _ \| _/ _ \ '__|
/\__/ / | | || |_/ / /\__/ / __/\__ \__ \ | (_) | | | | /\__/ / |_) | (_) | (_) | || __/ |
\____/\_| |_/\____/ \____/ \___||___/___/_|\___/|_| |_| \____/| .__/ \___/ \___/|_| \___|_|
| |
|_|
Добро пожаловать! Эта утилита может быть скомпилирована с помощью Visual Studio 2019 (или новее). Цель этой программы — создать поддельную SMB-сессию. Основное назначение — служить методом для привлечения атакующих к доступу на устройство-приманку. Эта программа предоставляется без каких-либо гарантий.
Программа потребует от вас небольшой модификации кода. В строке 144 вызывается Windows API CreateProcessWithLogonW, в котором по умолчанию указаны два параметра: svc-admin (имя пользователя) и contoso.com (домен). Вам необходимо изменить эти значения на соответствующие вашей рабочей сети.
CreateProcessWithLogonW(L"DomainAdminUser", L"YourDomain.com", NULL, LOGON_NETCREDENTIALS_ONLY, <snip>);
После модификации кода и его компиляции необходимо установить службу. Это можно сделать с помощью следующей команды:
sc create servicename binpath="C:\ProgramData\Services\Inject\service.exe" start="auto"
Чтобы убедиться, что программа работает корректно, проверьте существующие сессии в системе. Это можно сделать с помощью следующей команды:
C:\ProgramData\Services\Inject> net sessions
Computer User name Client Type Opens Idle time
-------------------------------------------------------------------------------
\\[::1] svc-admin 0 00:00:04
The command completed successfully.
Через примерно 13 минут проверьте снова, чтобы убедиться, что создана новая сессия и программа работает должным образом.
Теория заключается в следующем: когда злоумышленник запускает SharpHound, собирает сессии и анализирует пути атаки от скомпрометированных субъектов, он может определить, что привилегированный пользователь вошёл в инфраструктуру Tier-2 (рабочие станции), после чего (как кажется) может получить к ней доступ и извлечь учётные данные для получения прав Domain Admin.
В приведённом выше сценарии атакующий скомпрометировал пользователя "[email protected]", который является локальным администратором на lab-wkst-2.contoso.com. Пользователь svc-admin вошёл в систему на lab-wkst-2.contoso.com, поэтому атакующему остаётся лишь войти на рабочую станцию, запустить Mimikatz и извлечь учётные данные. Как же отслеживать это?
Внедрение этого инструмента важно, но не менее важен мониторинг. Если внедрить инструмент без мониторинга, он будет бесполезен; поэтому мониторинг обязателен. Самый эффективный способ мониторинга этого хоста — настроить оповещения о любом входе в систему. Эту программу лучше всего использовать на хосте без пользовательской активности, присоединённом к домену и оснащённом стандартными корпоративными средствами мониторинга (EDR, AV, пересылка журналов Windows и т.д.). Настоятельно рекомендуется настроить оповещения по электронной почте, SMS и по возможности другие, чтобы инциденты, связанные с этой машиной, обрабатывались как можно быстрее, так как вероятность того, что реальный злоумышленник начнёт взаимодействие с данной рабочей станцией, наиболее высока.
Спасибо Microsoft за предоставленный шаблон кода службы и отличную документацию Windows API.