BruteShark Herramienta Análisis de Red
BruteShark Herramienta Análisis de Red

Brute Shark: Herramienta de Análisis de Red

BruteShark es una Herramienta de Análisis Forense de Redes (NFAT) que realiza el procesamiento y la inspección en profundidad del tráfico de la red (principalmente de los archivos PCAP). Incluye: extracción de contraseñas, construcción de un mapa de red, reconstrucción de sesiones TCP, extracción de hashes de contraseñas cifradas e incluso conversión a formato Hashcat para realizar un ataque de Fuerza Bruta fuera de línea.

Acerca de

El objetivo principal del proyecto es dar solución a los investigadores de seguridad y a los administradores de redes con la tarea de analizar el tráfico de la red mientras tratan de identificar los puntos débiles que pueden ser utilizados por un atacante potencial para obtener acceso a los puntos críticos de la red.

Hay dos versiones de BruteShark disponibles, una aplicación basada en una interfaz gráfica de usuario (Windows) y una herramienta de interfaz de línea de comandos (Windows y Linux).

Los diversos proyectos de la solución también pueden utilizarse independientemente como infraestructura para analizar el tráfico de la red en máquinas Linux o Windows. Para más detalles ver la sección de Architecture.

El proyecto fue desarrollado en mi tiempo libre para abordar dos de mis principales pasiones: la arquitectura de software y el análisis de datos de red.

Me encanta recibir comentarios de los usuarios de BruteShark, ¡tu opinión es importante para mí! Siéntete libre de contactarme en contact.oded.shimon@gmail.com o crear un nuevo issue.

Por favor, dale estrellas a este repositorio si este proyecto te ayudó!

Lo que puede hacer

  • Extracción y codificación de nombres de usuario y contraseñas (HTTP, FTP, Telnet, IMAP, SMTP…)
  • Extraer los hashes de autenticación y crackearlos usando Hashcat (Kerberos, NTLM, CRAM-MD5, HTTP-Digest…)
  • Construir un diagrama de red visual (Nodos y usuarios de la red)
  • Reconstruir todas las sesiones del TCP
  • Tallado de archivos (File carving)

Descarga

wget https://github.com/odedshimon/BruteShark/releases/latest/download/BruteSharkCli.zip
unzip BruteSharkCli.zip 
mono BruteSharkCli/BruteSharkCli.exe

Ejemplos

Vídeo

Extracción de Hashes

Extracción de Hashes
Extracción de Hashes

Construyendo un diagrama de red

Diagrama de red
Diagrama de red

File Carving

Tallado de Archivos
Tallado de Archivos

Extracción de la contraseña

Extracción Contraseñas
Extracción Contraseñas

Reconstruir todas las sesiones TCP

Sesiones TCP
Sesiones TCP

Brute Shark CLI

Brute Shark versión CLI
Brute Shark versión CLI

Arquitectura

La solución está diseñada con una arquitectura de tres capas, incluyendo uno o más proyectos en cada capa – DAL, BLL y PL. La separación entre las capas se crea por el hecho de que cada proyecto se refiere sólo a sus propios objetos.

PcapProcessor (DAL)

Como Capa de Acceso a Datos, este proyecto es responsable de la lectura de los archivos PCAP en bruto utilizando los controladores apropiados (WinPcap, libpcap) y su biblioteca wrapper SharpPcap. Puede analizar una lista de archivos a la vez, y proporciona características adicionales como la reconstrucción de todas las sesiones TCP (usando el impresionante proyecto TcpRecon).

PcapAnalyzer (BLL)

La Capa de Lógica de Negocios (Business Logic Layer), responsable de analizar la información de la red (paquete, sesión TCP, etc.), implementa un mecanismo pluggable. Cada plugin es básicamente una clase que implementa la interfaz IModule. Todos los plugins se cargan por reflexión:

private void _initilyzeModulesList()
{
    // Create an instance for any available modules by looking for every class that 
    // implements IModule.
    this._modules = AppDomain.CurrentDomain.GetAssemblies()
                    .SelectMany(s => s.GetTypes())
                    .Where(p => typeof(IModule).IsAssignableFrom(p) && !p.IsInterface)
                    .Select(t => (IModule)Activator.CreateInstance(t))
                    .ToList();

    // Register to each module event.
    foreach(var m in _modules)
    {
        m.ParsedItemDetected += (s, e) => this.ParsedItemDetected(s, e);
    }
    
}
BruteSharkDesktop (PL)

Aplicación de escritorio para Windows basada en WinForms. Utiliza un proyecto transversal por el significado de que se refiere a las capas DAL y BLL. Esto se hace componiendo cada una de las capas, registrando a sus eventos, cuando el evento se dispara, lanza el objeto del evento al objeto equivalente de la siguiente capa, y lo envía a la siguiente capa.

public MainForm()
{
    InitializeComponent();

    _files = new HashSet<string>();

    // Create the DAL and BLL objects.
    _processor = new PcapProcessor.Processor();
    _analyzer = new PcapAnalyzer.Analyzer();
    _processor.BuildTcpSessions = true;

    // Create the user controls. 
    _networkMapUserControl = new NetworkMapUserControl();
    _networkMapUserControl.Dock = DockStyle.Fill;
    _sessionsExplorerUserControl = new SessionsExplorerUserControl();
    _sessionsExplorerUserControl.Dock = DockStyle.Fill;
    _hashesUserControl = new HashesUserControl();
    _hashesUserControl.Dock = DockStyle.Fill;
    _passwordsUserControl = new GenericTableUserControl();
    _passwordsUserControl.Dock = DockStyle.Fill;

    // Contract the events.
    _processor.TcpPacketArived += (s, e) => _analyzer.Analyze(Casting.CastProcessorTcpPacketToAnalyzerTcpPacket(e.Packet));
    _processor.TcpSessionArived += (s, e) => _analyzer.Analyze(Casting.CastProcessorTcpSessionToAnalyzerTcpSession(e.TcpSession));
    _processor.FileProcessingStarted += (s, e) => SwitchToMainThreadContext(() => OnFileProcessStart(s, e));
    _processor.FileProcessingEnded += (s, e) => SwitchToMainThreadContext(() => OnFileProcessEnd(s, e));
    _processor.ProcessingPrecentsChanged += (s, e) => SwitchToMainThreadContext(() => OnProcessingPrecentsChanged(s, e));
    _analyzer.ParsedItemDetected += (s, e) => SwitchToMainThreadContext(() => OnParsedItemDetected(s, e));
    _processor.TcpSessionArived += (s, e) => SwitchToMainThreadContext(() => OnSessionArived(Casting.CastProcessorTcpSessionToBruteSharkDesktopTcpSession(e.TcpSession)));
    _processor.ProcessingFinished += (s, e) => SwitchToMainThreadContext(() => OnProcessingFinished(s, e));

    InitilizeFilesIconsList();
    this.modulesTreeView.ExpandAll();
}
BruteSharkCLI (PL)

La versión de la interfaz de la línea de mando de Brute Shark. Multiplataforma Windows y Linux (con Mono). Comandos disponibles:

  • (1). help
  • (2). add-file
  • (3). start
  • (4). show-passwords
  • (5). show-hashes
  • (6). export-hashes
  • (7). exit

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda