BYOB Framework de Post-explotación de Código Abierto
BYOB Framework de Post-explotación de Código Abierto

BYOB: Framework de Post-explotación de Código Abierto

BYOB es un framework de post-explotación de código abierto para estudiantes, investigadores y desarrolladores. Incluye características como:

  • Servidor de mando y control con una interfaz de usuario intuitiva
  • Generador de carga útil personalizada para múltiples plataformas
  • 12 módulos de post-explotación

Está diseñado para permitir a los estudiantes y desarrolladores implementar fácilmente su propio código y añadir nuevas características interesantes sin tener que escribir un servidor C2 o una herramienta de administración remota desde cero.

This project has 2 main parts: theEste proyecto tiene 2 partes principales: la aplicación original basada en consola (/byob) y la GUI web (/web-gui).

Instalación y Configuración

Lo primero que tienes que hacer para empezar a usar BYOB es descargar el código de Github.

Necesitarás instalar Docker y Python para utilizar este software.

Una vez que hayas descargado el código de Github e instalado el software necesario, navega al directorio /byob/web-gui y ejecuta el script setup.sh. Esto construirá algunas imágenes Docker que son utilizadas por el generador de carga útil para la compilación cruzada de ejecutables.

Después de completar la instalación y la configuración, ahora puedes lanzar la GUI web ejecutando el comando python3 run.py desde el directorio /byob/web-gui.

Una vez que se está ejecutando, ahora puedes abrir tu navegador e ir a http://0.0.0.0:5000 para utilizar la GUI web.

Paso 1: Crear una cuenta

Una vez que la aplicación web está en funcionamiento, estás listo para crear una cuenta. Puedes hacerlo haciendo clic en el botón de registro en la parte superior derecha.

De este modo, te convertirás en el único administrador del servidor de mando y control y restringirás el acceso de otras personas.

Paso 2: Generar una carga útil

Una vez que hayas iniciado la sesión, lo primero que debes hacer es generar una carga útil. Para empezar, haz clic en el botón de Payloads en la parte superior de la pantalla para navegar a la página de payloads.

La página de cargas útiles tiene dos partes principales:

  • Generador de cargas útiles
  • Tabla de cargas útiles

Generador de carga útil

Generador de Payload en byob
Generador de Payload en byob

Python

Selecciona el formato “Python” para generar un script ofuscado en Python.

Python es independiente de la plataforma, por lo que no es necesario seleccionar un sistema operativo y una arquitectura de destino.

El tamaño del archivo es pequeño, sin embargo, Python debe estar instalado en la máquina de destino para ejecutarlo.

Ejecutable

Seleccione el formato “Executable” para compilar un ejecutable binario para un sistema operativo y una arquitectura de destino.

Debes seleccionar el sistema operativo y la arquitectura de la(s) máquina(s) de destino para compilar un ejecutable.

Esto funcionará en sistemas que no tienen Python instalado, sin embargo, el tamaño del archivo es sustancialmente mayor.

Tabla de cargas útiles

Debajo del generador de cargas útiles puede ver la tabla de cargas útiles, donde puedes descargar las cargas útiles que ha generado seleccionando el icono de “descarga” de la derecha, como se ve a continuación.

Tabla de Payloads en byob
Tabla de Payloads en byob

Puedes utilizar la ordenación por “Created” para encontrar la carga útil generada más recientemente. También hay una barra de búsqueda en la parte superior derecha de la tabla que puedes utilizar para ver sólo tus cargas útiles de Windows, por ejemplo.

Paso 3: Crear bots

Después de descargar un payload, puedes crear bots ejecutando el payload en máquinas de destino.

Esta plataforma es estrictamente para pruebas autorizadas y propósitos de educación, por lo que esto se hace simplemente descargando la carga útil en tu máquina virtual o entorno de pruebas.

En un escenario del mundo real, un atacante probablemente utilizaría un truco de ingeniería social para hacer que el objetivo ejecute la carga útil, como enviarlo como un archivo adjunto de correo electrónico disfrazado de una actualización de software.

Paso 4: Mando y control

Una vez que tengas una carga útil ejecutándose en una máquina objetivo, ¡estás listo para comandar y controlar tus bots!

Para empezar, haz clic en el botón del panel de control en la parte superior de la pantalla para navegar a tu tablero de mando y control.

El panel de control está diseñado para proporcionar una interfaz intuitiva de mando y control. Tiene 3 partes principales:

  1. Módulos de post explotación
  2. Tabla de bots
  3. Acceso al shell

Módulos de post-explotación

Selecciona un módulo de post-explotación utilizando el panel de la izquierda. Cada módulo contiene una descripción y una lista de las plataformas soportadas.

Módulos de post-explotación en byob
Módulos de post-explotación en byob

A continuación, selecciona los bots en los que se va a ejecutar haciendo clic en “Select All Bots” o seleccionando los bots de la tabla de bots de abajo.

Ahora haz clic en “Execute” y observa cómo llegan los resultados.

Tabla de bots

La tabla de bots contiene información identificativa de tus bots y te permite controlar su estado e interactuar con ellos directamente. Se puede buscar y ordenar por columnas para tu comodidad.

Si tus bots están minando monero, la columna “Hashes/Second” y el “Hashrate Graph” se actualizarán cada segundo para que puedas controlar tu progreso en tiempo real.

Tabla de bots en byob
Tabla de bots en byob

Puedes ver el historial de comandos y resultados de un bot haciendo clic en el botón “Results” de la derecha, o matar al bot haciendo clic en el icono de la papelera.

Y sí, ¡hacer clic en el icono de la terminal proporciona acceso directo al shell del bot!

Acceso al shell

Haz clic en el icono de terminal de cualquier bot para conectarte directamente a él a través del shell TCP inverso.

Un emulador de terminal con todas las funciones se ejecuta en el navegador y se comporta exactamente igual que el terminal de la máquina.

Acceso a Shell con byob
Acceso a Shell con byob

Esto te proporciona un acceso directo y un control total sobre la máquina para que pueda ejecutar las operaciones estándar del equipo rojo que requieren acceso al terminal.

Interfaz Web

Panel de Control

Un panel de control para tu servidor C2 con una interfaz de apuntar y hacer clic para ejecutar módulos de post-explotación. El panel de control incluye un mapa interactivo de los equipos cliente y un panel de control que permite una administración eficiente e intuitiva de los equipos cliente.

Panel Control de BYOB
Panel Control de BYOB

Aplicación de la Consola

Cliente

Genera clientes totalmente indetectables con cargas útiles escalonadas, importaciones remotas y módulos de post-explotación ilimitados

  1. Importaciones remotas: importar remotamente paquetes de terceros desde el servidor sin tener que escribirlos en el disco o descargarlos/instalarlos
  2. Nada escrito en el disco: los clientes nunca escriben nada en el disco, ni siquiera los archivos temporales (no se realizan llamadas al sistema de E/S) porque las importaciones remotas permiten cargar código arbitrario en la memoria de forma dinámica e importarlo directamente al proceso que se está ejecutando.
  3. Cero dependencias (ni siquiera el propio Python): el cliente se ejecuta sólo con la biblioteca estándar de python, importa remotamente cualquier paquete/módulo no estándar del servidor, y puede ser compilado con un intérprete de python independiente en un ejecutable binario portátil formateado para cualquier plataforma/arquitectura, lo que le permite ejecutarse en cualquier cosa, incluso cuando el propio Python no existe en el host de destino
  4. Añade nuevas funciones con un solo clic: cualquier script, módulo o paquete Python que copies en el directorio ./byob/modules/ se convierte automáticamente en importable de forma remota y directamente utilizable por todos los clientes mientras tu servidor de comando y control está en funcionamiento
  5. Escribir tus propios módulos: se proporciona una plantilla de módulo básica en el directorio ./byob/modules/ para que escribir tus propios módulos sea un proceso sencillo y sin complicaciones
  6. Ejecutar módulos ilimitados sin aumentar el tamaño de los archivos: utilizar las importaciones remotas para añadir funciones ilimitadas sin añadir un solo byte al tamaño del archivo del cliente
  7. Totalmente actualizable: cada cliente comprobará periódicamente si hay nuevos contenidos disponibles para la importación remota, y actualizará dinámicamente sus recursos en memoria si se ha añadido o eliminado algo
  8. Plataforma independiente: todo está escrito en Python (un lenguaje independiente de la plataforma) y los clientes generados pueden compilarse opcionalmente en un ejecutable portátil (Windows) o incluirse en una aplicación independiente (macOS)
  9. Evitar los cortafuegos: los clientes se conectan al servidor de mando y control a través de conexiones TCP inversas, lo que evitará la mayoría de los cortafuegos porque las configuraciones de filtro por defecto bloquean principalmente las conexiones entrantes
  10. Contra-medidas contra los antivirus: evita ser analizado por los antivirus bloqueando la aparición de procesos con nombres de productos antivirus conocidos
  11. Cifrar las cargas útiles para evitar su análisis: la carga útil principal del cliente se encripta con una clave aleatoria de 256 bits que existe únicamente en el gestor de carga útil que se genera junto con ella
  12. Evitar la ingeniería inversa: por defecto, los clientes abortarán la ejecución si se detecta una máquina virtual o una caja de arena

Módulos

Módulos de post-explotación que pueden ser importados remotamente por los clientes

  1. Persistence (byob.modules.persistence): establecer la persistencia en la máquina host utilizando 5 métodos diferentes
  2. Packet Sniffer (byob.modules.packetsniffer): ejecutar un sniffer de paquetes en la red del host y cargar el archivo .pcap
  3. Escalate Privileges (byob.modules.escalate): intentar eludir el UAC para obtener privilegios de administrador no autorizados
  4. Port Scanner (byob.modules.portscanner): escanear la red local en busca de otros dispositivos en línea y puertos abiertos
  5. Keylogger (byob.modules.keylogger): registra las pulsaciones del usuario y el nombre de la ventana introducido
  6. Screenshot (byob.modules.screenshot): tomar una captura de pantalla del escritorio del usuario actual
  7. Webcam (byob.modules.webcam): ver una transmisión en directo o capturar imágenes/vídeos de la cámara web
  8. Outlook (byob.modules.outlook): leer/buscar/cargar correos electrónicos desde el cliente local de Outlook
  9. Process Control (byob.modules.process): lista/busca/elimina/monitorea los procesos que se están ejecutando actualmente en el host
  10. iCloud (byob.modules.icloud): comprueba si has iniciado sesión en una cuenta de iCloud en macOS
  11. Miner (byob.core.miner): minar Monero en segundo plano usando el minero incorporado o XMRig

Servidor

Servidor de mando y control con base de datos persistente y consola

  1. Interfaz de usuario basada en la consola: interfaz de consola simplificada para controlar los equipos cliente de forma remota a través de shells TCP inversos que proporcionan acceso directo al terminal de los equipos cliente.
  2. Base de datos SQLite persistente: base de datos ligera que almacena información de identificación sobre los equipos cliente, permitiendo que las sesiones de shell TCP inverso persistan a través de desconexiones de duración arbitraria y permitiendo el reconocimiento a largo plazo
  3. Arquitectura cliente-servidor: todos los paquetes/módulos Python instalados localmente se ponen automáticamente a disposición de los clientes para que los importen remotamente sin necesidad de escribirlos en el disco de las máquinas de destino, lo que permite a los clientes utilizar módulos que requieren paquetes no instalados en las máquinas de destino

Núcleo

Módulos del framework de trabajo utilizados por el generador y el servidor

  1. Utilities (byob.core.util): funciones de utilidad diversas que son utilizadas por muchos módulos
  2. Security (byob.core.security): Diffie-Hellman IKE y 3 modos de cifrado (AES-256-OCB, AES-256-CBC, XOR-128)
  3. Loaders (byob.core.loaders): importar remotamente cualquier paquete/módulo/script del servidor
  4. Payloads (byob.core.payloads): shell TCP inverso diseñado para importar remotamente dependencias, paquetes y módulos
  5. Stagers (byob.core.stagers): Generar etapas únicas de carga útil para evitar el análisis y la detección
  6. Generators (byob.core.generators): funciones que generan dinámicamente código para el generador de clientes
  7. DAO (byob.core.dao): maneja la interacción entre el servidor de mando y control y la base de datos SQLite
  8. Handler (byob.core.handler): Gestor de peticiones HTTP POST para la subida de archivos remotos al servidor
Dark Mode

byob (este enlace se abre en una nueva ventana) por malwaredllc (este enlace se abre en una nueva ventana)

An open-source post-exploitation framework for students, researchers and developers.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda