Skip to content
/ ipflux Public

A powerful multi-threaded TCP SYN flood tool designed for network security research and testing. Features raw socket implementation, customizable attack parameters, and comprehensive command-line interface.

License

Notifications You must be signed in to change notification settings

vmlopt/ipflux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPFLUX

IPFLUX is a high-performance TCP SYN flood tool designed for network testing and security research. It generates spoofed TCP SYN packets to overwhelm target systems, simulating distributed denial-of-service (DDoS) attacks for testing purposes.

Features

  • Multi-threaded SYN packet generation for maximum performance
  • Customizable target IP address, port, and packet parameters
  • Configurable thread count and packet length
  • Raw socket implementation for direct packet crafting
  • Proper TCP checksum calculation for valid packets
  • Graceful shutdown with signal handling
  • Command-line interface with comprehensive options
  • IP spoofing capabilities for testing network defenses

Prerequisites

  • GCC compiler
  • POSIX threads (pthread) library
  • Linux/Unix-like operating system with raw socket support
  • Root privileges (required for raw socket operations)

Installation

  1. Clone or download the source code
  2. Navigate to the project directory
  3. Build the application:
make

This will create the ipflux executable in the build directory.

Optional: System Installation

To install IPFLUX system-wide (requires root privileges):

sudo make install

Or install to user directory (no root required):

make install-user

The user installation places IPFLUX in ~/bin/ipflux. Make sure ~/bin is in your PATH.

Usage

Basic Usage

sudo ./build/ipflux

This starts the SYN flood with default settings:

  • Target: 192.168.1.1:80
  • Threads: 4
  • Packet length: 1500 bytes

Command Line Options

./build/ipflux [options]

Options:

  • -i, --ip <target_ip> Target IP address (default: 192.168.1.1)
  • -p, --port <port> Target port (default: 80)
  • -l, --packet-len <length> Packet length in bytes (default: 1500)
  • -t, --threads <count> Number of threads (default: 4)
  • -h, --help Show help message

Examples

Attack a specific IP and port with custom settings:

sudo ./build/ipflux -i 192.168.1.100 -p 80 -t 16 -l 1200

Use long options for clarity:

sudo ./build/ipflux --ip 10.0.0.1 --port 443 --threads 32 --packet-len 1500

Display help information:

./build/ipflux --help

Output

IPFLUX displays real-time information during operation:

`7MMF'`7MM"""Mq.`7MM"""YMM `7MMF'    `7MMF'   `7MF'`YMM'   `MP'
  MM    MM   `MM. MM    `7   MM        MM       M    VMb.  ,P
  MM    MM   ,M9  MM   d     MM        MM       M     `MM.M'
  MM    MMmmdM9   MM""MM     MM        MM       M       MMb
  MM    MM        MM   Y     MM      , MM       M     ,M'`Mb.
  MM    MM        MM         MM     ,M YM.     ,M    ,P   `MM.
.JMML..JMML.    .JMML.     .JMMmmmmMMM  `bmmmmd"'  .MM:.  .:MMa.

[IPFLUX] TCP SYN Flood Attack Configuration
[IPFLUX] Target: 192.168.1.100:80
[IPFLUX] Packet Length: 1500 bytes
[IPFLUX] Threads: 16
[IPFLUX] Press Ctrl+C to stop the attack

[IPFLUX] Thread 0 started flooding 192.168.1.100:80
[IPFLUX] Thread 1 started flooding 192.168.1.100:80
...

Stopping the Attack

Press Ctrl+C to stop the SYN flood. IPFLUX will display a shutdown message and cleanly terminate all threads:

[IPFLUX] Received signal 2. Stopping flood threads...
[IPFLUX] Thread 0 stopped
[IPFLUX] Thread 1 stopped
...
[IPFLUX] Attack stopped. Exiting...

Technical Details

  • Maximum threads: Limited by system resources
  • Packet crafting: Raw socket implementation with proper IP/TCP headers
  • Checksum calculation: Accurate TCP checksum using pseudo headers
  • IP spoofing: Random source IP addresses for each packet
  • Thread safety: Proper synchronization and signal handling
  • Memory management: Dynamic thread allocation with cleanup

Packet Structure

Each SYN packet includes:

  • IP Header: Spoofed source IP, correct destination IP
  • TCP Header: Random source port, target destination port, SYN flag set
  • Checksums: Valid TCP and IP checksums for packet authenticity

Threading Model

  • Main thread handles argument parsing and coordination
  • Worker threads generate and send SYN packets independently
  • Signal handler coordinates graceful shutdown across all threads

Security Notice

WARNING: This tool is designed for network security testing and research purposes only. Unauthorized use against systems you do not own or have explicit permission to test may violate laws and regulations. Always ensure you have proper authorization before conducting any network testing.

Please read the DISCLAIMER.md file for important legal and ethical guidelines.

Legal and Ethical Use

  • Use only on networks/systems you own or have explicit permission to test
  • Follow responsible disclosure practices
  • Comply with local laws and regulations regarding network testing
  • Consider the impact on network infrastructure and services

Build Targets

  • make: Build the application
  • make clean: Remove build artifacts
  • make install: Install to /usr/local/bin (requires root)
  • make install-user: Install to ~/bin (no root required)
  • make uninstall: Remove from /usr/local/bin (requires root)

Project Structure

ipflux/
├── src/                    # Source files
│   ├── main.c              # Main program entry point
│   ├── args.c              # Command line argument parsing
│   ├── network.c           # Network functions (checksum, raw sockets)
│   ├── flood.c             # SYN flood worker threads
│   ├── display.c           # Banner and display functions
│   └── signal.c            # Signal handling
├── include/                # Header files
│   ├── ipflux_common.h     # Main header including all components
│   ├── ipflux_args.h       # Argument parsing declarations
│   ├── ipflux_network.h    # Network function declarations
│   ├── ipflux_flood.h      # Flood function declarations
│   ├── ipflux_display.h    # Display function declarations
│   ├── ipflux_signal.h     # Signal handling declarations
│   └── ipflux_headers.h    # Network protocol headers
├── build/                  # Build output directory
├── build.sh                # Alternative build script
├── Makefile               # Build configuration
├── README.md              # This file
├── LICENSE                # MIT License
└── DISCLAIMER.md          # Legal disclaimer and usage guidelines

Troubleshooting

Permission Denied

If you get permission errors, ensure you're running with root privileges:

sudo ./build/ipflux

Build Errors

If compilation fails, ensure you have the required dependencies:

# Install build essentials (Ubuntu/Debian)
sudo apt-get install build-essential

# Install build essentials (CentOS/RHEL)
sudo yum groupinstall "Development Tools"

Network Issues

If packets aren't being sent, check:

  • Network interface is up
  • No firewall blocking raw sockets
  • Correct target IP address is reachable

Contributing

This is a specialized security testing tool. Contributions should focus on:

  • Code optimization and performance improvements
  • Bug fixes and stability enhancements
  • Documentation improvements
  • Additional safety features

All contributors must read and agree to the DISCLAIMER.md guidelines.

Future Plans

  • OpenSSL Integration: Coming soon - enhanced encryption and security features

About

A powerful multi-threaded TCP SYN flood tool designed for network security research and testing. Features raw socket implementation, customizable attack parameters, and comprehensive command-line interface.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published