4.5 KiB
4.5 KiB
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 actualgImpersonationContext: Mantiene el usuario impersonado
2. Comandos que Actualizan Contexto
cd: Actualizacwdcuando cambias de directoriosteal_token: Actualizaimpersonation_contextcuando robas un tokenmake_token: Actualizaimpersonation_contextcuando creas un tokenrev2self: Limpiaimpersonation_contextcuando reviertes la impersonación
3. Checkin
- Incluye
cwdinicial al hacer checkin
Plan de Pruebas
Prueba 1: Verificar cwd inicial en Checkin
- Compila y despliega el agente
- Verifica que al hacer checkin, aparezca un tab con
cwdmostrando el directorio actual - Resultado esperado: Tab "cwd" visible con el directorio actual (ej:
C:\Users\localuser)
Prueba 2: Actualizar cwd con cd
- Ejecuta
cd C:\Windows - Verifica que el tab
cwdse actualice aC:\Windows - Resultado esperado: Tab "cwd" cambia a
C:\Windows
Prueba 3: Impersonation Context con steal_token
- Ejecuta
list_tokenspara ver tokens disponibles - Ejecuta
steal_token <pid>donde<pid>es un proceso con privilegios elevados (ej: SYSTEM) - Verifica que aparezca un tab
impersonation_contextcon el usuario impersonado (ej:NT AUTHORITY\SYSTEM) - Resultado esperado: Tab "impersonation_context" aparece con el usuario impersonado
Prueba 4: Verificar whoami después de steal_token
- Después de
steal_token, ejecutawhoami - Verifica que
whoamimuestre el usuario impersonado - Resultado esperado:
whoamimuestra el usuario del token robado
Prueba 5: Limpiar impersonation_context con rev2self
- Después de
steal_token, ejecutarev2self - Verifica que el tab
impersonation_contextse limpie (desaparezca o muestre vacío) - Ejecuta
whoamipara verificar que volvió al usuario original - Resultado esperado: Tab "impersonation_context" se limpia,
whoamimuestra usuario original
Prueba 6: make_token actualiza impersonation_context
- Ejecuta
make_token domain username password - Verifica que el tab
impersonation_contextse actualice con el nuevo usuario - Resultado esperado: Tab "impersonation_context" muestra el usuario del token creado
Prueba 7: Verificar logs del translator
- Revisa los logs del translator para ver mensajes como:
[CALLBACK_CONTEXT] cwd = 'C:\Windows'[CALLBACK_CONTEXT] impersonation_context = 'NT AUTHORITY\SYSTEM'
- Resultado esperado: Logs muestran los campos de callback context parseados correctamente
Verificación de Implementación
Verificar que los archivos se compilaron correctamente:
# 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 limpiadoCheckin: 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
- Ve a Settings (configuración de usuario)
- Busca la sección de Tasking Context Tabs
- Asegúrate de que
cwdeimpersonation_contextestén seleccionados - Configura colores si lo deseas
Solución de Problemas
Si los tabs no aparecen:
- Verifica que los logs del translator muestren
[CALLBACK_CONTEXT] - Verifica que el JSON de respuesta incluya la clave
callbackcon los campos - Verifica la configuración de usuario en Mythic (Settings → Tasking Context Tabs)
Si el cwd no se actualiza:
- Verifica logs del agente:
setCurrentDirectoryContextdebería llamarse - Verifica que
cdesté funcionando correctamente - Revisa los logs del translator para ver si se parsea el callback context
Si impersonation_context no se actualiza:
- Verifica que
steal_token/make_tokenfuncionen correctamente - Verifica logs:
setImpersonationContextdebería llamarse - Verifica logs del translator para ver si se parsea