Skip to content

Repository files navigation

GuessWorks

Guess Works

  • python3 guess_works.py

realistic password/wordlist generation

ArgumentDescription
-e, --essidTarget ESSID (e.g., BELL123456)
-a, --areaArea code for phone number guesses (e.g., 416)
-s, --streetStreet name (e.g., Main, KingWest)
-o, --outputFile to save the generated passwords
--seasonsInclude seasonal guesses
--monthsInclude month/year combinations
--holidaysInclude holiday-based guesses
--namesInclude popular names + years
--eventsInclude global event-related patterns
--sportsInclude sports teams + years
--no-yearExclude year suffix from guesses
--add-numbersAppend numbers 1-N to each generated string (default 1–1000)
--clean-lengthRemove lines under 8 characters long
--clean-numbersRemove lines containing only numbers
--capitalizeCapitalize the first character of each line (skips numbers)
--fillerAdds junk numeric strings to the start and end of file
--filler-countTotal filler lines (default: 7000, 5000 start + 2000 end)
--ai-namesAugments --names with offline AI-generated human names using a character-level Markov model trained on common name patterns
--ai-ollamaGenerate names or words using a local Ollama LLM. Uses a default prompt.json (editable) or a custom prompt via --prompt

  • # 1. Generate guesses for a specific ESSID
    python3 guess_works.py -e BELL123456 --seasons --holidays --output bell_guesses.txt
    # 2. Generate guesses based on a Canadian area code
    python3 guess_works.py -a 416 --add-numbers 50 --output phone_guesses.txt
    # 3. Generate guesses using street names and popular names
    python3 guess_works.py -s KingWest --names --no-year --output street_name_guesses.txt
    # 4. Generate guesses for sports teams and global events
    python3 guess_works.py --sports --events --capitalize --output event_sports_guesses.txt
    # 5. Generate a full mixed list with cleaning applied
    python3 guess_works.py -e VIRGIN123 --seasons --months --holidays --names --events --sports \
    --clean-length --clean-numbers --output full_wordlist.txt
    

Pipe Wordlists Directly into Aircrack-ng

  • gw_aircrack.py generates enhanced password variants on-the-fly and can be piped straight into aircrack-ng without creating a large intermediate file.
FlagDescription
-i, --inputInput wordlist file (required)
--leetApply leetspeak substitutions
--suffixAppend common suffixes (numbers, symbols, etc.)
--prefixAdd common prefixes (!, VIP, etc.)
--toggleRandomly toggle character case
--maxOptional maximum number of variants to generate

  • # 1. Generate with leetspeak + suffixes, pipe to aircrack-ng:
    python3 gw_aircrack.py -i base_words.txt --leet --suffix | aircrack-ng -w- -b <BSSID> capture.cap
    # 2. Apply all enhancements and limit to 50,000 variants:
    python3 gw_aircrack.py -i base_words.txt --leet --suffix --prefix --toggle --max 50000 | aircrack-ng -w- -b <BSSID> capture.cap
    # 3. Use without enhancements (just pass the base wordlist to aircrack-ng):
    python3 gw_aircrack.py -i base_words.txt | aircrack-ng -w- -b <BSSID> capture.cap
    

Enhance Your Wordlist

  • python3 gw_enhancer.py applies leetspeak, prefixes, suffixes, and case toggling to an existing wordlist to generate realistic password variants.

Basic Usage

python3 gw_enhancer.py -i base_words.txt -o enhanced.txt --leet --suffix --prefix --toggle
FlagDescription
-i, --inputInput file with base words (required)
-o, --outputOutput file to save enhanced wordlist (required unless --overwrite)
--leetApply leetspeak substitutions
--suffixAppend common suffixes (numbers, symbols, etc.)
--prefixAdd common prefixes (!, VIP, etc.)
--toggleRandomly toggle character case for realism
--overwriteOverwrite input file instead of writing to output
--maxMax number of generated variants (default very high)

  • # 1. Enhance with leetspeak and suffixes:
    python3 gw_enhancer.py -i base_words.txt -o enhanced.txt --leet --suffix
    # 2. Add prefixes and toggle case:
    python3 gw_enhancer.py -i base_words.txt -o enhanced.txt --prefix --toggle
    # 3. Apply all enhancements:
    python3 gw_enhancer.py -i base_words.txt -o enhanced.txt --leet --suffix --prefix --toggle
    # 4. Overwrite the original wordlist:
    python3 gw_enhancer.py -i base_words.txt --overwrite --leet --suffix
    # 5. Limit output to 10,000 variants:
    python3 gw_enhancer.py -i base_words.txt -o enhanced.txt --leet --suffix --max 10000
    

gw_merge

  • python3 gw_merge.py

Merge and Clean Wordlists

This script combines all .txt files in the current directory, removes duplicates, sorts them, and saves the result to wordlist_clean.txt:

#!/usr/bin/env python3
import glob
output_file = "wordlist_clean.txt"
all_lines = set()
forfilenamein glob.glob("*.txt"):
with open(filename, "r", encoding="utf-8", errors="ignore") as f:
forlinein f:
line = line.strip()
if line:
all_lines.add(line)
with open(output_file, "w", encoding="utf-8") as f:
forlinein sorted(all_lines):
f.write(line + "\n")
print(f"[+] Combined {len(all_lines)} unique lines into {output_file}")

Releases

Packages

Contributors

Languages