Process-BOF proporciona comandos para inspeccionar, analizar y controlar procesos en el sistema comprometido. Estos comandos son esenciales para el reconocimiento previo a la inyección, la identificación de procesos sensibles y el control temporal de procesos de seguridad.

Agentes compatibles: Beacon, Gopher | Plataforma: Windows


findobj

Busca objetos específicos dentro de los procesos en ejecución.

findobj module

Busca un módulo (DLL) cargado en todos los procesos del sistema. Devuelve una lista de procesos que tienen esa DLL en su espacio de memoria.

findobj module <nombre_modulo>
ArgumentoRequeridoDescripción
nombre_moduloSiNombre de la DLL a buscar (ej: clr.dll)

Ejemplos:

# Buscar procesos con .NET cargado (para execute-assembly)
findobj module clr.dll

# Buscar procesos con amsi.dll (AV/EDR)
findobj module amsi.dll

# Buscar procesos con WinHTTP (posibles procesos con conexión web)
findobj module winhttp.dll

Situaciones de uso:

  • Antes de usar execute-assembly, buscar procesos con clr.dll cargado para inyectar assemblies .NET en un proceso que ya tiene el runtime.
  • Identificar procesos que cargan módulos de seguridad como amsi.dll o DLLs de EDR específicas.
  • Encontrar procesos candidatos para inyección que ya tengan las dependencias necesarias.

findobj prochandle

Busca qué procesos tienen handles abiertos hacia un proceso específico. Útil para identificar procesos de seguridad que monitorizan procesos sensibles.

findobj prochandle <nombre_proceso>
ArgumentoRequeridoDescripción
nombre_procesoSiNombre del proceso objetivo (ej: lsass.exe)

Ejemplos:

# Qué procesos tienen handles a LSASS
findobj prochandle lsass.exe

# Qué procesos monitorizan csrss.exe
findobj prochandle csrss.exe

# Verificar si algún EDR tiene handle a nuestro proceso
findobj prochandle svchost.exe

Situaciones de uso:

  • Antes de intentar volcar credenciales con hashdump o nanodump, verificar qué procesos de seguridad están vigilando LSASS.
  • Identificar productos de EDR/AV activos que mantienen handles a procesos críticos.
  • Evaluar el riesgo de detección antes de operaciones sensibles.

process conn

Muestra las conexiones de red (TCP/UDP) asociadas a un proceso específico.

process conn <pid>
ArgumentoRequeridoDescripción
pidSiID del proceso

Ejemplos:

# Ver conexiones del proceso con PID 4532
process conn 4532

# Verificar conexiones de un servicio web
process conn 1234

Situaciones de uso:

  • Identificar procesos que realizan conexiones a internet (posibles canales de comunicación).
  • Verificar que un listener bind TCP está escuchando en el puerto correcto.
  • Analizar el tráfico de red de un proceso sospechoso durante la investigación.
  • Encontrar procesos con conexiones establecidas que podrían usarse como cobertura para el tráfico del agente.

procfreeze

Permite suspender y reanudar procesos completos. Congela o descongela todos los hilos de un proceso.

procfreeze freeze

Suspende todos los hilos de un proceso objetivo.

procfreeze freeze <pid>
ArgumentoRequeridoDescripción
pidSiID del proceso a congelar

procfreeze unfreeze

Reanuda todos los hilos de un proceso previamente suspendido.

procfreeze unfreeze <pid>
ArgumentoRequeridoDescripción
pidSiID del proceso a descongelar

Ejemplos:

# Congelar un proceso de AV temporalmente
procfreeze freeze 2844

# Realizar operaciones sensibles...
hashdump

# Descongelar el proceso
procfreeze unfreeze 2844

Situaciones de uso:

  • Suspender temporalmente procesos de EDR/AV antes de ejecutar operaciones que serían detectadas (volcado de credenciales, inyección).
  • Pausar un proceso para analizar su estado sin que modifique archivos o conexiones.
  • Congelar procesos de monitorización durante ventanas de operación cortas.

Advertencia: Un proceso de seguridad congelado por mucho tiempo puede generar alertas en la consola de administración del EDR/AV, ya que dejará de enviar heartbeats. Usa esta técnica solo durante operaciones breves.


Flujo de trabajo recomendado

  1. Usa findobj module para identificar procesos candidatos para inyección.
  2. Usa findobj prochandle para verificar qué procesos de seguridad están monitorizando tus objetivos.
  3. Si es necesario, usa procfreeze freeze para suspender temporalmente procesos de seguridad.
  4. Realiza tus operaciones (inyección, volcado de credenciales, etc.).
  5. Usa procfreeze unfreeze para restaurar los procesos suspendidos.
  6. Usa process conn para verificar las conexiones de red del agente inyectado.