FindObjects BOF es un proyecto de Cobalt Strike Beacon Object File (BOF) que utiliza llamadas directas al sistema para enumerar procesos para módulos específicos o identificadores de procesos.
¿Para qué es este repositorio?
- Utilice llamadas directas al sistema dentro de los archivos de objetos de baliza para enumerar procesos para módulos cargados específicos (por ejemplo, winhttp.dll, amsi.dll o clr.dll).
- Utilice llamadas directas al sistema dentro de los archivos de objetos de baliza para enumerar procesos para identificadores de procesos específicos (por ejemplo, lsass.exe).
- Evite el uso de Windows y las API nativas tanto como sea posible (para evitar los ganchos de usuario).
- Ejecute este código dentro del proceso de baliza con archivos de objeto de baliza para evitar la bifurcación y ejecución.
¿Por qué necesito esto?
El uso de llamadas directas al sistema a través de ensamblaje en línea en código BOF ofrece una forma más segura de interactuar con el sistema. El uso de llamadas directas al sistema evita que el software AV / EDR intercepte las llamadas API en modo de usuario.
- La
FindModule
bof se puede utilizar para identificar procesos que han cargado un módulo en particular, por ejemplo, el tiempo de ejecución de .NETclr.dll
o elwinhttp.dll
Módulo. Esta información se puede usar para seleccionar un candidato de spawnto seguro para opsec cuando se usa Cobalt Strikeexecute-assembly
o antes de inyectar un shellcode exfill beacon con elshinject
Mando.
- La
FindProcHandle
bof se puede utilizar para identificar procesos con un identificador de proceso particular en uso, p. ej.lsass.exe
Proceso. Si hay un proceso dentro del sistema con unlsass.exe
Identificador de proceso: podemos usar este identificador / proceso existente para leer o escribir en la memoria sin abrir un nuevo identificador de proceso. Esto evita la capacidad de ciertos AV / EDR para detectar y bloquear el acceso al proceso / memoria LSASS.
¿Cómo configuro esto?
No entregamos binarios compilados. Tienes que hacer esto tú mismo:
- Clona este repositorio.
- Asegúrese de que el compilador Mingw-w64 esté instalado. Por ejemplo, en Mac OSX puede utilizar la colección de puertos para instalar Mingw-w64 (
sudo port install mingw-w64
). - Ejecutar el
make
Comando para compilar el archivo de objeto de baliza. - En Cobalt Strike, usa el
Script Manager
para cargar el FindObjects.cna Texto. - En un contexto de Cobalt Strike Beacon, use el
FindProcHandle
oFindModule
Comando con los parámetros requeridos (p. Ej., Módulo o nombre de proceso).