Skip to main content

NagoyaSpray

NagoyaSpray

The Problem

You're mid-exam - OSCP, PNPT, CPTS, whatever - and you need to spray some passwords. Clock's ticking. Your options suck:

  1. Grab a massive wordlist - Spray 50k passwords, lock accounts, waste time
  2. Write regex on the spot - Spend 10 minutes fighting with sedawkgrep while 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

nagoyaspray.py

# 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.

Metadata

Release files for nagoyaspray 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nagoyaspray 1.1.0
File Size Uploaded
nagoyaspray-1.1.0.tar.gz 18.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nagoyaspray 1.1.0
File Interpreter ABI Platform
nagoyaspray-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.2 kB

Release files / nagoyaspray-1.1.0.tar.gz

Download URL nagoyaspray-1.1.0.tar.gz
Size 18.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e871a6022c00cf5f47ad596680833b5849a8be79d5207c1001eb6d8fa3e6ced4
BLAKE2b-256 checksum
How to use checksums
11d396e61b43dde90b0ac0e313bb6cef8cadb2c8fb7ceb33c12b1581d3a7b24a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / nagoyaspray-1.1.0-py3-none-any.whl

Download URL nagoyaspray-1.1.0-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ff9e76b65b6ac18e0cd6977cc7be3556b3e0886a71f73f31d8c790e0635aac5
BLAKE2b-256 checksum
How to use checksums
94d90adf12bd871dcd59bc9f326ab130abddd71c0013c34703734d134b4511a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page