
wsb-detect позволяет определить, работаете ли вы в Windows Sandbox («WSB»)
wsb-detect позволяет определить, работаете ли вы в Windows Sandbox ("WSB"). Эта песочница используется Windows Defender для динамического анализа, а также часто вручную аналитиками безопасности и подобными специалистами. В конце 2019 года Microsoft представила новую функцию под названием Windows Sandbox (сокращённо WSB). Методы, используемые для идентификации WSB, описаны ниже, в разделе техник. Не стесняйтесь отправлять pull request, если у вас есть идеи по идентификации 🎉. Я периодически возился с этим, скоро будет больше о Windows Sandbox.
Windows Sandbox позволяет быстро, в течение 15 секунд, создать одноразовую виртуальную машину на базе Hyper-V со всеми качествами знакомой ВМ, такими как общий буфер обмена, сопоставление каталогов и т.д. Песочница также является основой для Microsoft Defender Application Guard (WDAG) для динамического анализа на хостах с Hyper-V и может быть включена на любом компьютере с Windows 10 Pro или Enterprise. Это не особенно интересно, но тем не менее может оказаться полезным при разработке имплантов. Спасибо моему другу Jonas L за руководство, когда я изучал внутренности песочницы (скоро будет больше на эту тему).
Заголовок detect.h экспортирует все функции, которые можно комбинировать для обнаружения
#include <stdio.h>
#include "detect.h"
int main(int argc, char** argv)
{
// example vmsmb & username check
if (wsb_detect_dev() || wsb_detect_username())
{
puts("We're in Windows Sandbox!");
return 0;
}
return 1;
}
wsb_detect_procПроверяет наличие CExecSvc.exe, который является службой выполнения контейнера, выполняющей большую часть внутренней работы.
wsb_detect_timeОбраз песочницы, по-видимому, был создан в Saturday, December 7, 2019, 9:14:52 AM - это примерно время выхода Windows Sandbox для публики. Эта проверка сопоставляет временную метку создания драйвера mountmgr.
wsb_detect_usernameЭтот метод проверяет, является ли текущее имя пользователя WDAGUtilityUserAccount — учётной записью, используемой по умолчанию в песочнице.
wsb_detect_suffixЭтот метод использует GetAdaptersAddresses, проходит по списку адаптеров и сравнивает DNS-суффикс с mshome.net, который используется по умолчанию в песочнице.
wsb_detect_devПроверяет, можно ли открыть raw-устройство \\.\GLOBALROOT\device\vmsmb, которое используется для связи с хостом по SMB.
wsb_detect_cmdПри запуске ищет в разделе RunOnce в HKEY_LOCAL_MACHINE команду, которая устанавливает, что пароль никогда не истекает.
wsb_detect_genuineБолее общий метод обнаружения песочницы, однако по результатам тестов Windows не кажется проверенной на подлинность в ВМ.
Если вы хотите связаться со мной быстрее, пишите мне в Twitter или на e-mail. Кроме того, на хосте можно обнаружить, запущена ли песочница, проверив, можно ли создать мьютекс с именем WindowsSandboxMutex. Это ограничивает песочницу одной виртуальной машиной на хост, однако вы можете освободить этот мьютекс, просто дублировав дескриптор и вызвав ReleaseMutex — вуаля, можно запускать несколько экземпляров.
