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
- Windows – descargar Instalador Windows (64 Bit).
- Linux – descargar BruteSharkCli.zip y eejcutar BruteSharkCli.exe usando MONO:
wget https://github.com/odedshimon/BruteShark/releases/latest/download/BruteSharkCli.zip
unzip BruteSharkCli.zip
mono BruteSharkCli/BruteSharkCli.exe
Ejemplos

Construyendo un diagrama de red

File Carving

Extracción de la contraseña

Reconstruir todas las sesiones TCP

Brute Shark 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
BruteShark (este enlace se abre en una nueva ventana) por odedshimon (este enlace se abre en una nueva ventana)
Network Analysis Tool