
wsb-detect te permite detectar si te estás ejecutando en Windows Sandbox ("WSB")
wsb-detect te permite detectar si te estás ejecutando en Windows Sandbox ("WSB"). El sandbox es utilizado por Windows Defender para análisis dinámico, y comúnmente de forma manual por analistas de seguridad y similares. A finales de 2019, Microsoft introdujo una nueva característica llamada Windows Sandbox (WSB para abreviar). Las técnicas utilizadas para identificar WSB se describen a continuación, en la sección de técnicas. No dudes en enviar un pull request si tienes alguna idea para identificarlo 🎉. He estado jugando con ello de vez en cuando, pronto tendré más sobre Windows Sandbox.
Windows Sandbox te permite crear rápidamente, en unos 15 segundos, una máquina virtual desechable basada en Hyper-V con todas las características que una máquina virtual familiar tendría, como compartir portapapeles, mapear directorios, etc. El sandbox también es la base de Microsoft Defender Application Guard (WDAG), para análisis dinámico en hosts con Hyper-V habilitado y se puede activar en cualquier máquina con Windows 10 Pro o Enterprise. No es particularmente interesante, pero sin embargo podría ser útil en el desarrollo de implantes. Gracias a mi amigo Jonas L por la orientación cuando exploraba los internals del sandbox (más sobre esto próximamente).
El encabezado detect.h exporta todas las funciones que se pueden combinar para detectar si
#include <stdio.h>
#include "detect.h"
int main(int argc, char** argv)
{
// ejemplo de verificación vmsmb y nombre de usuario
if (wsb_detect_dev() || wsb_detect_username())
{
puts("¡Estamos en Windows Sandbox!");
return 0;
}
return 1;
}
wsb_detect_procBusca CExecSvc.exe, que es el servicio de ejecución de contenedores, manejando gran parte del trabajo pesado internamente.
wsb_detect_timeLa imagen del sandbox parece estar construida el sábado, 7 de diciembre de 2019, 9:14:52 AM - esto es alrededor de la fecha en que Windows Sandbox fue lanzado al público. Esta verificación compara la marca de tiempo de creación del controlador mountmgr.
wsb_detect_usernameEste método comprobará si el nombre de usuario actual es WDAGUtilityUserAccount, la cuenta utilizada por defecto en el sandbox.
wsb_detect_suffixEste método usará GetAdaptersAddresses, recorrerá la lista de adaptadores y comparará el sufijo DNS con mshome.net, que se usa por defecto en el sandbox.
wsb_detect_devComprueba si se puede abrir el dispositivo raw \\.\GLOBALROOT\device\vmsmb, que se utiliza para la comunicación con el host a través de SMB.
wsb_detect_cmdAl iniciar, busca en la clave RunOnce en HKEY_LOCAL_MACHINE un comando que establece que la contraseña nunca expire.
wsb_detect_genuineUn método más genérico en cuanto a detección de sandbox, sin embargo, según las pruebas, Windows no parece estar verificado como legítimo en las máquinas virtuales.
Si deseas contactarme más rápido, no dudes en hacerlo en Twitter o correo electrónico. Además, es posible en el host detectar si el sandbox se está ejecutando, comprobando si se puede crear un mutex llamado WindowsSandboxMutex. Esto limita el sandbox a una máquina virtual por host; sin embargo, puedes liberar este mutex simplemente duplicando el identificador y llamando a ReleaseMutex - ¡voilà!, puedes tener múltiples instancias.
