2020-08-14 11:11:59 +00:00
|
|
|
|
import os
|
2023-09-13 19:04:49 +00:00
|
|
|
|
|
2026-03-15 08:25:04 +00:00
|
|
|
|
from core import HackingTool, HackingToolsCollection, console
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
2025-10-14 06:02:18 +00:00
|
|
|
|
from rich.panel import Panel
|
|
|
|
|
|
from rich.text import Text
|
|
|
|
|
|
from rich.prompt import Prompt
|
|
|
|
|
|
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
class Autopsy(HackingTool):
|
|
|
|
|
|
TITLE = "Autopsy"
|
|
|
|
|
|
DESCRIPTION = "Autopsy is a platform that is used by Cyber Investigators.\n" \
|
2022-06-15 11:37:12 +00:00
|
|
|
|
"[!] Works in any OS\n" \
|
|
|
|
|
|
"[!] Recover Deleted Files from any OS & Media \n" \
|
2020-08-14 11:11:59 +00:00
|
|
|
|
"[!] Extract Image Metadata"
|
2022-06-15 11:37:12 +00:00
|
|
|
|
RUN_COMMANDS = ["sudo autopsy"]
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
2026-03-15 08:25:04 +00:00
|
|
|
|
super().__init__(installable=False)
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Wireshark(HackingTool):
|
|
|
|
|
|
TITLE = "Wireshark"
|
|
|
|
|
|
DESCRIPTION = "Wireshark is a network capture and analyzer \n" \
|
|
|
|
|
|
"tool to see what’s happening in your network.\n " \
|
|
|
|
|
|
"And also investigate Network related incident"
|
|
|
|
|
|
RUN_COMMANDS = ["sudo wireshark"]
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
2026-03-15 08:25:04 +00:00
|
|
|
|
super().__init__(installable=False)
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BulkExtractor(HackingTool):
|
|
|
|
|
|
TITLE = "Bulk extractor"
|
2020-12-27 23:27:39 +00:00
|
|
|
|
DESCRIPTION = "Extract useful information without parsing the file system"
|
2020-08-14 11:11:59 +00:00
|
|
|
|
PROJECT_URL = "https://github.com/simsong/bulk_extractor"
|
2026-03-15 08:25:05 +00:00
|
|
|
|
SUPPORTED_OS = ["linux"]
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
2026-03-15 08:25:04 +00:00
|
|
|
|
super().__init__([
|
2020-08-14 11:11:59 +00:00
|
|
|
|
('GUI Mode (Download required)', self.gui_mode),
|
|
|
|
|
|
('CLI Mode', self.cli_mode)
|
2025-10-14 06:02:18 +00:00
|
|
|
|
], installable=False, runnable=False)
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
def gui_mode(self):
|
2026-03-15 08:25:05 +00:00
|
|
|
|
import subprocess
|
|
|
|
|
|
from config import get_tools_dir
|
2026-03-15 08:25:04 +00:00
|
|
|
|
console.print(Panel(Text(self.TITLE, justify="center"), style="bold magenta"))
|
2025-10-14 06:02:18 +00:00
|
|
|
|
console.print("[bold magenta]Cloning repository and attempting to run GUI...[/]")
|
2026-03-15 08:25:05 +00:00
|
|
|
|
tools_dir = get_tools_dir()
|
|
|
|
|
|
subprocess.run(["git", "clone", "https://github.com/simsong/bulk_extractor.git"],
|
|
|
|
|
|
cwd=str(tools_dir))
|
|
|
|
|
|
be_dir = tools_dir / "bulk_extractor"
|
|
|
|
|
|
subprocess.run(["./BEViewer"], cwd=str(be_dir / "java_gui"))
|
2025-10-14 06:02:18 +00:00
|
|
|
|
console.print(
|
|
|
|
|
|
"[magenta]If you get an error after clone go to /java_gui/src/ and compile the .jar file && run ./BEViewer[/]")
|
|
|
|
|
|
console.print(
|
|
|
|
|
|
"[magenta]Please visit for more details about installation: https://github.com/simsong/bulk_extractor[/]")
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
def cli_mode(self):
|
2026-03-15 08:25:05 +00:00
|
|
|
|
import subprocess
|
2026-03-15 08:25:04 +00:00
|
|
|
|
console.print(Panel(Text(self.TITLE + " - CLI Mode", justify="center"), style="bold magenta"))
|
2026-03-15 08:25:05 +00:00
|
|
|
|
subprocess.run(["sudo", "apt", "install", "-y", "bulk-extractor"])
|
|
|
|
|
|
console.print("[magenta]bulk_extractor [options] imagefile[/]")
|
|
|
|
|
|
subprocess.run(["bulk_extractor", "-h"])
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Guymager(HackingTool):
|
2023-03-04 14:08:54 +00:00
|
|
|
|
TITLE = "Disk Clone and ISO Image Acquire"
|
2020-08-14 11:11:59 +00:00
|
|
|
|
DESCRIPTION = "Guymager is a free forensic imager for media acquisition."
|
2026-03-15 08:25:05 +00:00
|
|
|
|
SUPPORTED_OS = ["linux"]
|
2020-08-14 11:11:59 +00:00
|
|
|
|
INSTALL_COMMANDS = ["sudo apt install guymager"]
|
|
|
|
|
|
RUN_COMMANDS = ["sudo guymager"]
|
|
|
|
|
|
PROJECT_URL = "https://guymager.sourceforge.io/"
|
|
|
|
|
|
|
2025-10-14 06:02:18 +00:00
|
|
|
|
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
class Toolsley(HackingTool):
|
|
|
|
|
|
TITLE = "Toolsley"
|
|
|
|
|
|
DESCRIPTION = "Toolsley got more than ten useful tools for investigation.\n" \
|
|
|
|
|
|
"[+]File signature verifier\n" \
|
|
|
|
|
|
"[+]File identifier \n" \
|
|
|
|
|
|
"[+]Hash & Validate \n" \
|
|
|
|
|
|
"[+]Binary inspector \n " \
|
|
|
|
|
|
"[+]Encode text \n" \
|
|
|
|
|
|
"[+]Data URI generator \n" \
|
|
|
|
|
|
"[+]Password generator"
|
|
|
|
|
|
PROJECT_URL = "https://www.toolsley.com/"
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
2026-03-15 08:25:04 +00:00
|
|
|
|
super().__init__(installable=False, runnable=False)
|
2020-08-14 11:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
2026-03-15 08:34:39 +00:00
|
|
|
|
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"
|
|
|
|
|
|
|
|
|
|
|
|
|
Add 35 new tools across 3 new + 6 existing categories
New categories:
- tools/active_directory.py: BloodHound, NetExec (nxc), Impacket,
Responder, Certipy, Kerbrute (6 tools)
- tools/cloud_security.py: Prowler, ScoutSuite, Pacu, Trivy (4 tools)
- tools/mobile_security.py: MobSF, Frida, Objection (3 tools)
Existing categories expanded:
- information_gathering.py: +SpiderFoot, Subfinder, TruffleHog, Gitleaks (4)
- web_attack.py: +Gobuster, Dirsearch, OWASP ZAP, testssl.sh, Arjun,
Caido, mitmproxy (7)
- post_exploitation.py: +Sliver, Havoc, PEASS-ng, Ligolo-ng, Chisel,
Evil-WinRM, Mythic (7)
- reverse_engineering.py: +Ghidra, Radare2 (2)
- forensics.py: +pspy (1)
- wireless_attack.py: +Bettercap (1)
hackingtool.py:
- Import 3 new category modules
- Add 3 new entries to tool_definitions (AD, Cloud, Mobile)
- Add 3 new instances to all_tools list
- Categories: 17 -> 20, total tools: 150+ -> 185+
- Help overlay updated for new range (1-20, 21=Update)
2026-03-15 12:28:45 +00:00
|
|
|
|
class Pspy(HackingTool):
|
|
|
|
|
|
TITLE = "pspy (Process Monitor — No Root)"
|
|
|
|
|
|
DESCRIPTION = "Monitor Linux processes without root — detects cron jobs, scheduled tasks, other users' commands."
|
|
|
|
|
|
INSTALL_COMMANDS = [
|
|
|
|
|
|
"curl -sSL https://github.com/DominicBreuker/pspy/releases/latest/download/pspy64 -o pspy",
|
|
|
|
|
|
"chmod +x pspy",
|
|
|
|
|
|
]
|
|
|
|
|
|
RUN_COMMANDS = ["./pspy --help"]
|
|
|
|
|
|
PROJECT_URL = "https://github.com/DominicBreuker/pspy"
|
|
|
|
|
|
SUPPORTED_OS = ["linux"]
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-14 11:11:59 +00:00
|
|
|
|
class ForensicTools(HackingToolsCollection):
|
|
|
|
|
|
TITLE = "Forensic tools"
|
|
|
|
|
|
TOOLS = [
|
|
|
|
|
|
Autopsy(),
|
|
|
|
|
|
Wireshark(),
|
|
|
|
|
|
BulkExtractor(),
|
|
|
|
|
|
Guymager(),
|
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
2026-03-15 08:34:39 +00:00
|
|
|
|
Toolsley(),
|
|
|
|
|
|
Volatility3(),
|
|
|
|
|
|
Binwalk(),
|
Add 35 new tools across 3 new + 6 existing categories
New categories:
- tools/active_directory.py: BloodHound, NetExec (nxc), Impacket,
Responder, Certipy, Kerbrute (6 tools)
- tools/cloud_security.py: Prowler, ScoutSuite, Pacu, Trivy (4 tools)
- tools/mobile_security.py: MobSF, Frida, Objection (3 tools)
Existing categories expanded:
- information_gathering.py: +SpiderFoot, Subfinder, TruffleHog, Gitleaks (4)
- web_attack.py: +Gobuster, Dirsearch, OWASP ZAP, testssl.sh, Arjun,
Caido, mitmproxy (7)
- post_exploitation.py: +Sliver, Havoc, PEASS-ng, Ligolo-ng, Chisel,
Evil-WinRM, Mythic (7)
- reverse_engineering.py: +Ghidra, Radare2 (2)
- forensics.py: +pspy (1)
- wireless_attack.py: +Bettercap (1)
hackingtool.py:
- Import 3 new category modules
- Add 3 new entries to tool_definitions (AD, Cloud, Mobile)
- Add 3 new instances to all_tools list
- Categories: 17 -> 20, total tools: 150+ -> 185+
- Help overlay updated for new range (1-20, 21=Update)
2026-03-15 12:28:45 +00:00
|
|
|
|
Pspy(),
|
2020-08-14 11:11:59 +00:00
|
|
|
|
]
|
2025-10-14 06:02:18 +00:00
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
tools = ForensicTools()
|
|
|
|
|
|
tools.show_options()
|