From cce4606d0eca25c776b350c23fe34dc93d3ef027 Mon Sep 17 00:00:00 2001 From: Hardik Zinzuvadiya <25708027+Z4nzu@users.noreply.github.com> Date: Sun, 15 Mar 2026 14:04:39 +0530 Subject: [PATCH] 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 --- tools/forensics.py | 39 ++++++++++++- tools/information_gathering.py | 101 ++++++++++++++++++++++++++++++++- tools/post_exploitation.py | 16 +++++- tools/web_attack.py | 92 +++++++++++++++++++++++++++++- tools/wireless_attack.py | 49 ++++++++++++++++ tools/wordlist_generator.py | 41 ++++++++++++- 6 files changed, 333 insertions(+), 5 deletions(-) diff --git a/tools/forensics.py b/tools/forensics.py index e917546..8a51507 100644 --- a/tools/forensics.py +++ b/tools/forensics.py @@ -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__": diff --git a/tools/information_gathering.py b/tools/information_gathering.py index 3ada283..62a8e1a 100644 --- a/tools/information_gathering.py +++ b/tools/information_gathering.py @@ -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 --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 -- -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 " + ) + 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__": diff --git a/tools/post_exploitation.py b/tools/post_exploitation.py index 5d5ed76..2591fa0 100644 --- a/tools/post_exploitation.py +++ b/tools/post_exploitation.py @@ -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__": diff --git a/tools/web_attack.py b/tools/web_attack.py index bb17d62..ca8e2b6 100644 --- a/tools/web_attack.py +++ b/tools/web_attack.py @@ -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__": diff --git a/tools/wireless_attack.py b/tools/wireless_attack.py index 172ce75..8fbff09 100644 --- a/tools/wireless_attack.py +++ b/tools/wireless_attack.py @@ -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 -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(), ] diff --git a/tools/wordlist_generator.py b/tools/wordlist_generator.py index 325f296..677efac 100644 --- a/tools/wordlist_generator.py +++ b/tools/wordlist_generator.py @@ -92,13 +92,52 @@ class showme(HackingTool): console.print(panel) +class Hashcat(HackingTool): + TITLE = "Hashcat (Password Cracker)" + DESCRIPTION = ( + "World's fastest GPU/CPU password recovery tool — supports 300+ hash types.\n" + "Usage: hashcat -m 0 -a 0 hashes.txt wordlist.txt" + ) + SUPPORTED_OS = ["linux"] + INSTALL_COMMANDS = ["sudo apt-get install -y hashcat"] + RUN_COMMANDS = ["hashcat --help"] + PROJECT_URL = "https://github.com/hashcat/hashcat" + + +class JohnTheRipper(HackingTool): + TITLE = "John the Ripper" + DESCRIPTION = ( + "Open-source password security auditing and recovery tool.\n" + "Usage: john --wordlist=wordlist.txt hashfile" + ) + SUPPORTED_OS = ["linux"] + INSTALL_COMMANDS = ["sudo apt-get install -y john"] + RUN_COMMANDS = ["john --help"] + PROJECT_URL = "https://github.com/openwall/john" + + +class Haiti(HackingTool): + TITLE = "haiti (Hash Type Identifier)" + DESCRIPTION = ( + "Identify hash types — supports 300+ algorithms.\n" + "Usage: haiti " + ) + REQUIRES_RUBY = True + INSTALL_COMMANDS = ["gem install haiti-hash"] + RUN_COMMANDS = ["haiti --help"] + PROJECT_URL = "https://github.com/noraj/haiti" + + class WordlistGeneratorTools(HackingToolsCollection): TITLE = "Wordlist Generator" TOOLS = [ Cupp(), WlCreator(), GoblinWordGenerator(), - showme() + showme(), + Hashcat(), + JohnTheRipper(), + Haiti(), ] def show_info(self):