DEV Community

Cover image for HellRush: Building a Python-Based DDoS Simulation Toolkit for Security Education
Mohamed
Mohamed

Posted on

HellRush: Building a Python-Based DDoS Simulation Toolkit for Security Education

HellRush: Building a Python-Based DDoS Simulation Toolkit for Security Education

Image description

Overview

I've built HellRush, an open-source educational toolkit that simulates various DDoS attack vectors and includes network reconnaissance tools. Written in pure Python with no external dependencies, it's designed specifically for security professionals and students to learn in controlled environments. Check it out on GitHub.

The Problem with Security Education

As someone who's spent years in cybersecurity, I've often encountered a significant problem when teaching network security concepts: the gap between theoretical knowledge and practical application.

Theory alone doesn't prepare security professionals for real-world scenarios. But using actual attack tools in educational settings presents ethical and legal challenges.

That's why I built HellRush – a comprehensive toolkit that bridges this gap while maintaining an ethical focus.

What HellRush Does

HellRush consists of two main Python scripts:

1. Network Reconnaissance (resolver.py)

The first stage of any security assessment is reconnaissance. HellRush's resolver component handles:


python
# Usage example
python resolver.py -d targetdomain.com
This performs:

Domain to IP resolution (including multiple IPs)
Port scanning across common service ports
Detailed visual output of findings
Here's a sample of the resolver output:

Resolver Output

2. DDoS Simulation Engine (hR.py)
The core component provides six different attack vectors:

Python
# Basic syntax
python hR.py -t TARGET_IP -a ATTACK_TYPE -p PORT -s SIZE -d DURATION
Available attack types include:

UDP Flood: Overwhelms ports with UDP traffic

Python
python hR.py -t 192.168.1.100 -a udp -p 53 -d 30
SYN Flood: Exploits TCP handshake process

Python
python hR.py -t 192.168.1.100 -a syn -p 80 -d 30
ICMP Flood: Ping-based flooding

Python
python hR.py -t 192.168.1.100 -a icmp -d 30
HTTP Flood: Web server request flooding

Python
python hR.py -t 192.168.1.100 -a http -p 80 -d 30
DNS Amplification: Simulates DNS amplification attacks

Python
python hR.py -t 192.168.1.100 -a dns -d 30
Slowloris: Connection exhaustion technique

Python
python hR.py -t 192.168.1.100 -a slowloris -p 80 -d 30
Technical Implementation Details
Pure Python Philosophy
I deliberately avoided external dependencies to make HellRush as portable as possible. Everything is built using the Python standard library:

Python
import socket
import random
import time
import threading
import argparse
import sys
import itertools
Multithreading for Realistic Simulation
Each attack vector runs in its own thread while a progress animation displays in the main thread:

Python
def launch_attack(attack_type, target_ip, target_port, packet_size, duration, stop_event):
    if attack_type == "udp":
        udp_flood(target_ip, target_port, packet_size, duration, stop_event)
    elif attack_type == "syn":
        syn_flood(target_ip, target_port, duration, stop_event)
    # Additional attack vectors...

# In main():
attack_thread = threading.Thread(target=launch_attack, 
                                args=(args.attack, args.target, args.port, 
                                      args.size, args.duration, stop_event))
animation_thread = threading.Thread(target=animate_attack, 
                                   args=(args.duration, stop_event))
Real-time Animation
For better UX, an animation shows attack progress:

Python
def animate_attack(duration, stop_event):
    spinner = itertools.cycle(['|', '/', '-', '\\'])
    start_time = time.time()
    while time.time() - start_time < duration and not stop_event.is_set():
        sys.stdout.write('\rAttacking... ' + next(spinner))
        sys.stdout.flush()
        time.sleep(0.1)
    sys.stdout.write('\rAttack finished.    \n')
Ethical Considerations
As a security tool developer, I take ethics seriously. HellRush is:

Educational - Created specifically for learning environments
Open source - Code transparency ensures no hidden functionality
Well-documented - Clear usage guidelines and ethical warnings
MIT Licensed - Requires ethical usage
Important: Using HellRush against systems without explicit permission is illegal and unethical.

Key Learning Points from Building HellRush
Socket Programming Nuances - Working with different protocols (UDP, TCP, ICMP) revealed interesting implementation challenges
Threading in Python - Managing thread synchronization with events for clean termination
User Experience - Even in CLI tools, progress indicators greatly improve usability
Ethical Design - Building guardrails into security tools from the beginning
What's Next?
I'm actively developing HellRush with several features planned:

Additional attack vectors
Reporting capabilities
Network traffic visualization
Defense mechanism testing
Try It Yourself
HellRush is available on GitHub under the MIT License:

bash
# Clone the repository
git clone https://github.com/medjahdi/HellRush.git

# Navigate to directory
cd HellRush

# View help
python hR.py -h
Contribute
If you're interested in network security education, I welcome:

Bug reports
Feature suggestions
Code contributions
Documentation improvements
What other features would you find useful in a security education toolkit? Let me know in the comments!
Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.