# see also
# - https://jjjollyjim.github.io/arewehackersyet/index.html
# - https://github.com/NixOS/nixpkgs/issues/81418
# - https://git.sr.ht/~pamplemousse/nix-utils for wordlists
{
  lib,
  pkgs,
  osConfig,
  ...
}:
let
  inherit (lib.modules) mkIf;
in
{
  config = mkIf osConfig.garden.programs.pentesting.enable {
    home.packages = builtins.attrValues {
      inherit (pkgs)
        aircrack-ng # wifi tool
        arping # arp tool
        bettercap # mitm tool
        binwalk # analyze binary blobs and executables
        certgraph # ssl certificate graph crawler
        crunch # wordlist generator
        deepsecrets # find secrets in code
        dnsenum # dns enumeration
        enum4linux-ng # enumerate info from windows/samba
        fcrackzip # zip password cracker
        ghorg # mass clone git repos
        hashcat # hash cracker
        hcxtools # wifi capture and convert to hashcat/john
        hcxdumptool # capture packets from wifi
        iaito # gui for radare2
        john # hash cracker
        ldapnomnom # ldap user brute force
        msldapdump # ldap enumeration
        nikto # web server scanner
        nmap # network scanner
        onesixtyone # snmp scanner
        p0f # passive os fingerprinting
        radare2 # reverse engineering framework
        sqlmap # sql injection tool
        sslscan # ssl scanner
        testssl # ssl checker
        tcpdump # dump network packets
        thc-hydra # network logon cracker
        theharvester # osint
        wifite2 # wifi network auditor
        wireshark # network traffic analyzer
        zap # web app penetration testing
        ;
    };
  };
}
