Convert Figma logo to code with AI

hashtopolis logoserver

Hashtopolis - distributed password cracking with Hashcat

1,421
212
1,421
164

Top Related Projects

20,838

World's fastest and most advanced password recovery utility

9,984

John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs

1,420

Hashtopolis - distributed password cracking with Hashcat

Crack hashes in seconds.

A tool for automating cracking methodologies through Hashcat from the TrustedSec team.

Quick Overview

Hashtopolis is an open-source client-server application designed for distributed password cracking. It allows users to manage and distribute cracking tasks across multiple machines, providing a centralized interface for monitoring progress and managing resources. The server component handles task distribution, result collection, and user management.

Pros

  • Scalable distributed cracking: Efficiently utilizes multiple machines for password cracking tasks
  • Web-based interface: Easy to use and manage through a centralized web UI
  • Supports various cracking tools: Compatible with popular tools like Hashcat
  • Detailed statistics and reporting: Provides comprehensive insights into cracking progress and performance

Cons

  • Complex setup: Initial configuration and deployment can be challenging for beginners
  • Requires multiple components: Needs server, agent, and database setup, which may increase complexity
  • Limited documentation: Some advanced features and configurations may lack detailed explanations
  • Potential security risks: If not properly secured, it could be misused for malicious purposes

Getting Started

To set up the Hashtopolis server:

  1. Clone the repository:

    git clone https://github.com/hashtopolis/server.git
    
  2. Install dependencies:

    cd server
    composer install
    
  3. Configure the database in src/inc/conf.php

  4. Set up the database schema:

    php src/bin/hashtopolis.php db-init
    
  5. Start the server (e.g., using PHP's built-in server for testing):

    php -S localhost:8000 -t src
    
  6. Access the web interface at http://localhost:8000 and complete the setup wizard.

Note: For production use, it's recommended to set up a proper web server like Apache or Nginx.

Competitor Comparisons

20,838

World's fastest and most advanced password recovery utility

Pros of hashcat

  • Highly optimized password cracking tool with support for various hash types
  • Utilizes GPU acceleration for faster cracking speeds
  • Extensive documentation and active community support

Cons of hashcat

  • Focused solely on password cracking, lacking broader password management features
  • Requires more technical expertise to use effectively
  • Limited built-in reporting and analysis capabilities

Code Comparison

hashcat:

static int generate_hash_sha256(const u8 *pw_buf, const int pw_len, u8 *digest)
{
  sha256_ctx_t ctx;
  sha256_init   (&ctx);
  sha256_update (&ctx, pw_buf, pw_len);
  sha256_final  (&ctx);
  memcpy (digest, ctx.h, 32);
  return 0;
}

hashtopolis:

public function getHashlistById($hashlistId) {
    $queryFilter = new QueryFilter(Hashlist::HASHLIST_ID, $hashlistId, "=");
    $list = $this->getDB()->query(Hashlist::class, $queryFilter);
    if ($list === null || sizeof($list) == 0) {
      return null;
    }
    return $list[0];
}

Summary

Hashcat is a powerful, specialized password cracking tool with GPU acceleration, while Hashtopolis is a distributed hash cracking management system. Hashcat excels in raw cracking performance but requires more technical knowledge. Hashtopolis offers a more user-friendly interface for managing cracking tasks across multiple machines, but may not match Hashcat's raw speed for individual cracking jobs.

9,984

John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs

Pros of John the Ripper

  • Standalone password cracking tool with extensive algorithm support
  • Highly optimized for performance on various hardware
  • Large community and long-standing reputation in the security field

Cons of John the Ripper

  • Primarily command-line based, less user-friendly for beginners
  • Limited built-in distributed cracking capabilities
  • Requires manual management of wordlists and rules

Code Comparison

John the Ripper (config file example):

[List.Rules:Wordlist]
# Simple word mangling rules
$[0-9]$[0-9]
$[0-9]$[0-9]$[0-9]
$[a-zA-Z]

Hashtopolis (API usage example):

$response = $FACTORIES::getAgentFactory()->getDB()->query("SELECT * FROM agents WHERE active = '1'");
$agents = array();
while ($agent = $response->fetch()) {
    $agents[] = $agent;
}

John the Ripper focuses on password cracking algorithms and rules, while Hashtopolis is designed for managing distributed cracking tasks. John's code typically involves configuration files and command-line usage, whereas Hashtopolis uses a web-based interface with PHP backend for task management and agent communication.

1,420

Hashtopolis - distributed password cracking with Hashcat

Pros of server

  • Identical repository structure and content
  • Same features and functionality
  • Consistent development and maintenance

Cons of server

  • No unique advantages over the other repository
  • Potential confusion for users due to duplicate repositories
  • Redundant maintenance efforts

Code comparison

Both repositories contain identical code. Here's a sample from the index.php file in both:

<?php

use DBA\Factory;
use DBA\User;
use DBA\QueryFilter;
use DBA\AccessGroupUser;

require_once(dirname(__FILE__) . "/inc/load.php");

if (!Login::getInstance()->isLoggedin()) {
  header("Location: login.php?err=4" . time() . "&fw=" . urlencode($_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING']));
  die();
}

Summary

The comparison between server and server reveals that they are identical repositories. This unusual situation might be due to a mirroring setup or an unintentional duplication. Users should be cautious when choosing between these repositories, as they offer the same content and features. It's recommended to investigate the reasons behind this duplication and potentially consolidate the repositories to avoid confusion and streamline development efforts.

Crack hashes in seconds.

Pros of Hash-Buster

  • Lightweight and easy to use for quick hash cracking tasks
  • Supports multiple online hash cracking services
  • Can be run directly from the command line without setup

Cons of Hash-Buster

  • Limited to online hash cracking services, no local cracking capabilities
  • Less scalable for large-scale hash cracking operations
  • Fewer advanced features and customization options

Code Comparison

Hash-Buster:

def crack(hash):
    data = urlencode({"hash": hash, "decrypt": "Decrypt"})
    html = urlopen("http://md5decrypt.net/en/Sha256/", data.encode())
    find = compile(r'<b>[^<]*</b>').findall(html.read().decode())
    return find[0][3:-4] if len(find) > 0 else False

Hashtopolis (server):

public function getTask($taskId) {
    $queryFactory = $this->getQueryFactory();
    $task = $queryFactory->getQuery(Task::class);
    return $task->fetch($taskId);
}

The code snippets show that Hash-Buster is focused on direct hash cracking using online services, while Hashtopolis is designed as a more comprehensive task management system for distributed hash cracking. Hashtopolis offers a more structured approach with database interactions and task management, suitable for larger-scale operations.

A tool for automating cracking methodologies through Hashcat from the TrustedSec team.

Pros of hate_crack

  • Focused specifically on password cracking and hash analysis
  • Includes automated wordlist generation and rule application
  • Lightweight and easy to set up for individual use

Cons of hate_crack

  • Limited to password cracking tasks, less versatile than Hashtopolis
  • Lacks distributed computing capabilities for large-scale operations
  • No built-in web interface for management and monitoring

Code Comparison

hate_crack:

def hate_crack():
    print_banner()
    check_dependencies()
    menu_options = [
        ("Analyze hashes", analyze_hashes),
        ("Calculate hashrate", calculate_hashrate),
        ("Create wordlist", create_wordlist),
    ]

Hashtopolis (server):

public function getTask($taskId) {
    $task = $this->taskFactory->get($taskId);
    if ($task === null) {
        throw new TaskNotFoundException("Task with ID $taskId not found!");
    }
    return $task;
}

The code snippets show that hate_crack is written in Python and focuses on specific password cracking functions, while Hashtopolis is written in PHP and provides a more general-purpose task management system for distributed computing.

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

Hashtopolis

Hashtopolis

CodeFactor LoC Hashtopolis Build

Hashtopolis is a multi-platform client-server tool for distributing hashcat tasks to multiple computers. The main goals for Hashtopolis's development are portability, robustness, multi-user support, and multiple groups management. The application has two parts:

  • Agent Python client, easily customizable to suit any need.
  • Server several PHP/CSS files operating on two endpoints: an Admin GUI and an Agent Connection Point

Aiming for high usability even on restricted networks, Hashtopolis communicates over HTTP(S) using a human-readable, hashing-specific dialect of JSON.

The server part runs on PHP using MySQL as the database back end. It is vital that your MySQL server is configured with performance in mind. Queries can be very expensive and proper configuration makes the difference between a few milliseconds of waiting and disastrous multi-second lags. The database schema heavily profits from indexing. Therefore, if you see a hint about pre-sorting your hashlist, please do so.

The web admin interface is the single point of access for all client agents. New agent deployments require a one-time password generated in the New Agent tab. This reduces the risk of leaking hashes or files to rogue or fake agents.

There are parts of the documentation and wiki which are not up-to-date. If you see anything wrong or have questions on understanding descriptions, join our Discord server at https://discord.gg/S2NTxbz.

To report a bug, please create an issue and try to describe the problem as accurately as possible. This helps us to identify the bug and see if it is reproducible.

In an effort to make the Hashtopussy project conform to a more politically neutral name it was rebranded to "Hashtopolis" in March 2018.

Features

  • Easy and comfortable to use
  • Dark and light theme
  • Accessible from anywhere via web interface or user API
  • Server component highly compatible with common web hosting setups
  • Unattended agents
  • File management for word lists, rules, ...
  • Self-updating of both Hashtopolis and Hashcat
  • Cracking multiple hashlists of the same hash type as though they were a single hashlist
  • Running the same client on Windows, Linux and macOS
  • Files and hashes marked as "secret" are only distributed to agents marked as "trusted"
  • Many data import and export options
  • Rich statistics on hashes and running tasks
  • Visual representation of chunk distribution
  • Multi-user support
  • User permission levels
  • Various notification types
  • Small and/or CPU-only tasks
  • Group assignment for agents and users for fine-grained access-control
  • Compatible with crackers supporting certain flags
  • Report generation for executed attacks and agent status
  • Multiple file distribution variants

Setup and Usage

Please visit the wiki for more information on setup and upgrade.

Some screenshots of Hashtopolis (by winxp5421 and s3in!c): Imgur1 Imgur2

Contribution Guidelines

We are open to all kinds of contributions. If it's a bug fix or a new feature, feel free to create a pull request. Please consider some points:

  • Just include one feature or one bugfix in one pull request. In case you have two new features please also create two pull requests.
  • Try to stick with the code style used (especially in the PHP parts). IntelliJ/PHPStorm users can get a code style XML here.

The pull request will then be reviewed by at least one member and merged after approval. Don't be discouraged just because the first review is not approved, often these are just small changes.

Thanks

  • winxp5421 for testing, writing help texts and a lot of input ideas
  • blazer for working on the csharp agent and hops for working on the python agent
  • Cynosure Prime for testing
  • atom for hashcat
  • curlyboi for the original Hashtopus code
  • 7zip binaries are compiled from here
  • uftp binaries are compiled from here