Cubrimos la inyección de procesos y el vaciado de procesos. La inyección de proceso es el proceso de inyectar un proceso que ya se está ejecutando con código malicioso o shellcode. El vaciado de procesos es el proceso de crear un proceso legítimo en un estado suspendido y luego desasignar el código legítimo de la memoria y reemplazarlo con el código shell. Tanto la inyección de procesos como el vaciado son útiles para ocultar rootkits y códigos shell en procesos de apariencia inocente para mantener el acceso y la persistencia. Esto fue parte de TryHackMe abusa de las partes internas de Windows Camino del equipo rojo.

También cubrimos la inyección de DLL y el secuestro de DLL junto con un escenario práctico del laboratorio TryHackMe Abusing Windows Internals que es parte del camino del equipo rojo. La inyección de DLL se basa en el uso de llamadas a la API de Windows para realizar acciones específicas, como seleccionar un proceso en ejecución, asignar memoria y escribir la DLL maliciosa en la región de memoria asignada. El secuestro de DLL se basa en tener permisos de acceso para localizar y reemplazar una DLL legítima por una maliciosa.

Obtenga notas de estudio COMPTIA Pentest+

Curso de técnicas de escalada de privilegios de Windows

Descripción del desafío

Aproveche los componentes internos de Windows para evadir las soluciones de detección comunes, utilizando enfoques modernos independientes de las herramientas.

Vídeos destacados

La inyección de procesos se utiliza comúnmente como término general para describir la inyección de código malicioso en un proceso a través de funciones o componentes legítimos.

En un nivel alto, la inyección de shellcode se puede dividir en cuatro pasos:

  1. Abra un proceso de destino con todos los derechos de acceso.
  2. Asigne memoria de proceso de destino para el código de shell.
  3. Escriba shellcode en la memoria asignada en el proceso de destino.
  4. Ejecute el código shell usando un hilo remoto.

El vaciado de procesos ofrece la posibilidad de inyectar un archivo malicioso completo en un proceso. Esto se logra “vaciando” o desasignando el proceso e inyectando EDUCACIÓN FÍSICA (PAGmesa miejecutable) datos y secciones del proceso.

En un proceso de alto nivel, el vaciado se puede dividir en seis pasos:

  1. Cree un proceso de destino en estado suspendido.
  2. Abra una imagen maliciosa.
  3. Desasignar código legítimo de la memoria del proceso.
  4. Asigne ubicaciones de memoria para códigos maliciosos y escriba cada sección en el espacio de direcciones.
  5. Establezca un punto de entrada para el código malicioso.
  6. Saque el proceso objetivo del estado suspendido.

En un hilo de alto nivel (ejecución), el secuestro se puede dividir en once pasos:

  1. Localice y abra un proceso objetivo para controlar.
  2. Asigne una región de memoria para código malicioso.
  3. Escriba código malicioso en la memoria asignada.
  4. Identifique el ID del hilo de destino que se va a secuestrar.
  5. Abra el hilo de destino.
  6. Suspender el hilo de destino.
  7. Obtenga el contexto del hilo.
  8. Actualice el puntero de instrucción al código malicioso.
  9. Reescribe el contexto del hilo de destino.
  10. Reanudar el hilo secuestrado.

En un nivel alto, la inyección de DLL se puede dividir en seis pasos:

  1. Localice un proceso de destino para inyectar.
  2. Abra el proceso de destino.
  3. Asigne una región de memoria para DLL maliciosa.
  4. Escriba la DLL maliciosa en la memoria asignada.
  5. Cargue y ejecute la DLL maliciosa.

Respuestas de la habitación

Identifique un PID de un proceso que se ejecuta como THM-Attacker al que apuntar. Una vez identificado, proporcione el PID como argumento para ejecutar. shellcode-inyector.exe ubicado en el directorio Injectors en el escritorio.

¿Qué bandera se obtiene después de inyectar el código shell?

Identificar un PID de un proceso que se ejecuta como THM-Attacker al objetivo. Proporcione el PID y el nombre del ejecutable como argumentos para ejecutar ahuecando-inyector.exe ubicado en el directorio de inyectores en el escritorio.

¿Qué bandera se obtiene después de vaciar e inyectar el código shell?

Identificar un PID de un proceso que se ejecuta como THM-Attacker al objetivo. Proporcione el PID como argumento para ejecutar hilo-inyector.exe ubicado en el directorio Injectors en el escritorio.

¿Qué bandera se obtiene después de secuestrar el hilo?

¿Qué protocolo se utiliza para ejecutar de forma asincrónica en el contexto de un hilo?

¿Qué se utiliza la llamada API de Windows para poner en cola una función APC?

¿Se puede utilizar el puntero de función nula en un proceso remoto? (t/n)

¿Qué llamada alternativa a la API de Windows utilizó TrickBot para crear un nuevo hilo de usuario?

¿Las técnicas de inyección empleadas por TrickBot fueron reflectantes? (t/n)

¿Qué nombre de función se utilizó para escribir ganchos manualmente?

Tutorial en vídeo

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos