hackingtool/tools/wordlist_generator.py

164 lines
5.9 KiB
Python
Raw Permalink Normal View History

2025-10-14 06:02:18 +00:00
import os
import subprocess
from rich.panel import Panel
from rich.prompt import Prompt
from rich.table import Table
2025-10-14 06:02:18 +00:00
from rich import box
from core import HackingTool, HackingToolsCollection, console
2025-10-14 06:02:18 +00:00
class Cupp(HackingTool):
TITLE = "Cupp"
# Bug 24 fix: DESCRIPTION was copy-pasted from WlCreator — completely wrong
DESCRIPTION = "Common User Passwords Profiler — generates personalized wordlists based on target info."
INSTALL_COMMANDS = ["git clone https://github.com/Mebus/cupp.git"]
RUN_COMMANDS = ["cd cupp && python3 cupp.py -i"]
PROJECT_URL = "https://github.com/Mebus/cupp"
2025-10-14 06:02:18 +00:00
def show_info(self):
panel = Panel(
f"[bold purple]{self.TITLE}[/bold purple]\n\n"
f"[cyan]{self.DESCRIPTION}[/cyan]\n\n"
f"[green]Repository:[/green] [underline blue]{self.PROJECT_URL}[/underline blue]",
border_style="purple",
box=box.ROUNDED,
)
console.print(panel)
class WlCreator(HackingTool):
TITLE = "WordlistCreator"
DESCRIPTION = "WlCreator is a C program that can create all possibilities" \
2022-06-15 11:07:23 +00:00
" of passwords,\n and you can choose Length, Lowercase, " \
"Capital, Numbers and Special Chars"
INSTALL_COMMANDS = ["git clone https://github.com/Z4nzu/wlcreator.git"]
RUN_COMMANDS = [
"cd wlcreator && sudo gcc -o wlcreator wlcreator.c && ./wlcreator 5"]
PROJECT_URL = "https://github.com/Z4nzu/wlcreator"
2025-10-14 06:02:18 +00:00
def show_info(self):
panel = Panel(
f"[bold purple]{self.TITLE}[/bold purple]\n\n"
f"[cyan]{self.DESCRIPTION}[/cyan]\n\n"
f"[green]Repository:[/green] [underline blue]{self.PROJECT_URL}[/underline blue]",
border_style="purple",
box=box.ROUNDED,
)
console.print(panel)
class GoblinWordGenerator(HackingTool):
TITLE = "Goblin WordGenerator"
DESCRIPTION = "Goblin WordGenerator"
INSTALL_COMMANDS = [
"git clone https://github.com/UndeadSec/GoblinWordGenerator.git"]
RUN_COMMANDS = ["cd GoblinWordGenerator && python3 goblin.py"]
PROJECT_URL = "https://github.com/UndeadSec/GoblinWordGenerator.git"
2025-10-14 06:02:18 +00:00
def show_info(self):
panel = Panel(
f"[bold purple]{self.TITLE}[/bold purple]\n\n"
f"[cyan]{self.DESCRIPTION}[/cyan]\n\n"
f"[green]Repository:[/green] [underline blue]{self.PROJECT_URL}[/underline blue]",
border_style="purple",
box=box.ROUNDED,
)
console.print(panel)
class showme(HackingTool):
TITLE = "Password list (1.4 Billion Clear Text Password)"
DESCRIPTION = "This tool allows you to perform OSINT and reconnaissance on " \
"an organisation or an individual. It allows one to search " \
"1.4 Billion clear text credentials which was dumped as " \
"part of BreachCompilation leak. This database makes " \
"finding passwords faster and easier than ever before."
INSTALL_COMMANDS = [
"git clone https://github.com/Viralmaniar/SMWYG-Show-Me-What-You-Got.git",
"cd SMWYG-Show-Me-What-You-Got && pip3 install -r requirements.txt"
]
RUN_COMMANDS = ["cd SMWYG-Show-Me-What-You-Got && python SMWYG.py"]
PROJECT_URL = "https://github.com/Viralmaniar/SMWYG-Show-Me-What-You-Got"
2025-10-14 06:02:18 +00:00
def show_info(self):
panel = Panel(
f"[bold purple]{self.TITLE}[/bold purple]\n\n"
f"[cyan]{self.DESCRIPTION}[/cyan]\n\n"
f"[green]Repository:[/green] [underline blue]{self.PROJECT_URL}[/underline blue]",
border_style="purple",
box=box.ROUNDED,
)
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 <hash>"
)
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(),
Hashcat(),
JohnTheRipper(),
Haiti(),
]
2025-10-14 06:02:18 +00:00
def show_info(self):
header = Panel(f"[bold white on purple] {self.TITLE} [/bold white on purple]",
border_style="purple", box=box.DOUBLE)
console.print(header)
table = Table(box=box.SIMPLE, show_header=True, header_style="bold purple")
table.add_column("#", justify="center", style="cyan", width=4)
table.add_column("Tool", style="bold")
table.add_column("Description", style="dim", overflow="fold")
for idx, t in enumerate(self.TOOLS, start=1):
desc = getattr(t, "DESCRIPTION", "") or ""
table.add_row(str(idx), t.TITLE, desc)
table.add_row("[red]99[/red]", "[bold red]Exit[/bold red]", "Return to previous menu")
console.print(table)
if __name__ == "__main__":
tools = WordlistGeneratorTools()
tools.show_info()
tools.show_options()