Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Inyección de procesos — lo que la delata

5 tareas · 40 min · Principiante

Una muestra puede dejar de ser visible como programa propio si hace correr su código dentro de otro proceso, uno que ya está en el equipo y que nadie mira. A esa idea se le llama inyección, y desde la defensa interesa una sola cosa: qué rastros deja. Aquí se leen tres: los permisos que un proceso pide sobre otro, los hilos que se crean dentro de un proceso ajeno y las regiones de memoria que no corresponden a ningún archivo. Sigue la misma mañana en czh-ws07, la de Cerámicas Zahorí. No hay nada que ejecutar: se leen tablas de telemetría y una salida de ejemplo de un volcado de memoria ya tomado.

0 de 5 · 0%

Objetivo de la sala

Una muestra puede dejar de ser visible como programa propio si hace correr su código dentro de otro proceso, uno que ya está en el equipo y que nadie mira. A esa idea se le llama inyección, y desde la defensa interesa una sola cosa: qué rastros deja. Aquí se leen tres: los permisos que un proceso pide sobre otro, los hilos que se crean dentro de un proceso ajeno y las regiones de memoria que no corresponden a ningún archivo. Sigue la misma mañana en czh-ws07, la de Cerámicas Zahorí. No hay nada que ejecutar: se leen tablas de telemetría y una salida de ejemplo de un volcado de memoria ya tomado.

Inyectar un proceso es hacer que el código de una muestra corra dentro de la memoria de otro proceso que ya existe. La técnica se recoge en ATT&CK como T1055 («Process Injection») y tiene doce subtécnicas. No se trata aquí cómo se construye ninguna: solo qué hace visible a cada una.

Para meter algo en un proceso ajeno, el autor necesita tres cosas, y cada una deja una huella. Primero abrir el proceso con permisos que permitan escribir en su memoria. Segundo, escribir y marcar esa zona como ejecutable. Tercero, hacer que algo corra allí, por ejemplo creando un hilo. Los tres pasos tienen su evento de telemetría, y ninguno depende de cómo se llame el programa.

Responde para continuar

¿Por qué la inyección se detecta mejor por sus efectos que por el nombre del programa que la hace?

Ver pista de ayuda

Piensa en qué se necesita hacer sobre el proceso ajeno, y en si eso depende del nombre de quien lo hace.

El evento 10 de Sysmon registra cuando un proceso abre otro y con qué permisos. La mayoría de los accesos son de lectura limitada: una herramienta de monitoreo o el administrador de tareas pregunta por el estado de un proceso. Los permisos que dicen otra cosa son los que permiten modificar la memoria ajena y crear hilos en ella.

Entre los nombres de permiso hay uno que concreta lo más importante: poder escribir en la memoria de otro proceso. Esa palabra es la que separa un acceso de mirar de uno de dejar algo.

Responde para continuar

Escribe el permiso, de los que pidió sync.exe, que le permite escribir en la memoria de otro proceso.

Ver pista de ayuda

Abre `acceso_a_procesos` y lee los permisos de la fila en que aparece `sync.exe`. Elige el que habla de escribir.

El evento 8 de Sysmon anota los hilos remotos: un proceso crea un hilo dentro de otro. Hay casos legítimos, como un producto de seguridad que instrumenta un navegador con sus propios módulos. Se separan por dos campos: el proceso destino y dónde empieza el hilo. Un hilo que arranca dentro de una biblioteca conocida y firmada es una cosa; uno que empieza en una dirección sin módulo ni archivo es otra.

El proceso destino es el dato más útil para el equipo de respuesta: es el lugar donde mirar en el resto de la telemetría. Los procesos del sistema que parecen discretos, que existen en todos los equipos y que nadie revisa, suelen ser destinos atractivos.

Responde para continuar

Escribe el nombre del proceso en el que sync.exe creó un hilo remoto que empieza en una dirección sin módulo ni archivo.

Ver pista de ayuda

En `hilos_remotos` descarta la fila cuyo hilo empieza en un módulo conocido y firmado. El destino es la columna `destino`.

Cada región de memoria de un proceso tiene una protección (leer, escribir, ejecutar) y puede estar respaldada por un archivo —el programa o una biblioteca cargada desde disco— o no. Una región que se puede escribir y ejecutar a la vez, sin archivo detrás y que empieza como un programa completo (cabecera de ejecutable, que arranca con las letras MZ), no es lo normal dentro de un proceso del sistema. Las herramientas de análisis de memoria listan esas regiones con una búsqueda de regiones sospechosas; aquí se lee su salida de ejemplo.

El identificador de proceso (PID) es la clave para cruzar esa salida con el resto: es el mismo número en la tabla de hilos, en la de accesos y en el árbol de procesos.

Responde para continuar

Escribe el PID del proceso que tiene una región sin archivo que empieza con cabecera de ejecutable.

Ver pista de ayuda

En `memoria` busca la fila cuyo contenido inicial empieza por MZ y copia el PID.

La salida de memoria muestra una segunda región con permisos de escribir y ejecutar y sin archivo, en un navegador. No es una inyección: los motores de JavaScript generan código en caliente y para eso necesitan una región así. Ese ejemplo es el motivo de que una región de memoria, por sí sola, nunca sea un hallazgo: se cruza con quién la escribió, con qué hilo empezó allí y con lo que contiene.

Responde para continuar

¿Qué distingue la región sospechosa de la del navegador?

Ver pista de ayuda

Compara las dos filas de `memoria` en `contenido_inicial` y cruza cada región con las tablas de accesos y de hilos.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad