BruteShark

其他类别 2025-08-06

  • 关于
    • 它可以做什么
    • 下载
  • 例子
  • 用法
    • BruteShark桌面
    • BruteShark CLI
    • 模块
  • 建筑学
  • 贡献

关于

BruteShark是一种网络法医分析工具(NFAT),可对网络流量进行深入处理和检查(主要是PCAP文件,但也能够直接实现从网络接口中捕获)。它包括:提取密码,构建网络图,重建TCP会话,提取加密密码的哈希,甚至将其转换为Hashcat格式,以执行离线蛮力攻击。

该项目的主要目标是为安全研究人员和网络管理员提供网络流量分析的任务,同时试图识别潜在攻击者可以使用的弱点,以访问网络上的关键点。

提供两个BruteShark版本,一个基于GUI的应用程序(Windows)和命令行接口工具(Windows和Linux)。
解决方案中的各种项目也可以独立地用作分析Linux或Windows机器上网络流量的基础架构。有关更多详细信息,请参见“体系结构”部分。

该项目是在我的业余时间开发的,目的是解决我的两个主要热情:软件体系结构和分析网络数据。

我喜欢从BruteShark用户那里获得反馈,您的意见对我来说很重要!请随时通过Contact.oded.shimon@gmail.com与我联系或创建新问题。

请如果此项目对您有所帮助,请提供此存储库!

另外,如果您觉得很慷慨,可以给我买咖啡

它可以做什么

  • 提取和编码用户名和密码(http,ftp,telnet,imap,smtp ...)
  • 提取身份验证哈希并使用hashcat(Kerberos,ntlm,cram-md5,http-digest ...)破解它们。
  • 构建视觉网络图(网络节点,开放端口,域用户)
  • 提取DNS查询
  • 重建所有TCP和UDP会话
  • 文件雕刻
  • 提取VoIP调用(SIP,RTP)

下载

视窗
  • 先决条件:
    • NPCAP驱动程序(Wireshark默认安装其中之一)
    • .NET Core运行时(请注意,您必须针对您的需求安装适当的运行时,这意味着BruteShark桌面的.NET Core桌面运行时和BruteShark CLI的.NET Core Runtime )。
  • 对于桌面版本,下载BruteShark桌面Windows安装程序(64位)。
  • 对于CLI版本,下载BruteShark Cli Windows 10可执行文件。
Linux
  • 先决条件:libpcap驱动程序
  • 下载BruteShark CLI并将其运行:
    BruteSharkCli ./ BruteShark Cli">
    wget https://*gith*ub.c*om/odedshimon/BruteShark/releases/latest/download/ BruteShark Cli
    ./ BruteShark Cli

例子

视频

构建网络图
https://user-images.githubu*se**rcontent.com/18364847/131922221-5714F351-851-85F7-4490-BEC9-8DA4339B666B3.MP4
BruteShark CLI用法示例 - 提取多个密码和哈希(也可以在YouTube上找到)
https://user-images.github*us*erc*ontent.com/18364847/131924013-8B2AA18B-0941-456E-A09D-7999999902554166.MP4

哈希提取
构建网络图
构建网络图
文件雕刻
密码提取
重建所有TCP会议
提取VoIP调用
野蛮的鲨鱼CLI

用法

通常,建议负载,运行和探索结果。
可以从此处下载的示例PCAP文件,这些方案演示了所有BruteShark功能。
请注意,分析网络流量是一种消耗时间和资源的操作,因此建议在加载大文件时仅选择所需的模块。
应特别注意“构建TCP会话” /“构建UDP会话”选项。

BruteShark桌面

GUI是非常不言自明的,只需加载所需的文件,配置所需的模块,然后按Run按钮。

BruteShark CLI

BruteShark CLI是Linux和Windows用户的BruteShark的CLI版本。它具有BruteShark桌面的所有功能,并设计用于从外壳中运行。作为经典的CLI工具,它可以通过获取用于处理的所有相关参数,然后将结果打印到Stdout或Files。

打印帮助菜单:

 BruteShark Cli --help

从目录中的所有文件中获取凭据(密码和哈希都将打印到STDOUT):

 BruteShark Cli -m Credentials -d "C:UsersKingDesktopPcap Files"

从目录中的所有文件中获取凭据,还可以将提取的哈希(如果发现)导出到HashCat输入文件。

 BruteShark Cli -m Credentials -d C:UsersKingDesktopPcap_Examples -o C:UsersKingDesktopResults

在目录中的所有文件上运行多个模块,并导出所有结果。

 BruteShark Cli -m Credentials,NetworkMap,FileExtracting -d C:UsersKingDesktopPcap_Examples -o C:UsersKingDesktopResults

嗅探一个名为“ Wi-Fi”的接口,运行多个模块,并将所有结果导出到目录(仅在通过击中CTRL + C停止Sniffer时才导出结果)。

 BruteShark Cli -l Wi-Fi -m Credentials,NetworkMap,FileExtracting,DNS -o C:UsersKingDesktopTest Export

模块

BruteShark是一种模块化工具,设计用于扩展。

凭证模块

该模块负责提取和编码用户名和密码以及身份验证哈希。实际上,该模块负责更新两个显示表,密码表和哈希表。虽然用户名和密码直接使用,但在更复杂的攻击中最常用的哈希(例如,通过刺激或野蛮的攻击)来获取密码。 BruteShark与Hashcat集成在一起,因此所有提取的哈希都可以转换为Hashcat输入文件。

协议 哈希类型 hascat模式(-m)
http http-digest 11400
SMTP imap CRAM-MD5 16400
NTLM(例如SMB) NTLMV1 5500
NTLM(例如SMB) NTLMV2 5600
kerberos AS-REQ ETYPE 23 7500
kerberos AS-REP ETYPE 23 18200
kerberos TGS-REP ETYPE 23 13100
Kerberos(AES128) TGS-REP ETYPE 17 19600年
Kerberos(AES256) TGS-REP ETYPE 18 19700年
网络图模块

该模块负责通过识别网络中的组件及其之间的连接来构建网络图。网络映射可以导出到两个JSON文件,一个文件包含网络中的所有连接,一个文件包含所有端点以及有关它们的相关信息(例如开放端口,DNS映射等)。这些文件可用于使用外部工具(例如Neo4J)进行分析。

文件提取模块

该模块试图从UDP / TCP会话中提取文件(因此,请注意,为了使该模块有效,应该打开“构建TCP会话” /“构建UDP会话”)。当前,该模块支持“标头”算法的经典取证技术,该算法对具有JPG,PNG,PDF(PDF)等已知文件标头和页脚的文件有效。

VoIP调用模块

该模块从SIP和RTP协议中提取VoIP调用。提取的呼叫可以作为原始音频文件导出,并且可以使用适当的音频播放器播放(例如Audacity)

建筑学

所有BruteShark项目均使用.NET Core和.NET标准进行现代和跨平台支持实施。该解决方案是使用三层体系结构设计的,包括每个层的一个或多个项目-DAL,BLL和PL。图层之间的分离是由于每个项目仅引用其自己的对象而创建的。

PCAPPROCESSOR(DAL)

作为数据访问层,该项目负责使用适当的驱动程序(WinPCAP,LIBPCAP)和Chris Morgan的惊人包装库Sharppcap读取RAW PCAP文件。可以一次分析文件列表,并提供其他功能,例如所有TCP会话的重建(使用Awesome Project TCPrecon)。

PCAPANALYZER(BLL)

负责分析网络信息(数据包,TCP会话等)的业务逻辑层实现了可插入的机制。每个插件基本上都是实现接口Imodule的类。所有插件都使用反射加载:

 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 ) ;
    }
    
} 
BruteShark桌面(PL)

基于Winforms的Windows桌面应用程序。使用一个横切项目,其含义它引用了DAL和BLL层。这是通过组成每个图层,在事件中注册,当事件触发时注册到其事件,将事件对象施加到下一个层等效对象,然后将其发送到下一层。

BruteSharkDesktopTcpSession(e.TcpSession))); _processor.ProcessingFinished += (s, e) => SwitchToMainThreadContext(() => OnProcessingFinished(s, e)); InitilizeFilesIconsList(); this.modulesTreeView.ExpandAll(); }">
 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 . CastProcessorTcpSessionTo BruteShark DesktopTcpSession ( e . TcpSession ) ) ) ;
    _processor . ProcessingFinished += ( s , e ) => SwitchToMainThreadContext ( ( ) => OnProcessingFinished ( s , e ) ) ;

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

贡献

首先,感谢您抽出宝贵的时间做出贡献! BruteShark欢迎所有人的贡献。

在为此存储库做出贡献时,请先在进行更改之前首先讨论您希望通过发行或电子邮件进行的更改。

你怎么贡献?

  • 从BruteShark问题中实现新功能,寻找“良好的第一期”和“ Help Wants”标签。
  • 上传示例PCAP文件,尤其是文件,其中包含有趣的内容。
  • 通过创建问题提出新功能。
  • 通过创建问题报告错误。
  • 讨论代码的当前状态。
  • 创建使用BruteShark的视频和示例教程。
下载源码

通过命令行克隆项目:

git clone https://github.com/odedshimon/BruteShark.git