Files
Angerona/CONTEXT_TRACKING_TEST_PLAN.md
T
2025-11-04 10:56:20 +01:00

107 lines
4.5 KiB
Markdown

# 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 <pid>` donde `<pid>` 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