{ config, lib, pkgs, ... }: let # Define a list of all cybersec tools cybersecTools = with pkgs; [ # Nmap and related tools nmap gobuster hydra ffuf #metasploit-framework aircrack-ng netcat powershell theharvester sqlmap #rkhunter #legion dirb steghide hashcat responder cewl snort nuclei wpscan #wifite #sqlsus netdiscover chkrootkit maltego burpsuite nikto john autopsy dirbuster bloodhound sherlock wordlists wfuzz #impacket-scripts havoc foremost ettercap #dirsearch crunch bettercap mimikatz gophish tcpdump #recon-ng #hping3 #email2phonenumber #cisco-torch #beef-xss whatweb #veil subfinder macchanger dnsrecon dnsenum armitage yersinia parsero #metagoofil #maryam evil-winrm #dvwa dmitry amass #wifiphisher weevely #sublist3r #sslyze #spiderfoot #scapy #reaver #mdk3 massdns masscan lynis #linkedin2username ligolo-ng #jsql ghidra fierce #fern-wifi-cracker fcrackzip crowbar netexec commix #arpwatch yara trufflehog terraform #subjack #pspy #powershell-empire #pompem p0f nbtscan medusa #finalrecon driftnet # ### ones need to be added soon ]; # Additional dependencies for specific tools wiresharkExtras = with pkgs; [ wireshark #wireshark-common #wireshark-dev #wireshark-doc #libwireshark-data #libwireshark-dev ]; johnExtras = with pkgs; [ john #john-data ]; in { options.cybersec.enable = lib.mkOption { type = lib.types.bool; default = false; description = "Install cybersec tools for penetration testing and security analysis."; }; config = lib.mkIf config.cybersec.enable { home.packages = cybersecTools ++ wiresharkExtras ++ johnExtras; }; }