π‘οΈ Complete penetration testing environment for WSL and Native Linux distributions
- FIXED: Nuclei and other Go-based tools not working on Linux Mint after installation
- FIXED: Go tools PATH not persisting after script completion
- FIXED: Duplicate IPv6 configuration entries
- ADDED: Automatic Go PATH configuration in .bashrc
- ADDED: Troubleshooting script to diagnose common issues
- IMPROVED: Better verification and error messages for Go tools
- π§ Multi-Distribution Support - Now works on Arch, Fedora, Linux Mint, and more!
- π Native Linux Support - No longer WSL-only, works on native installations
- π¦ Multiple Package Managers - apt, pacman, and dnf/yum support
- π¨ Modern Web GUI - Beautiful, responsive web interface with real-time updates
- π― Installation Profiles - Choose Minimal, Standard, Full, or Custom installations
- π¦ Category Selection - Install only the tool categories you need
- π Update Manager - Automated tool update script
- ποΈ Uninstaller - Clean removal of all tools
- π Progress Tracking - Real-time progress with WebSocket support
- π Interactive TUI - Dialog-based text user interface option
- π οΈ Better Error Handling - Improved logging and error recovery
- What's New
- Overview
- Features
- Quick Start
- Installation Methods
- Prerequisites
- Tool Categories & Locations
- Post-Installation Setup
- Tool Management
- Usage Examples
- Troubleshooting
- Tool Access Methods
- Directory Structure
- Aliases Reference
- Known Issues
- FAQ
This comprehensive installer automatically deploys 300+ penetration testing tools across 10+ categories, supporting both WSL and native Linux environments. It features a modern web GUI, intelligent error handling, and flexible installation profiles.
Debian/Ubuntu Family (apt)
- Kali Linux (WSL & Native)
- Parrot Security OS (WSL & Native)
- Linux Mint
- Ubuntu
- Debian
Arch Family (pacman)
- Arch Linux
- Manjaro
- EndeavourOS
- BlackArch (optional repository)
Red Hat Family (dnf/yum)
- Fedora
- RHEL / CentOS
- Rocky Linux / AlmaLinux
- Network Tools: 30+ tools
- Web Application Testing: 20+ tools
- Password Attacks: 15+ tools
- Exploitation Frameworks: 10+ tools
- Digital Forensics: 20+ tools
- Reverse Engineering: 15+ tools
- OSINT Tools: 15+ tools
- Go-based Tools: 8+ tools
- Python Tools: 17+ tools
- GitHub Repositories: 13+ repos
- Minimal (~5GB) - Essential tools only
- Standard (~15GB) - Most commonly used tools (Recommended)
- Full (~25GB) - Complete tool suite
- Custom - Select specific categories
- π§ WSL-specific optimizations (hostname, DNS, IPv6 fixes)
- π‘οΈ Robust error handling (continues on package failures)
- π― Virtual package detection (handles netcat, dns-utils, etc.)
- π Progress indicators with colored output
- π Retry mechanisms for failed installations
- π 100+ aliases for quick tool access
- π Automatic verification of installed tools
- π¦ Multiple package sources (apt, pip, go install, git)
- π Modern Web GUI with real-time updates via WebSocket
- π Interactive TUI with dialog-based menus
- π¦ Installation Profiles for different use cases
- β Category Selection for granular control
- π Update Manager to keep tools current
- ποΈ Uninstaller for clean removal
- π Better Progress Tracking with detailed logs
- π¨ Beautiful UI with responsive design
# Clone the repository
git clone https://github.com/danielserbu/linux-security-tools-installer.git
cd linux-security-tools-installer
# Option 1: Web GUI (Recommended - Most user-friendly)
cd web-gui
chmod +x start-gui.sh
./start-gui.sh
# Then open http://localhost:5000 in your browser
# Option 2: Interactive TUI
chmod +x installer-gui.sh
sudo ./installer-gui.sh --gui
# Option 3: Command Line (Auto-detects your distribution)
chmod +x installer.sh
sudo ./installer.sh --installThe modern web interface provides the easiest installation experience with real-time progress tracking.
cd web-gui
chmod +x start-gui.sh
./start-gui.shThen open your browser to:
- From WSL:
http://localhost:5000 - From Windows:
http://<WSL-IP>:5000(find IP withhostname -I)
Features:
- Interactive profile selection
- Real-time progress updates
- Live installation logs
- Tool status dashboard
See Web GUI Documentation for details.
Dialog-based text interface for server environments or SSH sessions.
chmod +x installer-gui.sh
sudo ./installer-gui.sh --guiFeatures:
- Profile selection menus
- Category checkboxes
- Progress indicators
- No web browser required
Traditional command-line installation for automation and scripting.
chmod +x installer.sh
# Basic installation (auto-detects distribution)
sudo ./installer.sh --install
# With options
sudo ./installer.sh --install --gpu-support # Enable GPU
sudo ./installer.sh --install --no-wordlists # Skip wordlists
sudo ./installer.sh --install --dry-run # Test run (preview)
# Debug mode to see detected system info
./installer.sh --debug- 4GB+ RAM (8GB recommended for Full profile)
- 5-25GB free disk space (depends on profile)
- Internet connection for downloads
- sudo/root access for package installation
- Windows 10 (Build 19041+) or Windows 11
- WSL2 enabled and configured
# Enable WSL2 (run in PowerShell as Administrator)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# Set WSL2 as default
wsl --set-default-version 2
# Install your preferred distribution from Microsoft StoreEnsure you have a supported distribution:
- Debian/Ubuntu family: Kali, Parrot, Mint, Ubuntu, Debian
- Arch family: Arch, Manjaro, EndeavourOS
- Red Hat family: Fedora, RHEL, CentOS, Rocky, AlmaLinux
# Check distribution
cat /etc/os-release
# Check available disk space
df -h /
# Verify internet connectivity
ping -c 3 google.com
# Run debug to see detected system info
./installer.sh --debug# Clone repository
git clone https://github.com/danielserbu/linux-security-tools-installer.git
cd linux-security-tools-installer
# Make scripts executable
chmod +x installer.sh installer-gui.sh update-tools.sh uninstall-tools.sh# Available options:
--install # Start installation (auto-detects distribution)
--gui # Run interactive GUI mode (installer-gui.sh only)
--gpu-support # Enable GPU acceleration support
--no-wordlists # Skip wordlist installation
--skip-verification # Skip tool verification
--quiet # Suppress verbose output
--dry-run # Show what would be installed
--debug # Show system detection info
-h, --help # Show help message
-v, --version # Show version information
# Legacy options (deprecated, use --install instead):
--kali # Auto-redirects to --install
--parrot # Auto-redirects to --install| Profile | Size | Tools Included | Best For |
|---|---|---|---|
| Minimal | ~5GB | Network tools, Web tools, Go tools | Quick setup, Limited space |
| Standard | ~15GB | Common tools across most categories | Most users, CTF players |
| Full | ~25GB | All available tools | Professional pentesters |
| Custom | Variable | User-selected categories | Specific needs |
Keep your tools up-to-date with the update script:
chmod +x update-tools.sh
sudo ./update-tools.shThe update script will:
- β Update system packages (apt)
- β Update Go-based tools
- β Update Python tools (pipx)
- β Pull latest GitHub repositories
- β Update Metasploit Framework
- β Update wordlists (SecLists)
Recommended: Run updates weekly or before major engagements.
To completely remove all installed tools:
chmod +x uninstall-tools.sh
sudo ./uninstall-tools.shThe uninstaller will:
- ποΈ Remove all APT packages
- ποΈ Remove Go-based tools
- ποΈ Remove Python tools
- ποΈ Remove GitHub repositories
- ποΈ Remove symbolic links
- ποΈ Remove aliases
- ποΈ Clean up configurations
Warning: This action cannot be undone! The script will ask for confirmation multiple times.
Note: Base system packages (git, curl, wget, Python, Go) are preserved.
Location: /usr/bin/, /usr/local/bin/
| Tool | Location | Description |
|---|---|---|
nmap |
/usr/bin/nmap |
Network mapper and port scanner |
masscan |
/usr/bin/masscan |
High-speed port scanner |
unicornscan |
/usr/bin/unicornscan |
Efficient port scanner |
zmap |
/usr/bin/zmap |
Internet-wide network scanner |
netdiscover |
/usr/bin/netdiscover |
Network address discovery |
arp-scan |
/usr/bin/arp-scan |
ARP-based network scanner |
enum4linux |
/usr/bin/enum4linux |
SMB enumeration tool |
smbclient |
/usr/bin/smbclient |
SMB client for Linux |
smbmap |
/usr/bin/smbmap |
SMB share enumeration |
nbtscan |
/usr/bin/nbtscan |
NetBIOS name scanner |
onesixtyone |
/usr/bin/onesixtyone |
SNMP scanner |
snmp-check |
/usr/bin/snmp-check |
SNMP enumerator |
smtp-user-enum |
/usr/bin/smtp-user-enum |
SMTP user enumeration |
dnsrecon |
/usr/bin/dnsrecon |
DNS enumeration script |
fierce |
/usr/bin/fierce |
DNS reconnaissance tool |
dnsenum |
/usr/bin/dnsenum |
DNS enumeration tool |
Location: /usr/bin/, /usr/local/bin/
| Tool | Location | Description |
|---|---|---|
sqlmap |
/usr/bin/sqlmap |
SQL injection testing tool |
gobuster |
/usr/bin/gobuster |
Directory/file brute-forcer |
dirb |
/usr/bin/dirb |
Web content scanner |
wfuzz |
/usr/bin/wfuzz |
Web application fuzzer |
nikto |
/usr/bin/nikto |
Web server scanner |
whatweb |
/usr/bin/whatweb |
Web technology identifier |
wapiti |
/usr/bin/wapiti |
Web application vulnerability scanner |
skipfish |
/usr/bin/skipfish |
Web application security scanner |
uniscan |
/usr/bin/uniscan |
Remote file include scanner |
davtest |
/usr/bin/davtest |
WebDAV server tester |
cadaver |
/usr/bin/cadaver |
WebDAV client |
wafw00f |
/usr/bin/wafw00f |
Web application firewall detector |
httprint |
/usr/bin/httprint |
Web server fingerprinting |
xsser |
/usr/bin/xsser |
XSS testing tool |
commix |
/usr/bin/commix |
Command injection testing |
joomscan |
/usr/bin/joomscan |
Joomla vulnerability scanner |
wpscan |
/usr/bin/wpscan |
WordPress security scanner |
burpsuite |
/usr/bin/burpsuite |
Web application security testing |
Location: /usr/bin/, /usr/local/bin/
| Tool | Location | Description |
|---|---|---|
hashcat |
/usr/bin/hashcat |
Advanced password recovery |
john |
/usr/bin/john |
John the Ripper password cracker |
hydra |
/usr/bin/hydra |
Network login cracker |
medusa |
/usr/bin/medusa |
Parallel brute-force tool |
crunch |
/usr/bin/crunch |
Wordlist generator |
cewl |
/usr/bin/cewl |
Custom wordlist generator |
cupp |
/usr/bin/cupp |
Common user passwords profiler |
brutespray |
/usr/bin/brutespray |
Nmap gnmap brute forcer |
crowbar |
/usr/bin/crowbar |
Brute forcing tool |
patator |
/usr/bin/patator |
Multi-purpose brute-forcer |
hashid |
/usr/bin/hashid |
Hash identifier |
hash-identifier |
/usr/bin/hash-identifier |
Hash type identifier |
fcrackzip |
/usr/bin/fcrackzip |
ZIP password cracker |
pdfcrack |
/usr/bin/pdfcrack |
PDF password cracker |
chntpw |
/usr/bin/chntpw |
Windows password editor |
Location: /usr/bin/, /usr/share/metasploit-framework/
| Tool | Location | Description |
|---|---|---|
msfconsole |
/usr/bin/msfconsole |
Metasploit console |
msfvenom |
/usr/bin/msfvenom |
Payload generator |
msfdb |
/usr/bin/msfdb |
Metasploit database |
searchsploit |
/usr/bin/searchsploit |
Exploit database search |
exploitdb |
/usr/share/exploitdb/ |
Exploit database |
commix |
/usr/bin/commix |
Command injection exploiter |
beef-xss |
/usr/bin/beef-xss |
Browser exploitation framework |
set |
/usr/bin/setoolkit |
Social Engineer Toolkit |
Location: /usr/bin/, /usr/local/bin/
| Tool | Location | Description |
|---|---|---|
wireshark |
/usr/bin/wireshark |
Network protocol analyzer |
tshark |
/usr/bin/tshark |
Terminal-based Wireshark |
tcpdump |
/usr/bin/tcpdump |
Command-line packet analyzer |
binwalk |
/usr/bin/binwalk |
Firmware analysis tool |
foremost |
/usr/bin/foremost |
File carving tool |
strings |
/usr/bin/strings |
Extract printable strings |
hexedit |
/usr/bin/hexedit |
Hex editor |
volatility3 |
/usr/bin/vol |
Memory forensics framework |
autopsy |
/usr/bin/autopsy |
Digital forensics platform |
sleuthkit |
/usr/bin/fls |
Digital investigation tools |
dc3dd |
/usr/bin/dc3dd |
Enhanced dd for forensics |
ddrescue |
/usr/bin/ddrescue |
Data recovery tool |
scalpel |
/usr/bin/scalpel |
File carving tool |
photorec |
/usr/bin/photorec |
File recovery software |
testdisk |
/usr/bin/testdisk |
Partition recovery tool |
steghide |
/usr/bin/steghide |
Steganography tool |
outguess |
/usr/bin/outguess |
Steganographic tool |
exiftool |
/usr/bin/exiftool |
Metadata reader/writer |
yara |
/usr/bin/yara |
Malware research tool |
Location: /usr/bin/, /usr/local/bin/
| Tool | Location | Description |
|---|---|---|
radare2 |
/usr/bin/r2 |
Reverse engineering framework |
gdb |
/usr/bin/gdb |
GNU debugger |
objdump |
/usr/bin/objdump |
Object file dumper |
strace |
/usr/bin/strace |
System call tracer |
ltrace |
/usr/bin/ltrace |
Library call tracer |
readelf |
/usr/bin/readelf |
ELF file reader |
nm |
/usr/bin/nm |
Symbol table lister |
objcopy |
/usr/bin/objcopy |
Object file copier |
strip |
/usr/bin/strip |
Symbol stripper |
file |
/usr/bin/file |
File type identifier |
xxd |
/usr/bin/xxd |
Hex dump utility |
hexdump |
/usr/bin/hexdump |
ASCII/decimal/hex dump |
od |
/usr/bin/od |
Octal dump |
upx |
/usr/bin/upx |
Executable packer |
valgrind |
/usr/bin/valgrind |
Memory debugging tool |
ghidra |
/usr/share/ghidra/ |
NSA reverse engineering suite |
Location: /usr/bin/, /usr/local/bin/
| Tool | Location | Description |
|---|---|---|
theharvester |
/usr/bin/theHarvester |
Email/subdomain harvester |
recon-ng |
/usr/bin/recon-ng |
Web reconnaissance framework |
dmitry |
/usr/bin/dmitry |
Information gathering tool |
fierce |
/usr/bin/fierce |
DNS reconnaissance |
dnsrecon |
/usr/bin/dnsrecon |
DNS enumeration |
dnsenum |
/usr/bin/dnsenum |
DNS information gatherer |
whois |
/usr/bin/whois |
Domain information lookup |
metagoofil |
/usr/bin/metagoofil |
Metadata extractor |
exifprobe |
/usr/bin/exifprobe |
EXIF data probe |
exiftool |
/usr/bin/exiftool |
Metadata tool |
Location: $HOME/go/bin/, /usr/local/go/bin/
| Tool | Location | Description |
|---|---|---|
ffuf |
~/go/bin/ffuf |
Fast web fuzzer |
nuclei |
~/go/bin/nuclei |
Vulnerability scanner |
subfinder |
~/go/bin/subfinder |
Subdomain discovery |
httpx |
~/go/bin/httpx |
HTTP toolkit |
assetfinder |
~/go/bin/assetfinder |
Asset discovery |
waybackurls |
~/go/bin/waybackurls |
Wayback machine URLs |
httprobe |
~/go/bin/httprobe |
HTTP probe |
amass |
~/go/bin/amass |
Attack surface mapping |
Location: ~/.local/bin/ (pipx), /usr/local/bin/ (pip3)
| Tool | Location | Description |
|---|---|---|
dirsearch |
~/.local/bin/dirsearch |
Web path scanner |
httpie |
~/.local/bin/http |
HTTP client |
shodan |
~/.local/bin/shodan |
Shodan CLI |
sherlock |
~/.local/bin/sherlock |
Social media username search |
photon |
~/.local/bin/photon |
Web crawler |
sublist3r |
~/.local/bin/sublist3r |
Subdomain enumeration |
paramspider |
~/.local/bin/paramspider |
Parameter discovery |
arjun |
~/.local/bin/arjun |
HTTP parameter discovery |
impacket |
~/.local/bin/ |
Network protocol toolkit |
crackmapexec |
~/.local/bin/crackmapexec |
Network service exploitation |
volatility3 |
~/.local/bin/vol |
Memory forensics |
hashid |
~/.local/bin/hashid |
Hash identifier |
pwntools |
Python library | CTF toolkit |
ropper |
~/.local/bin/ropper |
ROP gadget finder |
ropgadget |
~/.local/bin/ROPgadget |
ROP gadget tool |
frida-tools |
~/.local/bin/frida |
Dynamic instrumentation |
objection |
~/.local/bin/objection |
Mobile security testing |
Location: /opt/github-tools/
| Repository | Location | Description |
|---|---|---|
SecLists |
/opt/github-tools/SecLists/ |
Security testing lists |
PayloadsAllTheThings |
/opt/github-tools/PayloadsAllTheThings/ |
Payload collection |
PEASS-ng |
/opt/github-tools/PEASS-ng/ |
Privilege escalation scripts |
LinEnum |
/opt/github-tools/LinEnum/ |
Linux enumeration script |
linux-smart-enumeration |
/opt/github-tools/linux-smart-enumeration/ |
Smart Linux enum |
PowerSploit |
/opt/github-tools/PowerSploit/ |
PowerShell post-exploitation |
nishang |
/opt/github-tools/nishang/ |
PowerShell for pentesting |
dirsearch |
/opt/github-tools/dirsearch/ |
Web path scanner |
XSStrike |
/opt/github-tools/XSStrike/ |
XSS detection suite |
sherlock |
/opt/github-tools/sherlock/ |
Social media OSINT |
Photon |
/opt/github-tools/Photon/ |
Web crawler |
nuclei-templates |
/opt/github-tools/nuclei-templates/ |
Vulnerability templates |
linux-exploit-suggester |
/opt/github-tools/linux-exploit-suggester/ |
Exploit suggester |
Location: /usr/share/wordlists/, /usr/share/seclists/
| Wordlist | Location | Description |
|---|---|---|
rockyou.txt |
/usr/share/wordlists/rockyou.txt |
Common passwords |
dirb common.txt |
/usr/share/wordlists/dirb/common.txt |
Common directories |
dirb big.txt |
/usr/share/wordlists/dirb/big.txt |
Large directory list |
SecLists |
/usr/share/seclists/ |
Comprehensive wordlists |
Discovery |
/usr/share/seclists/Discovery/ |
Discovery wordlists |
Fuzzing |
/usr/share/seclists/Fuzzing/ |
Fuzzing payloads |
Passwords |
/usr/share/seclists/Passwords/ |
Password lists |
Usernames |
/usr/share/seclists/Usernames/ |
Username lists |
# Reload bash configuration
source ~/.bashrc
# Or restart your terminal
exit # Then reopen WSL# Check if aliases are loaded
alias | grep nmap
# Test a few tools
nmap --version
sqlmap --version
hashcat --version
# Check Go tools
ffuf -h
nuclei -version# Add to ~/.bashrc if not already present
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc
# Verify Go tools are accessible
which ffuf
which nuclei# Ensure pipx tools are in PATH
pipx ensurepath
source ~/.bashrc
# Check Python tools
which dirsearch
which sherlock# Network scanning
nmap-quick 192.168.1.1
nmap-full 192.168.1.0/24
# Web enumeration
gobuster-common https://example.com
ffuf-quick https://example.com/FUZZ
# SQL injection testing
sqlmap-quick "http://example.com/page.php?id=1"
# Password attacks
john-wordlist /path/to/hashes.txt
hashcat-dict /path/to/hashes.txt /usr/share/wordlists/rockyou.txt
# Subdomain enumeration
subfinder-quick example.com
amass enum -d example.com
# Vulnerability scanning
nuclei-scan targets.txt
# Privilege escalation
linpeas
linenum# Navigate to tool directories
cdtools # cd /opt
cdgithub # cd /opt/github-tools
cdwordlists # cd /usr/share/wordlists
cdseclists # cd /usr/share/seclists
cdpayloads # cd /opt/github-tools/PayloadsAllTheThings# Show available aliases
cheatsheet
# Get tool locations
tools-help
# Show wordlist locations
wordlists-help
# Nuclei help
nuclei-help
# Privilege escalation help
privesc-help# Tools installed via apt
/usr/bin/nmap 192.168.1.1
/usr/bin/sqlmap -u "http://example.com/?id=1"
# Tools in /usr/local/bin
/usr/local/bin/some-tool# Use predefined aliases for quick access
nmap-quick 192.168.1.1
gobuster-common https://example.com
sqlmap-quick "http://example.com/?id=1"# Tools should be in PATH after installation
nmap --version
hashcat --help
wireshark --version# Go tools location
export PATH=$PATH:$(go env GOPATH)/bin
# Access Go tools
ffuf -h
nuclei -version
subfinder -h# Python tools via pipx
~/.local/bin/dirsearch -h
~/.local/bin/sherlock --help
# Or if in PATH
dirsearch -h
sherlock --help# Execute scripts from GitHub repositories
python3 /opt/github-tools/XSStrike/xsstrike.py
bash /opt/github-tools/PEASS-ng/linPEAS/linpeas.sh
python3 /opt/github-tools/dirsearch/dirsearch.py/
βββ usr/
β βββ bin/ # Main system binaries
β β βββ nmap, sqlmap, hashcat # Core pentesting tools
β β βββ wireshark, tcpdump # Network analysis
β β βββ radare2, gdb, objdump # Reverse engineering
β βββ share/
β β βββ wordlists/ # Password lists
β β β βββ rockyou.txt # Common passwords
β β β βββ dirb/ # Directory wordlists
β β βββ seclists/ # SecLists collection
β β β βββ Discovery/ # Discovery lists
β β β βββ Fuzzing/ # Fuzzing payloads
β β β βββ Passwords/ # Password lists
β β βββ metasploit-framework/ # Metasploit installation
β β βββ exploitdb/ # Exploit database
β βββ local/
β βββ bin/ # Locally compiled tools
βββ opt/
β βββ github-tools/ # GitHub repositories
β βββ SecLists/ # Security wordlists
β βββ PayloadsAllTheThings/ # Payload collection
β βββ PEASS-ng/ # Privilege escalation
β βββ PowerSploit/ # PowerShell tools
β βββ XSStrike/ # XSS detection
β βββ nuclei-templates/ # Nuclei templates
βββ home/
βββ $USER/
βββ .local/
β βββ bin/ # Python tools (pipx)
β βββ dirsearch # Web scanner
β βββ sherlock # OSINT tool
β βββ httpie # HTTP client
βββ go/
β βββ bin/ # Go tools
β βββ ffuf # Web fuzzer
β βββ nuclei # Vulnerability scanner
β βββ subfinder # Subdomain finder
βββ .bash_aliases # Tool aliases
nmap-quick <target> # Quick port scan
nmap-full <target> # Full scan with OS detection
nmap-vuln <target> # Vulnerability scan
nmap-stealth <target> # Stealth scan
masscan-quick <target> # Fast masscangobuster-common <url> # Directory brute force
gobuster-big <url> # Extended directory scan
ffuf-common <url> # Web fuzzing
sqlmap-quick <url> # SQL injection test
sqlmap-forms <url> # Form-based SQL injectionjohn-wordlist <hashfile> # John with rockyou.txt
hashcat-dict <hashfile> # Hashcat dictionary attack
hydra-ssh <target> # SSH brute forceffuf-quick <url> # Fast fuzzing
nuclei-scan <targets> # Vulnerability scanning
subfinder-quick <domain> # Subdomain discovery
httpx-check <targets> # HTTP probingupdate-all # Update system packages
myip # Show external IP
ports # Show listening ports
cdtools # Go to /opt
cdwordlists # Go to wordlistsIssue: xsstrike: command not found after installation
Solutions:
# Method 1: Use full path
python3 /opt/github-tools/XSStrike/xsstrike.py -u "http://example.com"
# Method 2: Create symbolic link
sudo ln -s /opt/github-tools/XSStrike/xsstrike.py /usr/local/bin/xsstrike
chmod +x /usr/local/bin/xsstrike
# Method 3: Add to PATH
echo 'export PATH=$PATH:/opt/github-tools/XSStrike' >> ~/.bashrc
source ~/.bashrcIssue: Go tools like nuclei not accessible via command line, especially on Linux Mint
Root Cause: Go binary path not in system PATH after installation
Solutions:
# Quick fix - temporary (current session only)
export PATH=$PATH:$HOME/go/bin
# Permanent fix - add to .bashrc
echo 'export GOPATH="$HOME/go"' >> ~/.bashrc
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bashrc
source ~/.bashrc
# Verify Go tools are installed
ls -la ~/go/bin/
# Test nuclei
~/go/bin/nuclei -version
# After sourcing .bashrc, should work directly
nuclei -version
# If still not working, reinstall
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latestPrevention: The installer now automatically adds Go paths to .bashrc. If you installed before this fix, manually add the PATH as shown above.
Issue: Python tools installed but not accessible
Solutions:
# Ensure pipx path
pipx ensurepath
source ~/.bashrc
# Check pipx installations
pipx list
# Manual PATH addition
echo 'export PATH=$PATH:~/.local/bin' >> ~/.bashrcIssue: Permission denied for certain tools
Solutions:
# Fix permissions for GitHub tools
sudo chmod +x /opt/github-tools/*/
sudo chmod +x /opt/github-tools/*/*.py
sudo chmod +x /opt/github-tools/*/*.sh
# Fix ownership if needed
sudo chown -R $USER:$USER /opt/github-tools/Issue: Metasploit database not initialized
Solutions:
# Initialize database
sudo msfdb init
# Start database
sudo msfdb start
# Check status
sudo msfdb status
# Reinitialize if needed
sudo msfdb delete
sudo msfdb initRun the troubleshooting script to automatically diagnose common issues:
chmod +x troubleshoot-tools.sh
./troubleshoot-tools.shThis script will check:
- Go installation and PATH configuration
- Python tools installation
- APT-installed security tools
- GitHub repositories
- Wordlists availability
- Common configuration issues
# Ensure script is executable
chmod +x installer.sh
# Run with proper sudo
sudo ./installer.sh --install# Update package lists
sudo apt update
# Check if running on supported distribution
cat /etc/os-release
# Use debug mode
sudo ./wsl-pentest-installer-v2.3.0.sh --debug# Test connectivity
ping -c 3 google.com
# Check DNS
nslookup google.com
# Try different mirror
sudo sed -i 's/deb.parrot.sh/mirror.parrot.sh/g' /etc/apt/sources.list# Check current PATH
echo $PATH
# Reload shell configuration
source ~/.bashrc
# Check if aliases file exists
cat ~/.bash_aliases
# Manually add missing paths
export PATH=$PATH:/usr/local/bin:~/.local/bin:~/go/bin# Check if aliases are loaded
alias | grep nmap
# Source aliases manually
source ~/.bash_aliases
# Check aliases file content
cat ~/.bash_aliases
# Reload completely
exit # Exit WSL and restart# Check Go installation
which go
go version
# Check GOPATH
go env GOPATH
# List installed tools
ls -la ~/go/bin/
# Reinstall specific tool
go install github.com/ffuf/ffuf/v2@latest# Check pipx status
pipx --version
pipx list
# Reinstall specific tool
pipx install dirsearch --force
# Check Python path
python3 -m site --user-base# Use faster mirrors
sudo sed -i 's/deb.parrot.sh/mirror.parrot.sh/g' /etc/apt/sources.list
# Clear package cache
sudo apt clean
sudo apt autoclean
# Increase WSL memory (Windows side)
# Create/edit C:\Users\<username>\.wslconfig
[wsl2]
memory=8GB
processors=4# Check memory usage
free -h
htop
# Restart WSL
wsl --shutdown
# Then restart WSLA: Tools installed via different methods need different update commands:
# APT packages
sudo apt update && sudo apt upgrade
# Go tools
go install github.com/ffuf/ffuf/v2@latest
# Python tools
pipx upgrade-all
# GitHub repositories
cd /opt/github-tools/SecLists && sudo git pullA: Yes, you can install additional tools:
# APT packages
sudo apt install <package-name>
# Go tools
go install <package-url>@latest
# Python tools
pipx install <package-name>
# GitHub repositories
cd /opt/github-tools/
sudo git clone <repository-url>A: Remove tools based on installation method:
# APT packages
sudo apt remove <package-name>
# Go tools
rm ~/go/bin/<tool-name>
# Python tools
pipx uninstall <package-name>
# GitHub repositories
sudo rm -rf /opt/github-tools/<repo-name>A: XSStrike is a Python script in a GitHub repository. Use one of these methods:
# Method 1: Full path
python3 /opt/github-tools/XSStrike/xsstrike.py --help
# Method 2: Create alias
echo "alias xsstrike='python3 /opt/github-tools/XSStrike/xsstrike.py'" >> ~/.bash_aliases
# Method 3: Navigate to directory
cd /opt/github-tools/XSStrike/
python3 xsstrike.py --helpA: For GUI tools in WSL:
# Install X server for Windows (VcXsrv, X410, etc.)
# Set DISPLAY variable
export DISPLAY=:0
# For specific tools like Wireshark
wireshark # Should open GUI if X server is runningA: Yes! As of v3.0.0, this script supports multiple distributions:
- Debian/Ubuntu family (apt): Kali, Parrot, Linux Mint, Ubuntu, Debian
- Arch family (pacman): Arch Linux, Manjaro, EndeavourOS
- Red Hat family (dnf/yum): Fedora, RHEL, CentOS, Rocky, AlmaLinux
The script auto-detects your distribution and uses the appropriate package manager. Some tools may not be available on all distributions.
A: Backup important directories and configurations:
# Backup GitHub tools
tar -czf github-tools-backup.tar.gz /opt/github-tools/
# Backup wordlists
tar -czf wordlists-backup.tar.gz /usr/share/wordlists/ /usr/share/seclists/
# Backup configuration
cp ~/.bash_aliases ~/.bashrc ~/config-backup/
# Export WSL distribution (Windows side)
wsl --export kali kali-backup.tarA: Several optimization options:
# WSL configuration (Windows side - C:\Users\<username>\.wslconfig)
[wsl2]
memory=8GB
processors=4
swap=2GB
# Linux optimizations
# Disable IPv6 if causing issues
echo 'net.ipv6.conf.all.disable_ipv6 = 1' | sudo tee -a /etc/sysctl.conf
# Use faster DNS
echo 'nameserver 1.1.1.1' | sudo tee /etc/resolv.confIf you encounter issues:
- Check the troubleshooting section
- Review the logs in
/tmp/pentesting-installer-*.log - Create an issue with:
- WSL version (
wsl --status) - Distribution version (
cat /etc/os-release) - Error messages
- Steps to reproduce
- WSL version (
- Tool additions or removals
- Performance optimizations
- Documentation improvements
- Additional aliases or shortcuts
This project is licensed under the MIT License. See LICENSE file for details.
This tool is intended for authorized penetration testing and educational purposes only. Users are responsible for complying with all applicable laws and regulations. The authors are not responsible for any misuse or damage caused by this tool.
-
v3.0.1 (Current): Bug fixes and improvements
- FIXED: Nuclei and Go tools not working on Linux Mint and other distributions
- FIXED: Go binary path not persisting after installation
- FIXED: Duplicate IPv6 configuration entries in sysctl.conf
- ADDED: Automatic Go PATH configuration in .bashrc
- ADDED: Troubleshooting script (troubleshoot-tools.sh)
- IMPROVED: Better Go tools installation verification
- IMPROVED: Enhanced error messages and post-installation instructions
- IMPROVED: Update script now handles Go tools PATH correctly
-
v3.0.0: Universal edition with multi-distribution support (Arch, Fedora, Mint, etc.)
-
v2.3.0: Comprehensive edition with 200+ tools, enhanced error handling
-
v2.2.0: Added virtual package support, improved WSL fixes
-
v2.1.0: Enhanced tool collection, better progress indicators
-
v2.0.0: Major rewrite with robust error handling
Happy Hacking! π‘οΈβ‘
For support and updates, check the repository regularly and refer to this README for troubleshooting common issues.