# Plan de Pruebas para Context Tracking ## Resumen Context Tracking permite ver información del callback (como `cwd` e `impersonation_context`) en tabs visibles sobre el área de tasking en Mythic. ## Cambios Implementados ### 1. Variables Globales - `gCurrentDirectory`: Mantiene el directorio actual - `gImpersonationContext`: Mantiene el usuario impersonado ### 2. Comandos que Actualizan Contexto - **`cd`**: Actualiza `cwd` cuando cambias de directorio - **`steal_token`**: Actualiza `impersonation_context` cuando robas un token - **`make_token`**: Actualiza `impersonation_context` cuando creas un token - **`rev2self`**: Limpia `impersonation_context` cuando reviertes la impersonación ### 3. Checkin - Incluye `cwd` inicial al hacer checkin ## Plan de Pruebas ### Prueba 1: Verificar cwd inicial en Checkin 1. Compila y despliega el agente 2. Verifica que al hacer checkin, aparezca un tab con `cwd` mostrando el directorio actual 3. **Resultado esperado**: Tab "cwd" visible con el directorio actual (ej: `C:\Users\localuser`) ### Prueba 2: Actualizar cwd con cd 1. Ejecuta `cd C:\Windows` 2. Verifica que el tab `cwd` se actualice a `C:\Windows` 3. **Resultado esperado**: Tab "cwd" cambia a `C:\Windows` ### Prueba 3: Impersonation Context con steal_token 1. Ejecuta `list_tokens` para ver tokens disponibles 2. Ejecuta `steal_token ` donde `` es un proceso con privilegios elevados (ej: SYSTEM) 3. Verifica que aparezca un tab `impersonation_context` con el usuario impersonado (ej: `NT AUTHORITY\SYSTEM`) 4. **Resultado esperado**: Tab "impersonation_context" aparece con el usuario impersonado ### Prueba 4: Verificar whoami después de steal_token 1. Después de `steal_token`, ejecuta `whoami` 2. Verifica que `whoami` muestre el usuario impersonado 3. **Resultado esperado**: `whoami` muestra el usuario del token robado ### Prueba 5: Limpiar impersonation_context con rev2self 1. Después de `steal_token`, ejecuta `rev2self` 2. Verifica que el tab `impersonation_context` se limpie (desaparezca o muestre vacío) 3. Ejecuta `whoami` para verificar que volvió al usuario original 4. **Resultado esperado**: Tab "impersonation_context" se limpia, `whoami` muestra usuario original ### Prueba 6: make_token actualiza impersonation_context 1. Ejecuta `make_token domain username password` 2. Verifica que el tab `impersonation_context` se actualice con el nuevo usuario 3. **Resultado esperado**: Tab "impersonation_context" muestra el usuario del token creado ### Prueba 7: Verificar logs del translator 1. Revisa los logs del translator para ver mensajes como: - `[CALLBACK_CONTEXT] cwd = 'C:\Windows'` - `[CALLBACK_CONTEXT] impersonation_context = 'NT AUTHORITY\SYSTEM'` 2. **Resultado esperado**: Logs muestran los campos de callback context parseados correctamente ## Verificación de Implementación ### Verificar que los archivos se compilaron correctamente: ```bash # En el contenedor de Mythic, verifica logs de compilación docker logs cazalla_translator | grep -i "error\|warning" | tail -20 ``` ### Verificar en logs del agente: Busca logs que incluyan: - `[steal_token] Contexto de impersonación actualizado` - `[make_token] Contexto de impersonación actualizado` - `[rev2self] Contexto de impersonación limpiado` - `Checkin: Añadido cwd inicial` ### Verificar en logs del translator: Busca logs que incluyan: - `[CALLBACK_CONTEXT] cwd = '...'` - `[CALLBACK_CONTEXT] impersonation_context = '...'` - `[CHECKIN] Callback context: cwd = '...'` - `[CALLBACK_CONTEXT] Añadido callback context con X campos` ## Configuración en Mythic UI 1. Ve a **Settings** (configuración de usuario) 2. Busca la sección de **Tasking Context Tabs** 3. Asegúrate de que `cwd` e `impersonation_context` estén seleccionados 4. Configura colores si lo deseas ## Solución de Problemas ### Si los tabs no aparecen: 1. Verifica que los logs del translator muestren `[CALLBACK_CONTEXT]` 2. Verifica que el JSON de respuesta incluya la clave `callback` con los campos 3. Verifica la configuración de usuario en Mythic (Settings → Tasking Context Tabs) ### Si el cwd no se actualiza: 1. Verifica logs del agente: `setCurrentDirectoryContext` debería llamarse 2. Verifica que `cd` esté funcionando correctamente 3. Revisa los logs del translator para ver si se parsea el callback context ### Si impersonation_context no se actualiza: 1. Verifica que `steal_token`/`make_token` funcionen correctamente 2. Verifica logs: `setImpersonationContext` debería llamarse 3. Verifica logs del translator para ver si se parsea