Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
BokuLoader — Un proof-of-concept de Reflective Loader para Cobalt Strike que tiene como objetivo recrear, integrar y mejorar las funciones de evasión de Cobalt Strike. | Kitploit
Herramientas/GitHubGitHub/xforcered/bokuloader
Frameworks de Pruebas de PenetraciónEvasión de IDS/IPSPost-ExplotaciónComando y ControlRed TeamingDesarrollo de PayloadsAtaque Adversario
GitHubxforcered/bokuloader

BokuLoader

Un proof-of-concept de Reflective Loader para Cobalt Strike que tiene como objetivo recrear, integrar y mejorar las funciones de evasión de Cobalt Strike.

Ver Repositorio
3352539hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

BokuLoader: Cobalt Strike Reflective Loader

Una prueba de concepto de User-Defined Reflective Loader (UDRL) que tiene como objetivo recrear, integrar y mejorar las funciones de evasión de Cobalt Strike.

Contribuidores:

ContribuidorTwitterContribuciones notables
Bobby Cooke@0xBokuAutor original y mantenedor del proyecto
Santiago Pecin@s4ntiago_pMejoras importantes del Reflective Loader
Chris Spehn@ConsciousHackerScripting de Aggressor
Joshua Magri@passthehashbrwnHooking de IAT
Dylan Tran@d_tranmanReflective Call Stack Spoofing
James Yeung@5cript1diotIndirect System Calls

Consideraciones de uso del UDRL

El Cobalt Strike reflective loader integrado es robusto y maneja todas las funciones de evasión de Malleable PE que Cobalt Strike ofrece. La principal desventaja de usar un UDRL personalizado es que las funciones de evasión de Malleable PE pueden o no ser compatibles de fábrica.

El objetivo del proyecto público BokuLoader es ayudar a los equipos rojos a crear su propio UDRL interno para Cobalt Strike. El proyecto pretende ser compatible con todas las funciones de evasión de Malleable PE de CS que valgan la pena. Algunas funciones de evasión aprovechan la integración con CS, otras han sido recreadas por completo y algunas no son compatibles.

Antes de usar este proyecto, en cualquier forma, debes probar adecuadamente que las funciones de evasión funcionan como se espera. Entre el código C y el script de Aggressor, la compilación con diferentes versiones de sistemas operativos, compiladores y Java puede devolver resultados diferentes.

Funciones de evasión

Funciones de evasión específicas de BokuLoader

  • Reflective callstack spoofing mediante marcos sintéticos.
  • Código de reflective loader personalizado en ASM/C.
  • Indirect NT syscalls mediante las técnicas HellsGate y HalosGate.
    • Todos los cambios de protección de memoria para todas las opciones de asignación se realizan mediante indirect syscall a NtProtectVirtualMemory.
  • obfuscate "true" con implementación personalizada del script de Aggressor del UDRL.
  • NOHEADERCOPY
    • El loader no copiará las cabeceras de la DLL beacon cruda a la DLL beacon virtual. Los primeros 0x1000 bytes serán nulos.
  • XGetProcAddress para resolver símbolos.
    • No usa Kernel32.GetProcAddress.
  • xLoadLibrary para resolver la dirección base de las DLL y la carga de DLL.
    • Para las DLL cargadas, obtiene la dirección base de la DLL desde TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList.
    • No usa Kernel32.LoadLibraryA.
  • Cifrado César para ofuscación de cadenas.
  • Tamaño de UDRL de 100k.
  • Los nombres de las DLL importadas y las cadenas de nombres de las entradas importadas se sobrescriben (stomped) en la DLL beacon virtual.

Funciones de evasión de Malleable PE compatibles

ComandoOpción(es)Compatible
allocatorHeapAlloc, MapViewOfFile, VirtualAllocTodas compatibles mediante la implementación de BokuLoader
module_x64string (Nombre de DLL)Compatible mediante la implementación de BokuLoader. Se aplican los mismos requisitos de sobrescritura de DLL que en la implementación de CS
obfuscatetrue/falseLos beacons HTTP/S son compatibles mediante la implementación de BokuLoader. SMB/TCP actualmente no es compatible con obfuscate true. Detalles en el issue. Se acepta ayuda si puedes corregirlo :)
entry_pointRVA como número decimalCompatible mediante la implementación de BokuLoader
cleanuptrueCompatible mediante la integración con CS
userwxtrue/falseCompatible mediante la implementación de BokuLoader
sleep_mask(true/false) o (Sleepmask Kit+true)Compatible. Cuando se usa el "sleepmask true" por defecto (sin sleepmask kit) establece "userwx true". Cuando se usa el sleepmask kit que soporta memoria RX de beacon.text (src47/Ekko) establece "sleepmask true" y "userwx false".
magic_mz_x64cadena de 4 caracteresCompatible mediante la integración con CS
magic_pecadena de 2 caracteresCompatible mediante la integración con CS
transform-x64 prependcadena hexadecimal escapadaModificación del script de Aggressor BokuLoader.cna
transform-x64 strrepcadena cadenaModificación del script de Aggressor BokuLoader.cna
stomppetrue/falseNo compatible. BokuLoader no copia las cabeceras de la DLL beacon. Los primeros 0x1000 bytes de la DLL beacon virtual son 0x00
checksumnúmeroExperimental. Modificación del script de Aggressor BokuLoader.cna
compile_timecadena de fecha-horaExperimental. Modificación del script de Aggressor BokuLoader.cna
image_size_x64valor decimalNo compatible
namecadenaExperimental. Modificación del script de Aggressor BokuLoader.cna
rich_headercadena hexadecimal escapadaExperimental. Modificación del script de Aggressor BokuLoader.cna
stringwcadenaNo compatible
stringcadenaNo compatible

Pruebas

  • (22/02/23) Los 4 métodos de asignación probados con threatexpress/malleable-c2/master/jquery-c2.4.7.profile

Orígenes del proyecto

  • Basado en el increíble proyecto Reflective Loader de Stephen Fewer:
    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • Creado inicialmente mientras se trabajaba con los vídeos de Reflective DLL de Renz0h del Curso Sektor7 Malware Developer Intermediate (MDI)

Uso

  1. Compila el archivo objeto de BokuLoader con make
  2. Inicia tu Cobalt Strike Team Server
  3. Dentro de Cobalt Strike, importa el script de Aggressor BokuLoader.cna
  4. Genera el beacon x64 (Attacks -> Packages -> Windows Executable (S))
  5. Usa la Script Console para asegurarte de que BokuLoader se implementó en la compilación del beacon
  • No es compatible con la opción x86. El binario x86 es el archivo objeto del Reflective Loader original.
  • La generación de beacons RAW funciona de fábrica. Cuando se usa Artifact Kit para el loader del beacon, la variable stagesize debe ser mayor que la predeterminada.
    • Consulta la documentación de Cobalt Strike sobre User-Defined Reflective Loader para obtener información adicional

Guía de detección

Cadenas hardcodeadas

  • BokuLoader cambia algunas cadenas comúnmente detectadas por nuevos valores hardcodeados. Estas cadenas se pueden usar para crear firmas de BokuLoader:
Cadena original de Cobalt StrikeCadena de BokuLoader en Cobalt Strike
ReflectiveLoaderBokuLoader
Microsoft Base Cryptographic Provider v1.012367321236742382543232341241261363163151d
(admin)(tomin)
beaconbacons

Asignadores de memoria

Descargar herramienta