Construye tu propia botnet [Python]

Iniciado por K A I L, Agosto 07, 2018, 08:29:23 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 07, 2018, 08:29:23 AM Ultima modificación: Agosto 07, 2018, 08:52:01 AM por K A I L


Que tal Underc0ders, les traigo este proyecto de código abierto que me encontré navegando, nos permite crear nuestra propia botnet haciendo pequeñas modificaciones en el código, el cual esta escrito 100% en Python.

BYOB (Build Your Own Botnet)

Descargo de responsabilidad: Este proyecto debe ser utilizado para pruebas autorizadas o con fines educativos únicamente.

BYOB es un proyecto de código abierto que proporciona un marco para que investigadores y desarrolladores de seguridad construyan y operen un botnet básico para profundizar su comprensión del malware sofisticado que infecta millones de dispositivos cada año y genera botnets modernas, con el fin de mejorar su capacidad para desarrollar contramedidas contra estas amenazas.

Está diseñado para permitir a los desarrolladores implementar fácilmente su propio código y agregar nuevas características interesantes sin tener que escribir desde cero una RAT (herramienta de administración remota) o un C&C (servidor de comando y control).

La clave del RAT es que los códigos / archivos arbitrarios pueden cargarse de forma remota en la memoria desde el C&C y ejecutarse en la máquina de destino sin escribir nada en el disco.

El proyecto cuenta de 4 partes:

Servidor


Código: php
server.py [-h] [-v] [--host HOST] [--port PORT] [--database DATABASE]


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


  • Interfaz de usuario basado en consola: Interfaz por consola para controlar las máquinas clientes de forma remota a través de shells reversas.
  • Base de datos persistente de SQLite: Base de datos liviana que almacena información de identificación de las máquinas clientes, lo que permite que las sesiones de reversas persistan y habiliten el reconocimiento a largo plazo de nuestros clientes.
  • Arquitectura Cliente-Servidor: Todos los paquetes/módulos python instalados localmente están disponibles automáticamente para que los clientes los importen de forma remota sin tocar el disco, permitiendo a los clientes utilizar módulos que requieren paquetes no instalados en las máquinas de destino.

Cliente

Código: php
client.py [-h] [-v] [--name NAME] [--icon ICON] [--pastebin API] [--encrypt] [--obfuscate] [--compress] [--compile] host port [module [module ...]]


Genere clientes completamente indetectables con cargas útiles escalonadas, importaciones remotas y módulos ilimitados


  • Importaciones remotas: Importe remotamente paquetes de terceros desde el servidor sin escribirlos en el disco o descargarlos/instalarlos.
  • No hay nada escrito en el disco: Los clientes nunca escriben nada en el disco, ni siquiera archivos temporales (se realizan cero llamadas al sistema) porque las importaciones remotas permiten que el código arbitrario se cargue dinámicamente en la memoria y se importe directamente en el proceso en ejecución.
  • Cero Dependencias: El cliente ejecuta solo la biblioteca estándar de Python, importa de forma remota cualquier paquete/módulo no estándar del servidor y puede compilarse 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 Python mismo falta en el host de destino.
  • Agregue nuevas funciones con solo 1 clic: Cualquier secuencia de comandos, módulo o paquete de Python que usted copie en el directorio ./byob/modules/ automáticamente se puede importar de forma remota y puede ser utilizado directamente por cada cliente mientras su servidor de comando y control se está ejecutando.
  • Escriba sus propios módulos: Se proporciona una plantilla de módulo básico en el directorio ./byob/modules/ para que la escritura de sus propios módulos sea un proceso sencillo y sin problemas.
  • Ejecutar módulos ilimitados sin distender el tamaño del archivo: Utilice importaciones remotas para agregar funciones ilimitadas sin agregar un solo byte al tamaño del archivo del cliente.
  • Totalmente Actualizable: Cada cliente revisará periódicamente el servidor para buscar nuevo contenido disponible para la importación remota, y actualizará dinámicamente sus recursos en memoria si se ha agregado / eliminado algo.
  • 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 agruparse en una aplicación independiente (macOS).
  • Bypass Firewalls: Los clientes se conectan al servidor de comando y control a través de conexiones TCP inversas, lo que evitará la mayoría de los firewalls porque las configuraciones de filtro predeterminadas bloquean principalmente las conexiones entrantes.
  • Medidas contra los antivirus: Evita ser analizado por antivirus al bloquear procesos con nombres de productos antivirus conocidos.
  • Encriptar payloads para evitar el análisis: La carga útil del cliente principal se cifra con una clave aleatoria de 256 bits que existe únicamente en la clasificación de carga útil que se genera junto con ella.
  • Evitar la ingeniería inversa: De forma predeterminada, los clientes cancelarán la ejecución si se detecta una máquina virtual o un entorno limitado.

Módulos

Por el momento existen 11 módulos post-explotación que son remotamente importables por los clientes:


  • Keylogger (byob.modules.keylogger): Registra las pulsaciones del teclado del usuario y el nombre de Windows ingresado.
  • Screenshot (byob.modules.screenshot): Toma una captura de pantalla del escritorio del usuario actual.
  • Webcam (byob.modules.webcam): Visualiza streaming o captura imágenes/videos desde la cámara web.
  • Ransom (byob.modules.ransom): Cifra archivos y genera una billetera BTC aleatoria para el pago de un rescate.
  • Outlook (byob.modules.outlook): Lee/busca/sube correos electrónicos del cliente local de Outlook.
  • Packet Sniffer (byob.modules.packetsniffer): Ejecuta un sniffer de paquetes en la red de host y sube el archivo .pcap.
  • Persistence (byob.modules.persistence): Establece persistencia en la máquina host usando 5 métodos diferentes.
  • Phone (byob.modules.phone): Lee/busca/sube mensajes de texto desde el smartphone del cliente.
  • Escalate Privileges (byob.modules.escalate): Intenta el bypass de UAC para obtener privilegios de administrador no autorizados.
  • Port Scanner (byob.modules.portscanner): Escanea la red local en busca de otros dispositivos online y puertos abiertos.
  • Process Control (byob.modules.process): Lista/busca/mata/monitoriza los procesos actualmente en ejecución en el host.

Core

Módulos del framework principal utilizados por el generador y el servidor


  • Utilities (byob.core.util): Funciones de utilidades varias que son utilizadas por muchos módulos.
  • Handlers (byob.core.handlers): Handlers para recibir resultados de tareas completadas en clientes.
  • Security (byob.core.security): Diffie-Hellman IKE y 3 modos de cifrado (AES-256-OCB, AES-256-CBC, XOR-128).
  • Loaders (byob.core.loaders): Importa de forma remota cualquier paquete/módulo/scripts del servidor.
  • Payloads (byob.core.payloads): Shell inverso TCP diseñado para importar de forma remota dependencias, paquetes y módulos.
  • Stagers (byob.core.stagers): Generan payloads de stagers únicos para evitar el análisis y la detección.
  • Generators (byob.core.generators): Funciones que generan dinámicamente código para el generador de clientes.
  • Database (byob.core.database): Maneja la interacción entre el servidor de comando y control y la base de datos SQLite.

To Do

Los autores de la herramienta comentan que cualquier contribución es bienvenida así que siéntete libre! De momento tienen identificado lo siguiente por hacer:


  • Cifrado de las importaciones remotas: Cifrado para los flujos de datos de paquetes/módulos que se importan de forma remota (para mantener la confidencialidad/autenticidad/integridad y evitar cualquier vulnerabilidad remota de ejecución de código derivada de la deserialización).
  • Tipos de transporte: Agregar soporte para más tipos de transporte (HTTP/S, DNS, etc.).
  • Mejorar el módulo de teléfono/SMS: Agregar la capacidad de propagación a través de correos electrónicos/mensajes de texto cuando se encuentre una lista de contactos en el host de destino.
  • Mejorar el módulo de Outlook/Correo electrónico: Agregar la capacidad de difusión a través de correos electrónicos/mensajes de texto cuando se encuentre una lista de contactos en el host de destino.
  • Mejorar el módulo de Ransom: Agregar métodos para usar una API de intercambio de Bitcoins para generar direcciones de billetera temporales que son exclusivas del host objetivo, hacerlas caducar después de un número determinado de horas sin recibir pago y notificar al servidor C&C cuando se realice el pago o la billetera caduque.
  • Correción de errores: Corregir cualquier error o problema.

Para acceder al código en GitHub: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Sin más, espero que les guste y puedan realizar sus propias pruebas.

Saludos!
K A I L