SAL-BOF — Reconocimiento Local
El módulo SAL-BOF (Situational Awareness — Local) proporciona comandos para recopilar información del sistema local donde se ejecuta el agente. Estos comandos son los primeros que deberías ejecutar tras obtener acceso a una máquina para comprender el entorno antes de tomar cualquier otra acción.
Agentes compatibles: Beacon, Gopher, Kharon (Windows)
arp
Muestra la tabla ARP del sistema, revelando las direcciones MAC e IP de los hosts con los que la máquina ha interactuado recientemente.
arpCuándo usarlo: Para identificar hosts vecinos en la red local. Útil para descubrir servidores, puertas de enlace y otros dispositivos sin generar tráfico de escaneo activo.
cacls
Muestra las listas de control de acceso (ACL) de un archivo o directorio.
cacls C:\Users\Administrator\Documents
cacls C:\Windows\System32\config\SAM| Argumento | Requerido | Descripción |
|---|---|---|
filepath | Sí | Ruta completa al archivo o directorio |
Cuándo usarlo: Para verificar permisos antes de intentar acceder, modificar o exfiltrar archivos sensibles. También para buscar configuraciones débiles de permisos que permitan escalada de privilegios.
dir
Lista el contenido de un directorio.
dir C:\Users
dir C:\inetpub\wwwroot --subdirs| Argumento | Requerido | Descripción |
|---|---|---|
dirpath | Sí | Ruta del directorio a listar |
--subdirs | No | Listar recursivamente los subdirectorios |
Cuándo usarlo: Para explorar el sistema de archivos del objetivo. Con --subdirs puedes buscar archivos de interés en toda una estructura de directorios (configuraciones, scripts, documentos sensibles).
env
Lista todas las variables de entorno del sistema y del usuario actual.
envCuándo usarlo: Para descubrir información valiosa como rutas de aplicaciones, nombres de dominio, servidores proxy, variables de bases de datos, tokens o claves API que frecuentemente se almacenan en variables de entorno.
ipconfig
Muestra la configuración de red de todas las interfaces.
ipconfigCuándo usarlo: Para identificar las interfaces de red, direcciones IP, máscaras de subred, puertas de enlace y servidores DNS del sistema. Esencial para planificar movimiento lateral y entender la topología de red.
listdns
Lista la caché DNS del sistema.
listdnsCuándo usarlo: La caché DNS revela los nombres de host que la máquina ha resuelto recientemente, lo que proporciona inteligencia sobre los servicios y servidores con los que interactúa habitualmente, sin necesidad de realizar consultas DNS activas.
netstat
Muestra las conexiones de red activas, puertos en escucha y procesos asociados.
netstatCuándo usarlo: Para identificar servicios en ejecución, conexiones establecidas a otros servidores y puertos abiertos. Ayuda a descubrir servicios internos, conexiones a bases de datos y comunicaciones con otros sistemas de la red.
nslookup
Realiza consultas DNS para resolver nombres de host.
nslookup dc01.domain.local
nslookup mail.domain.local MX
nslookup intranet.corp A 10.0.0.1| Argumento | Requerido | Descripción |
|---|---|---|
hostname | Sí | Nombre de host a resolver |
type | No | Tipo de registro: A, AAAA, CNAME, MX (por defecto: A) |
server | No | Servidor DNS específico a consultar |
Cuándo usarlo: Para resolver nombres de servidores internos, localizar controladores de dominio, servidores de correo o servicios internos. Especificar un servidor DNS diferente permite descubrir registros que no están en la caché local.
privcheck
Realiza verificaciones de posibles vectores de escalada de privilegios locales. Este es uno de los comandos más importantes del módulo.
Ejecutar todas las comprobaciones
privcheck allComprobaciones individuales
alwayselevated
privcheck alwayselevatedVerifica si las claves de registro AlwaysInstallElevated están habilitadas tanto en HKLM como en HKCU. Si ambas están activas, cualquier paquete MSI se instalará con privilegios SYSTEM, permitiendo escalada inmediata.
autologon
privcheck autologonBusca credenciales de inicio de sesión automático almacenadas en el registro (HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon). Estas credenciales se almacenan frecuentemente en texto claro.
credmanager
privcheck credmanagerLista las credenciales almacenadas en el Administrador de Credenciales de Windows. Puede contener contraseñas de aplicaciones, sitios web y recursos de red.
hijackablepath
privcheck hijackablepathIdentifica directorios en la variable PATH del sistema que son escribibles por el usuario actual. Permite plantar DLLs maliciosas que serán cargadas por aplicaciones legítimas (DLL hijacking).
modautorun
privcheck modautorunBusca entradas de inicio automático (registro Run/RunOnce, Startup folders) cuyos binarios o rutas sean modificables por el usuario actual. Permite persistencia o escalada al reemplazar el binario.
modsvc
privcheck modsvcIdentifica servicios de Windows cuyos binarios ejecutables son modificables por el usuario actual. Reemplazar el binario del servicio permite ejecutar código como SYSTEM cuando el servicio se reinicie.
tokenpriv
privcheck tokenprivLista los privilegios de token del usuario actual, destacando privilegios peligrosos como:
- SeImpersonatePrivilege — Permite ataques tipo Potato para obtener SYSTEM
- SeAssignPrimaryTokenPrivilege — Permite asignar tokens a nuevos procesos
- SeDebugPrivilege — Permite depurar cualquier proceso (acceso a LSASS)
- SeBackupPrivilege — Permite leer cualquier archivo del sistema
- SeRestorePrivilege — Permite escribir cualquier archivo del sistema
- SeTakeOwnershipPrivilege — Permite tomar propiedad de cualquier objeto
unattendfiles
privcheck unattendfilesBusca archivos unattend.xml, sysprep.xml y similares que pueden contener credenciales de instalación en texto claro o codificadas en Base64.
unquotedsvc
privcheck unquotedsvcDetecta servicios con rutas de binario sin comillas que contienen espacios. Windows interpreta estos espacios como separadores de argumentos, permitiendo plantar un ejecutable en una ruta intermedia.
pshistory
privcheck pshistoryLee el historial de comandos de PowerShell del usuario. Puede revelar credenciales, comandos de administración y operaciones sensibles ejecutadas previamente.
uacstatus
privcheck uacstatusMuestra la configuración actual de UAC (User Account Control): nivel de notificación, filtrado de tokens de administrador y estado de la directiva. Permite evaluar si un bypass de UAC es viable.
vulndrivers
privcheck vulndriversBusca drivers vulnerables conocidos cargados en el sistema. Los drivers vulnerables pueden ser explotados para obtener ejecución de código en modo kernel (BYOVD — Bring Your Own Vulnerable Driver).
Cuándo usarlo: Ejecuta privcheck all inmediatamente después de obtener acceso como usuario no privilegiado. Los resultados guiarán tu estrategia de escalada de privilegios. Si ya eres administrador, igualmente es útil para identificar credenciales almacenadas y entender la postura de seguridad del sistema.
routeprint
Muestra la tabla de rutas del sistema.
routeprintCuándo usarlo: Para comprender la conectividad de red del sistema — qué subredes son alcanzables, a través de qué interfaces y puertas de enlace. Crítico para planificar pivoting y movimiento lateral.
uptime
Muestra el tiempo que lleva encendido el sistema.
uptimeCuándo usarlo: Un uptime largo sugiere que la máquina no se reinicia frecuentemente, lo que puede indicar que las actualizaciones de seguridad no se aplican. También ayuda a determinar la estabilidad del acceso.
useridletime
Muestra el tiempo de inactividad del usuario actual.
useridletimeCuándo usarlo: Para determinar si un usuario está activamente usando la máquina. Un tiempo de inactividad largo indica que es más seguro ejecutar operaciones que podrían generar ventanas o alertas visibles (como askcreds).
whoami
Muestra información detallada sobre el usuario actual, incluyendo SID, grupos y privilegios.
whoami
whoami /all| Argumento | Requerido | Descripción |
|---|---|---|
/all | No | Muestra información extendida: grupos, privilegios y tipo de logon |
Cuándo usarlo: Primer comando a ejecutar tras obtener acceso. Confirma la identidad del usuario, sus grupos de pertenencia (Domain Admins, Local Administrators, etc.) y los privilegios disponibles. La flag /all proporciona la información completa necesaria para evaluar el contexto de seguridad actual.
Flujo de trabajo recomendado
whoami /all— Identificar usuario y privilegiosipconfig+routeprint— Entender la redenv— Buscar variables con información sensiblenetstat— Identificar conexiones y serviciosarp+listdns— Descubrir hosts vecinosprivcheck all— Evaluar vectores de escalada (si no eres admin)