Convert Figma logo to code with AI

SpecterOps logoBloodHound-Legacy

Six Degrees of Domain Admin

10,006
1,744
10,006
83

Top Related Projects

Six Degrees of Domain Admin

A Python based ingestor for BloodHound

2,532

Tool for Active Directory Certificate Services enumeration and abuse

PowerUpSQL: A PowerShell Toolkit for Attacking SQL Server

PowerSploit - A PowerShell Post-Exploitation Framework

4,254

Trying to tame the three-headed dog.

Quick Overview

BloodHound-Legacy is an open-source tool designed for analyzing Active Directory environments. It uses graph theory to reveal hidden and often unintended relationships within an AD network, helping security professionals and attackers alike to identify potential attack paths and security vulnerabilities.

Pros

  • Provides a visual representation of AD relationships, making complex network structures easier to understand
  • Helps identify and prioritize critical vulnerabilities in AD environments
  • Offers powerful query capabilities to find specific attack paths and privilege escalation opportunities
  • Integrates well with other security tools and penetration testing frameworks

Cons

  • Can be resource-intensive when analyzing large AD environments
  • Requires careful handling of sensitive data collected during enumeration
  • May trigger security alerts or be flagged as malicious by some antivirus software
  • Learning curve can be steep for users unfamiliar with graph theory or Neo4j

Getting Started

  1. Clone the repository:

    git clone https://github.com/SpecterOps/BloodHound-Legacy.git
    
  2. Install dependencies:

    cd BloodHound-Legacy
    npm install
    
  3. Build the application:

    npm run build
    
  4. Start BloodHound:

    npm start
    
  5. Use SharpHound or other data collection tools to gather AD data, then import the data into BloodHound for analysis.

Note: This is the legacy version of BloodHound. For the latest version and most up-to-date instructions, refer to the current BloodHound repository.

Competitor Comparisons

Six Degrees of Domain Admin

Pros of BloodHound-Legacy

  • Established and well-known tool in the cybersecurity community
  • Extensive documentation and community support
  • Proven track record for Active Directory security assessments

Cons of BloodHound-Legacy

  • Older codebase may lack some modern features
  • May have compatibility issues with newer systems
  • Potentially slower performance compared to newer versions

Code Comparison

BloodHound-Legacy:

$GroupName = "Domain Admins"
$Group = Get-ADGroup -Identity $GroupName
$Members = Get-ADGroupMember -Identity $Group -Recursive
$Members | Select-Object Name, SamAccountName, DistinguishedName

BloodHound-Legacy:

$GroupName = "Domain Admins"
$Group = Get-ADGroup -Identity $GroupName
$Members = Get-ADGroupMember -Identity $Group -Recursive
$Members | Select-Object Name, SamAccountName, DistinguishedName

Summary

Both BloodHound-Legacy repositories appear to be identical, as they share the same name and codebase. The comparison provided above is based on the assumption that one repository might be a fork or mirror of the other. In reality, there are no significant differences between the two repositories, as they are likely the same project. Users should refer to the official SpecterOps BloodHound repository for the most up-to-date and actively maintained version of the tool.

A Python based ingestor for BloodHound

Pros of BloodHound.py

  • Written in Python, making it more accessible and easier to modify
  • Lightweight and can be run directly from the command line
  • Supports various authentication methods, including Kerberos

Cons of BloodHound.py

  • Limited graphical interface compared to BloodHound-Legacy
  • May lack some advanced features present in the full BloodHound suite
  • Potentially slower performance for large-scale data collection

Code Comparison

BloodHound.py:

def get_domain_computers(self):
    entries = self.ldap_session.search(self.domain_dumper.root, '(objectClass=computer)')
    return [entry['attributes']['dNSHostName'][0] for entry in entries]

BloodHound-Legacy (JavaScript):

function getDomainComputers() {
    return session.run('MATCH (c:Computer) RETURN c.name')
        .then(result => result.records.map(record => record.get('c.name')));
}

The code snippets demonstrate the difference in language and approach. BloodHound.py uses LDAP queries directly, while BloodHound-Legacy interacts with a Neo4j database using Cypher queries.

Both projects serve similar purposes but cater to different use cases and preferences. BloodHound.py is more suitable for users comfortable with Python and command-line tools, while BloodHound-Legacy offers a more comprehensive GUI-based solution with potentially more features for advanced users.

2,532

Tool for Active Directory Certificate Services enumeration and abuse

Pros of Certipy

  • Focused specifically on Active Directory Certificate Services (AD CS) exploitation
  • Offers a comprehensive set of tools for certificate-based attacks
  • Regularly updated with new features and bug fixes

Cons of Certipy

  • Narrower scope compared to BloodHound-Legacy's broader AD attack surface coverage
  • May require more specialized knowledge to use effectively
  • Less extensive community support and documentation

Code Comparison

BloodHound-Legacy (PowerShell):

Get-DomainComputer -Properties dnshostname,ms-ds-machineaccountquota

Certipy (Python):

certipy find -u user@domain.local -p Password123 -dc-ip 10.0.0.1

BloodHound-Legacy focuses on broader AD enumeration and attack path visualization, while Certipy specializes in certificate-based attacks. BloodHound-Legacy uses PowerShell for most operations, whereas Certipy is Python-based, offering cross-platform compatibility. Both tools are valuable for penetration testers and security researchers, but they serve different purposes within the Active Directory security assessment landscape.

PowerUpSQL: A PowerShell Toolkit for Attacking SQL Server

Pros of PowerUpSQL

  • Focused specifically on SQL Server security assessment and exploitation
  • Extensive set of PowerShell cmdlets for various SQL Server tasks
  • Regular updates and active community support

Cons of PowerUpSQL

  • Limited to SQL Server environments, unlike BloodHound's broader AD focus
  • Steeper learning curve for users unfamiliar with SQL Server internals
  • Requires more manual analysis compared to BloodHound's visual interface

Code Comparison

PowerUpSQL:

# Example: Get SQL Server instances
Get-SQLInstanceDomain | Get-SQLServerInfo -Verbose

BloodHound-Legacy:

# Example: Collect AD data
. .\BloodHound.ps1
Invoke-BloodHound -CollectionMethod All

Both tools use PowerShell, but PowerUpSQL focuses on SQL Server-specific cmdlets, while BloodHound-Legacy targets Active Directory data collection. PowerUpSQL provides more granular control over SQL Server operations, whereas BloodHound-Legacy offers a broader scope for AD environment analysis.

PowerSploit - A PowerShell Post-Exploitation Framework

Pros of PowerSploit

  • More comprehensive toolkit with a wider range of post-exploitation modules
  • Actively maintained with regular updates and contributions
  • Extensive documentation and community support

Cons of PowerSploit

  • Larger codebase, potentially more complex to use and maintain
  • May trigger more antivirus alerts due to its widespread recognition
  • Requires more careful handling to avoid detection during penetration testing

Code Comparison

PowerSploit:

function Invoke-Mimikatz
{
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)]
        [Alias('FullName')]
        [ValidateNotNullOrEmpty()]
        [String[]]
        $ComputerName = $Env:COMPUTERNAME
    )

BloodHound-Legacy:

function Get-BloodHoundData
{
    [CmdletBinding()]
    Param(
        [Parameter(Position = 0, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)]
        [Alias('FullName')]
        [ValidateNotNullOrEmpty()]
        [String[]]
        $ComputerName = $Env:COMPUTERNAME
    )

Both repositories provide powerful tools for penetration testing and security assessment. PowerSploit offers a broader range of functionalities, while BloodHound-Legacy focuses specifically on Active Directory analysis. The code snippets show similarities in function structure, indicating that both projects follow similar PowerShell coding practices.

4,254

Trying to tame the three-headed dog.

Pros of Rubeus

  • Focused on Kerberos ticket manipulation and attacks
  • Actively maintained with regular updates
  • Extensive documentation and usage examples

Cons of Rubeus

  • Limited to Kerberos-related functionality
  • Requires more technical expertise to use effectively
  • Windows-only tool, limiting cross-platform usage

Code Comparison

BloodHound-Legacy (PowerShell):

Get-DomainUser -Identity "jdoe" | Get-DomainSPNTicket

Rubeus (C#):

Rubeus.exe asktgt /user:jdoe /domain:contoso.com /rc4:HASH

Both tools can be used for Kerberos-related tasks, but Rubeus offers more granular control and a wider range of Kerberos-specific functions. BloodHound-Legacy, on the other hand, provides a broader set of Active Directory enumeration and analysis capabilities beyond just Kerberos operations.

While BloodHound-Legacy is part of a larger ecosystem for visualizing Active Directory relationships, Rubeus focuses solely on Kerberos ticket manipulation and related attacks. This specialization allows Rubeus to offer more advanced Kerberos-specific features but limits its scope compared to the comprehensive AD analysis provided by BloodHound-Legacy.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Latest Version of BloodHound Community Edition is Released

For the latest version of BloodHound you may follow this link to the BloodHound Community Edition repository.

Deprecation Notice

This repository will be archived in the near future.


Build GitHub release (latest SemVer) GitHub all releases

Getting Started with BloodHound

To get started with BloodHound, check out the BloodHound docs.

About BloodHound

BloodHound is a single page Javascript web application, built on top of Linkurious, compiled with Electron, with a Neo4j database fed by a C# data collector.

BloodHound uses graph theory to reveal the hidden and often unintended relationships within an Active Directory or Azure environment. Attackers can use BloodHound to easily identify highly complex attack paths that would otherwise be impossible to quickly identify. Defenders can use BloodHound to identify and eliminate those same attack paths. Both blue and red teams can use BloodHound to easily gain a deeper understanding of privilege relationships in an Active Directory or Azure environment.

BloodHound was created by @_wald0, @CptJesus, and @harmj0y.

BloodHound is maintained by the BloodHound Enterprise team.

About BloodHound Enterprise

BloodHound Enterprise is an Attack Path Management solution that continuously maps and quantifies Active Directory Attack Paths. You can remove millions, even billions of Attack Paths within your existing architecture and eliminate the attacker’s easiest, most reliable, and most attractive techniques.

Downloading BloodHound Binaries

Pre-Compiled BloodHound binaries can be found here.

The rolling release will always be updated to the most recent source. Tagged releases are considered "stable" but will likely not have new features or fixes.

Creating example data

A sample database generator can be found here

You can create your own example Active Directory environment using BadBlood.

License

BloodHound uses graph theory to reveal hidden relationships and attack paths in an Active Directory environment. Copyright (C) 2016-2023 Specter Ops Inc.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.