Complete setup and installation instructions for the AttackSim security testing framework across multiple Linux distributions and platforms.
- Quick Start
- System Requirements
- Installation Methods
- Supported Distributions
- Dependency Details
- Verification
- Troubleshooting
./run_all.sh --setup-only # Install dependencies only
./run_all.sh https://example.com # Run security scanThe run_all.sh script will automatically:
- Detect your Linux distribution
- Install all required and optional dependencies
- Verify the installation
- Launch the framework
Choose your preferred installation method:
# Bash script (recommended for Linux)
./setup.sh --auto
# Python script (cross-platform)
python3 setup.py --auto
# Or interactive mode
./setup.sh # Shows menu
python3 setup.py # Shows menu- OS: Linux, macOS, or WSL2 (Windows)
- Python: 3.9 or later
- RAM: 512MB minimum (2GB recommended)
- Disk: 500MB for framework + dependencies
- Python: 3.11+
- RAM: 4GB+
- Network: Internet access for initial setup
- Permissions: Sudo access (for system package installation)
Recommended for Linux users.
# Automatic detection
./setup.sh --auto
# Interactive mode
./setup.sh
# Force specific distro
./setup.sh --ubuntu # For Debian/Ubuntu
./setup.sh --fedora # For Fedora/RedHatFeatures:
- ✅ Automatic distro detection
- ✅ Multi-distro support
- ✅ Interactive prompts
- ✅ Color-coded output
- ✅ Comprehensive error handling
Supported Distros:
- Ubuntu, Debian
- Fedora, RedHat, CentOS, Rocky, AlmaLinux
- Alpine Linux
- Arch Linux, Manjaro
- openSUSE, SLES
Works on any system with Python 3.9+.
# Automatic
python3 setup.py --auto
# Interactive
python3 setup.py
# Development mode (includes pytest, ruff, mypy)
python3 setup.py --auto --dev
# Verify existing installation
python3 setup.py --verify-onlyFeatures:
- ✅ Cross-platform
- ✅ Pure Python
- ✅ No shell dependencies
- ✅ Detailed logging
- ✅ Dependency verification
One command to install and run.
# Install and scan
./run_all.sh --setup-only https://example.com
# Install dependencies only
./run_all.sh --setup-only
# Check dependencies
./run_all.sh --check-deps
# Force reinstall
./run_all.sh --install https://example.comFeatures:
- ✅ Automatic dependency detection
- ✅ Install on-demand
- ✅ Bootstrap pip if missing
- ✅ PEP 668 compatibility
- ✅ Handles system package install
./setup.sh --ubuntu
# or
python3 setup.py --autoTested on:
- Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS
- Debian 11, 12
- Linux Mint
./setup.sh --fedora
# or
python3 setup.py --autoTested on:
- Fedora 38, 39, 40
- RHEL 8, 9
- CentOS Stream
- Rocky Linux 8, 9
- AlmaLinux 8, 9
python3 setup.py --autoTested on:
- Alpine 3.18, 3.19
python3 setup.py --autoTested on:
- Arch Linux (rolling)
- Manjaro
python3 setup.py --autoTested on:
- openSUSE Leap 15.x
- openSUSE Tumbleweed
# Install Homebrew first: https://brew.sh
./setup.py --auto| Package | Purpose | License |
|---|---|---|
| Python 3.9+ | Runtime | Python Software Foundation |
| pip | Package manager | MIT |
| Standard Library | Core functionality | PSF |
| Package | Purpose | Version | Install |
|---|---|---|---|
| bcrypt | Password hash cracking | >=4.0 | Auto |
| passlib | Alternative password support | >=1.7 | Auto |
| psutil | Performance profiling | latest | Auto |
| pyyaml | Nuclei template export | latest | Auto |
| dnspython | DNS utilities | latest | Auto |
| requests | HTTP requests | latest | Auto |
| Tool | Purpose | Install |
|---|---|---|
| nmap | Network scanning | apt install nmap |
| nuclei | Vulnerability template scan | GitHub releases |
| git | Version control | Pre-installed |
| curl/wget | HTTP download | Pre-installed |
python3 setup.py --auto --devInstalls: pytest, ruff, mypy
./run_all.sh --check-deps
# or
python3 setup.py --verify-only# Check Python version
python3 --version # Should be 3.9+
# Check pip
python3 -m pip --version
# Check modules
python3 -c "import bcrypt, passlib, psutil, yaml, dns, requests; print('✓ All modules found')"
# Check tools
command -v nmap git curl# Run framework detector-only scan
./run_all.sh https://example.com --intensity detective# Ubuntu/Debian
sudo apt install python3 python3-pip
# Fedora/RedHat
sudo dnf install python3 python3-pip
# Alpine
apk add python3 py3-pip
# Arch
pacman -S python python-pip
# macOS
brew install python3chmod +x setup.sh run_all.sh setup.pyThe setup scripts will prompt for sudo when needed. Provide your user password when asked.
Modern Python installations prevent system-wide pip changes. Solutions:
# Option 1: Use --user flag (automatic in run_all.sh)
python3 -m pip install --user -r requirements.txt
# Option 2: Break system packages (use with caution)
python3 -m pip install --break-system-packages -r requirements.txt
# Option 3: Use virtual environment
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtSome optional packages may fail on minimal systems:
# Manual install with fallback
pip3 install bcrypt
pip3 install passlib
pip3 install psutil pyyaml dnspython requests || true
# Continue anyway - framework works without themBootstrap pip:
python3 -m ensurepip --upgrade
python3 -m pip --versionManually specify your distro:
# Debian/Ubuntu variants
./setup.sh --ubuntu
# Fedora/RedHat variants
./setup.sh --fedora
# Or use Python (auto-detects from PATH)
python3 setup.py --autoIf you're offline during setup:
# Framework works without optional packages
# They'll be installed when you next run with --install
./run_all.sh --install https://example.comThis is normal. Optional packages may fail, but the core framework works on the standard library alone:
# Verify what's installed
python3 setup.py --verify-only
# Try installing failed packages later
pip3 install bcrypt passlib psutil pyyaml dnspython requestspython3 -m pip uninstall -r requirements.txtTo uninstall system packages:
# Ubuntu/Debian
sudo apt remove python3-pip nmap git curl
# Fedora/RedHat
sudo dnf remove python3-pip nmap git curl
# Alpine
sudo apk del py3-pip nmap git curl
# Arch
sudo pacman -R python-pip nmap git curl# Remove pip cache
rm -rf ~/.cache/pip
# Remove AttackSim
rm -rf /home/jiha/dev/security/security_testIf you encounter issues:
- Check logs:
./run_all.sh --check-deps - Read error messages: They often suggest solutions
- Try Python setup:
python3 setup.py --auto - Manual verification: Run the bash commands above
- Report issue: Include output of:
./run_all.sh --check-deps 2>&1 | head -50 uname -a python3 --version
After successful installation:
# Run your first scan
./run_all.sh https://example.com
# Check available modules
./run_all.sh --list-modules
# Run specific module
./run_all.sh https://example.com --only http-infrastructure-mapper
# See all options
./run_all.sh --help- Main README: README.md
- Safety Guide: docs/safety.md
- Module Documentation: docs/modules.md
- Quick Start: docs/quickstart.md
Version: AttackSim v1.0
Last Updated: 2026-07-26
Status: Production Ready