CTF-focused password spray wordlist generator for OSCP/PNPT/CPTS
Project description
NagoyaSpray
The Problem
You're mid-exam - OSCP, PNPT, CPTS, whatever - and you need to spray some passwords. Clock's ticking. Your options suck:
- Grab a massive wordlist - Spray 50k passwords, lock accounts, waste time
- Write regex on the spot - Spend 10 minutes fighting with
sedawkgrepwhile your brain rots
Neither option is good when you're already stressed and every minute matters.
Why I Built This
Hit this exact problem several times, for example: on Nagoya from Proving Grounds. Needed seasonal passwords fast. Started with a quick bash one-liner that worked great for that box.
Then I kept running into the same situation on other machines. Kept rewriting similar regex patterns every time. So I rewrote it in Python. Now it's reusable, no regex required, generates what you need in seconds.
When you need Winter2024! or Spring2024! during an exam, you shouldn't waste mental energy on wordlist generation. Just run the tool and get back to actually breaking stuff.
Use Cases
Built with cert labs in mind (OSCP, PNPT, CPTS) but works anywhere you need clean spray lists:
- AD password spraying
- CTF boxes
- Any time you need realistic date-based passwords
Installation (No requirements needed!!)
Clone the repo:
git clone https://github.com/strikoder/NagoyaSpray.git
cd NagoyaSpray
python3 nagoyaspray.py -h
Or grab the file directly:
wget https://raw.githubusercontent.com/strikoder/NagoyaSpray/refs/heads/main/nagoyaspray.py
chmod +x nagoyaspray.py
python3 nagoyaspray.py -h
Usage
# No arguments? See the help
python3 nagoyaspray.py
# Example output
Example: python3 nagoyaspray.py --seasons --months --start 2020 --end 2025 -s "!" -o passwords.txt
Basic Examples:
# Seasons + months with suffix (default: first letter capitalized)
python3 nagoyaspray.py --seasons --months --start 2020 --end 2025 -s "!" -o passwords.txt
# All word types with multiple suffixes
python3 nagoyaspray.py --all --start 2023 --end 2024 -s "!,123,@" -o passwords.txt
# Add prefix instead
python3 nagoyaspray.py --months --start 2024 --end 2024 -p "!" -o passwords.txt
# Generate only passwords between 8-12 characters
python3 nagoyaspray.py --seasons --start 2024 --end 2024 -s "!" --min 8 --max 12 -o passwords.txt
# All lowercase passwords (no capitalization)
python3 nagoyaspray.py --months --start 2024 --end 2024 -s "!" --cap lower -o passwords.txt
# Custom words
python3 nagoyaspray.py -w "Company,Admin" --start 2023 --end 2024 -s "!" -o passwords.txt
# Both prefix and suffix
python3 nagoyaspray.py --seasons --start 2024 --end 2024 -b "!" -o passwords.txt
Flags:
--months- Include months--seasons- Include seasons--days- Include days of the week--common- Include common words--all- Include everything-w- Custom comma-separated words--start/--end- Year range-s- Suffix (add at end)-p- Prefix (add at start)-b- Both (add at start and end)--cap- Capitalization mode:first(default - first letter capitalized),lower(all lowercase),upper(all uppercase),last(last letter capitalized),all(all variations)--min- Minimum password length (default: 1)--max- Maximum password length (default: 100)-o- Output file (required)--print- Print to stdout instead
Note: By default, all passwords have their first letter capitalized (e.g., Winter2024!). Use --cap lower for all lowercase or --cap upper for all uppercase.
Shoutout
Props to spraygen for inspiration. This is basically the diet version - same idea, way less calories.
Key Differences:
| Feature | spraygen | NagoyaSpray |
|---|---|---|
| Dependencies | Requires external libraries | Zero dependencies - pure Python |
| Complexity | 10+ modes, sports teams, iterative keyspaces | Simple and focused - just what you need for an exam/CTF |
| Capitalization | cannot capitalize last letter only | First letter capitalized by default + 5 modes (first, last, lower, upper, all) |
| Target Use Case | General purpose with tons of options | Built specifically for quick CTF/exam spraying |
| Speed | Heavier and slower | Lightweight and fast - generate in seconds |
v1.1 - Does what it says on the tin.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nagoyaspray-1.1.0.tar.gz.
File metadata
- Download URL: nagoyaspray-1.1.0.tar.gz
- Upload date:
- Size: 18.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e871a6022c00cf5f47ad596680833b5849a8be79d5207c1001eb6d8fa3e6ced4
|
|
| MD5 |
bd2242ca9d235a8ddbc0fce47c27e998
|
|
| BLAKE2b-256 |
11d396e61b43dde90b0ac0e313bb6cef8cadb2c8fb7ceb33c12b1581d3a7b24a
|
File details
Details for the file nagoyaspray-1.1.0-py3-none-any.whl.
File metadata
- Download URL: nagoyaspray-1.1.0-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ff9e76b65b6ac18e0cd6977cc7be3556b3e0886a71f73f31d8c790e0635aac5
|
|
| MD5 |
5ff27f17083d78603aea7a1e503ffd6a
|
|
| BLAKE2b-256 |
94d90adf12bd871dcd59bc9f326ab130abddd71c0013c34703734d134b4511a7
|