Commit cce4606d authored by Hardik Zinzuvadiya's avatar Hardik Zinzuvadiya
Browse files

Phase 10: Add modern tools across 6 categories

Information Gathering (+7):
  theHarvester, Amass, Masscan, RustScan, Holehe, Maigret, httpx

Web Attack (+6):
  Nuclei, ffuf, Feroxbuster, Nikto, wafw00f, Katana

Wordlist/Password (+3):
  Hashcat, John the Ripper, haiti

Wireless Attack (+3):
  Airgeddon, hcxdumptool, hcxtools

Forensics (+2):
  Volatility3, Binwalk

Post Exploitation (+1):
  pwncat-cs
parent 048699d8
Loading
Loading
Loading
Loading
+38 −1
Original line number Diff line number Diff line
@@ -93,6 +93,41 @@ class Toolsley(HackingTool):
        super().__init__(installable=False, runnable=False)


class Volatility3(HackingTool):
    TITLE = "Volatility 3 (Memory Forensics)"
    DESCRIPTION = (
        "The world's most widely used memory forensics framework.\n"
        "Usage: python3 vol.py -f memory.dmp windows.pslist"
    )
    INSTALL_COMMANDS = [
        "git clone https://github.com/volatilityfoundation/volatility3.git",
        "cd volatility3 && pip install --user -r requirements.txt",
    ]
    PROJECT_URL = "https://github.com/volatilityfoundation/volatility3"

    def run(self):
        from config import get_tools_dir
        import subprocess
        from rich.prompt import Prompt
        dump = Prompt.ask("Enter path to memory dump")
        plugin = Prompt.ask("Enter plugin", default="windows.pslist")
        subprocess.run(
            ["python3", "vol.py", "-f", dump, plugin],
            cwd=str(get_tools_dir() / "volatility3"),
        )


class Binwalk(HackingTool):
    TITLE = "Binwalk (Firmware Analysis)"
    DESCRIPTION = (
        "Analyze, reverse engineer, and extract firmware images.\n"
        "Usage: binwalk -e firmware.bin"
    )
    INSTALL_COMMANDS = ["pip install --user binwalk"]
    RUN_COMMANDS = ["binwalk --help"]
    PROJECT_URL = "https://github.com/ReFirmLabs/binwalk"


class ForensicTools(HackingToolsCollection):
    TITLE = "Forensic tools"
    TOOLS = [
@@ -100,7 +135,9 @@ class ForensicTools(HackingToolsCollection):
        Wireshark(),
        BulkExtractor(),
        Guymager(),
        Toolsley()
        Toolsley(),
        Volatility3(),
        Binwalk(),
    ]

if __name__ == "__main__":
+100 −1
Original line number Diff line number Diff line
@@ -214,6 +214,98 @@ class Breacher(HackingTool):
        )


class TheHarvester(HackingTool):
    TITLE = "theHarvester (OSINT)"
    DESCRIPTION = (
        "Gather emails, names, subdomains, IPs and URLs from public sources.\n"
        "Usage: theHarvester -d example.com -b all"
    )
    INSTALL_COMMANDS = [
        "git clone https://github.com/laramies/theHarvester.git",
        "cd theHarvester && pip install --user -r requirements/base.txt",
    ]
    RUN_COMMANDS = ["cd theHarvester && python3 theHarvester.py -h"]
    PROJECT_URL = "https://github.com/laramies/theHarvester"


class Amass(HackingTool):
    TITLE = "Amass (Attack Surface Mapping)"
    DESCRIPTION = (
        "In-depth subdomain enumeration and attack surface mapping.\n"
        "Usage: amass enum -d example.com"
    )
    SUPPORTED_OS = ["linux"]
    REQUIRES_GO = True
    INSTALL_COMMANDS = [
        "go install -v github.com/owasp-amass/amass/v4/...@master",
    ]
    RUN_COMMANDS = ["amass -h"]
    PROJECT_URL = "https://github.com/owasp-amass/amass"


class Masscan(HackingTool):
    TITLE = "Masscan (Fast Port Scanner)"
    DESCRIPTION = (
        "Fastest internet port scanner — 10 million packets/sec.\n"
        "Usage: masscan -p1-65535 <IP> --rate=1000"
    )
    SUPPORTED_OS = ["linux"]
    INSTALL_COMMANDS = ["sudo apt-get install -y masscan"]
    RUN_COMMANDS = ["masscan --help"]
    PROJECT_URL = "https://github.com/robertdavidgraham/masscan"


class RustScan(HackingTool):
    TITLE = "RustScan (Modern Port Scanner)"
    DESCRIPTION = (
        "Scans all 65k ports in 3 seconds, passes results to nmap automatically.\n"
        "Usage: rustscan -a <IP> -- -sV"
    )
    SUPPORTED_OS = ["linux"]
    INSTALL_COMMANDS = [
        "curl -sLO https://github.com/RustScan/RustScan/releases/latest/download/rustscan_2.3.0_amd64.deb",
        "sudo dpkg -i rustscan_2.3.0_amd64.deb",
    ]
    RUN_COMMANDS = ["rustscan --help"]
    PROJECT_URL = "https://github.com/RustScan/RustScan"


class Holehe(HackingTool):
    TITLE = "Holehe (Email → Social Accounts)"
    DESCRIPTION = (
        "Check if an email address is registered on 120+ websites.\n"
        "Usage: holehe user@example.com"
    )
    INSTALL_COMMANDS = ["pip install --user holehe"]
    RUN_COMMANDS = ["holehe --help"]
    PROJECT_URL = "https://github.com/megadose/holehe"


class Maigret(HackingTool):
    TITLE = "Maigret (Username OSINT)"
    DESCRIPTION = (
        "Collect a dossier on a person by username across 3000+ sites.\n"
        "Usage: maigret <username>"
    )
    INSTALL_COMMANDS = ["pip install --user maigret"]
    RUN_COMMANDS = ["maigret --help"]
    PROJECT_URL = "https://github.com/soxoj/maigret"


class Httpx(HackingTool):
    TITLE = "httpx (HTTP Toolkit)"
    DESCRIPTION = (
        "Fast multi-purpose HTTP probing tool.\n"
        "Usage: httpx -l urls.txt -status-code -title -tech-detect"
    )
    REQUIRES_GO = True
    INSTALL_COMMANDS = [
        "go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest",
    ]
    RUN_COMMANDS = ["httpx -h"]
    PROJECT_URL = "https://github.com/projectdiscovery/httpx"


class InformationGatheringTools(HackingToolsCollection):
    TITLE = "Information gathering tools"
    TOOLS = [
@@ -231,7 +323,14 @@ class InformationGatheringTools(HackingToolsCollection):
        SecretFinder(),
        Shodan(),
        PortScannerRanger(),
        Breacher()
        Breacher(),
        TheHarvester(),
        Amass(),
        Masscan(),
        RustScan(),
        Holehe(),
        Maigret(),
        Httpx(),
    ]

if __name__ == "__main__":
+15 −1
Original line number Diff line number Diff line
@@ -41,11 +41,25 @@ class ChromeKeyLogger(HackingTool):
    PROJECT_URL = "https://github.com/UndeadSec/HeraKeylogger"


class PwncatCS(HackingTool):
    TITLE = "pwncat-cs (Reverse Shell Handler)"
    DESCRIPTION = (
        "Post-exploitation platform — manages reverse/bind shells with automation.\n"
        "Handles file upload/download, persistence, privilege escalation.\n"
        "Usage: pwncat-cs -lp 4444"
    )
    SUPPORTED_OS = ["linux", "macos"]
    INSTALL_COMMANDS = ["pip install --user pwncat-cs"]
    RUN_COMMANDS = ["pwncat-cs --help"]
    PROJECT_URL = "https://github.com/calebstewart/pwncat"


class PostExploitationTools(HackingToolsCollection):
    TITLE = "Post exploitation tools"
    TOOLS = [
        Vegile(),
        ChromeKeyLogger()
        ChromeKeyLogger(),
        PwncatCS(),
    ]

if __name__ == "__main__":
+91 −1
Original line number Diff line number Diff line
@@ -109,6 +109,90 @@ class Dirb(HackingTool):
        subprocess.run(["sudo", "dirb", uinput])


class Nuclei(HackingTool):
    TITLE = "Nuclei (Vulnerability Scanner)"
    DESCRIPTION = (
        "Fast, template-based vulnerability scanner used by 50k+ security teams.\n"
        "Usage: nuclei -u https://example.com"
    )
    REQUIRES_GO = True
    INSTALL_COMMANDS = [
        "go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest",
        "nuclei -update-templates",
    ]
    RUN_COMMANDS = ["nuclei -h"]
    PROJECT_URL = "https://github.com/projectdiscovery/nuclei"


class Ffuf(HackingTool):
    TITLE = "ffuf (Web Fuzzer)"
    DESCRIPTION = (
        "Fast web fuzzer — content discovery, parameter fuzzing, vhost discovery.\n"
        "Usage: ffuf -w wordlist.txt -u https://example.com/FUZZ"
    )
    REQUIRES_GO = True
    INSTALL_COMMANDS = [
        "go install -v github.com/ffuf/ffuf/v2@latest",
    ]
    RUN_COMMANDS = ["ffuf -h"]
    PROJECT_URL = "https://github.com/ffuf/ffuf"


class Feroxbuster(HackingTool):
    TITLE = "Feroxbuster (Directory Brute Force)"
    DESCRIPTION = (
        "Fast, recursive content discovery tool written in Rust.\n"
        "Usage: feroxbuster -u https://example.com -w wordlist.txt"
    )
    SUPPORTED_OS = ["linux"]
    INSTALL_COMMANDS = [
        "curl -sL https://raw.githubusercontent.com/epi052/feroxbuster/main/install-nix.sh "
        "| sudo bash -s /usr/local/bin",
    ]
    RUN_COMMANDS = ["feroxbuster -h"]
    PROJECT_URL = "https://github.com/epi052/feroxbuster"


class Nikto(HackingTool):
    TITLE = "Nikto (Web Server Scanner)"
    DESCRIPTION = (
        "Scan web servers for dangerous files, outdated software, misconfigurations.\n"
        "Usage: nikto -h https://example.com"
    )
    SUPPORTED_OS = ["linux"]
    INSTALL_COMMANDS = ["sudo apt-get install -y nikto"]
    RUN_COMMANDS = ["nikto -Help"]
    PROJECT_URL = "https://github.com/sullo/nikto"


class Wafw00f(HackingTool):
    TITLE = "wafw00f (WAF Detector)"
    DESCRIPTION = (
        "Fingerprint and identify Web Application Firewalls (WAF).\n"
        "Usage: wafw00f https://example.com"
    )
    INSTALL_COMMANDS = [
        "git clone https://github.com/EnableSecurity/wafw00f.git",
        "cd wafw00f && pip install --user .",
    ]
    RUN_COMMANDS = ["wafw00f --help"]
    PROJECT_URL = "https://github.com/EnableSecurity/wafw00f"


class Katana(HackingTool):
    TITLE = "Katana (Web Crawler)"
    DESCRIPTION = (
        "Next-generation crawling and spidering framework from ProjectDiscovery.\n"
        "Usage: katana -u https://example.com"
    )
    REQUIRES_GO = True
    INSTALL_COMMANDS = [
        "go install -v github.com/projectdiscovery/katana/cmd/katana@latest",
    ]
    RUN_COMMANDS = ["katana -h"]
    PROJECT_URL = "https://github.com/projectdiscovery/katana"


class WebAttackTools(HackingToolsCollection):
    TITLE = "Web Attack tools"
    DESCRIPTION = ""
@@ -119,7 +203,13 @@ class WebAttackTools(HackingToolsCollection):
        CheckURL(),
        Blazy(),
        SubDomainTakeOver(),
        Dirb()
        Dirb(),
        Nuclei(),
        Ffuf(),
        Feroxbuster(),
        Nikto(),
        Wafw00f(),
        Katana(),
    ]

if __name__ == "__main__":
+49 −0
Original line number Diff line number Diff line
@@ -154,6 +154,52 @@ class Howmanypeople(HackingTool):
    REQUIRES_WIFI = True


class Airgeddon(HackingTool):
    TITLE = "Airgeddon (Wireless Attack Suite)"
    DESCRIPTION = (
        "Multi-use bash script for auditing wireless networks.\n"
        "Covers WPA/WPA2, WEP, WPS, PMKID, evil twin, handshake capture and more."
    )
    SUPPORTED_OS = ["linux"]
    REQUIRES_WIFI = True
    INSTALL_COMMANDS = [
        "git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git",
    ]
    RUN_COMMANDS = ["cd airgeddon && sudo bash airgeddon.sh"]
    PROJECT_URL = "https://github.com/v1s1t0r1sh3r3/airgeddon"


class Hcxdumptool(HackingTool):
    TITLE = "hcxdumptool (PMKID Capture)"
    DESCRIPTION = (
        "Capture packets and PMKID hashes from WLAN devices.\n"
        "Usage: hcxdumptool -i <iface> -o capture.pcapng --enable_status=1"
    )
    SUPPORTED_OS = ["linux"]
    REQUIRES_WIFI = True
    INSTALL_COMMANDS = [
        "git clone https://github.com/ZerBea/hcxdumptool.git",
        "cd hcxdumptool && make && sudo make install",
    ]
    RUN_COMMANDS = ["hcxdumptool --help"]
    PROJECT_URL = "https://github.com/ZerBea/hcxdumptool"


class Hcxtools(HackingTool):
    TITLE = "hcxtools (PMKID/Hash Conversion)"
    DESCRIPTION = (
        "Convert captured WLAN packets to hashcat/JtR-compatible format.\n"
        "Usage: hcxpcapngtool -o hashes.txt capture.pcapng"
    )
    SUPPORTED_OS = ["linux"]
    INSTALL_COMMANDS = [
        "git clone https://github.com/ZerBea/hcxtools.git",
        "cd hcxtools && make && sudo make install",
    ]
    RUN_COMMANDS = ["hcxpcapngtool --help"]
    PROJECT_URL = "https://github.com/ZerBea/hcxtools"


class WirelessAttackTools(HackingToolsCollection):
    TITLE = "Wireless attack tools"
    TOOLS = [
@@ -166,6 +212,9 @@ class WirelessAttackTools(HackingToolsCollection):
        EvilTwin(),
        Fastssh(),
        Howmanypeople(),
        Airgeddon(),
        Hcxdumptool(),
        Hcxtools(),
    ]


Loading