107 lines
4.5 KiB
Markdown
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
|
|
|