Spraycharles

raw JSON →
2.0.3 verified Sat May 09 auth: no python

A low and slow password spraying tool for Active Directory, designed to spray credentials over a long period of time to avoid lockouts. Version 2.0.3 supports OWA, EWS, Teams, and ADFS, with concurrency and retry intervals. Development is active.

pip install spraycharles
error ModuleNotFoundError: No module named 'spraycharles'
cause Library not installed in current Python environment.
fix
Run: pip install spraycharles
error AttributeError: module 'spraycharles' has no attribute 'SprayRunner'
cause Import path changed in v2; SprayRunner is in the top-level package.
fix
Use: from spraycharles import SprayRunner
gotcha Spraycharles is designed for slow spraying over a long period; setting low jitter or short duration can trigger account lockouts quickly.
fix Increase jitter (e.g., 30-60 seconds) and duration (e.g., 120 minutes).
breaking Version 2.0.0 introduced a major rewrite; configuration and API changed from v1. Old config files or YAML structures may not work.
fix Refer to https://github.com/Tw1sm/spraycharles for new YAML schema.

Create a SprayRunner with targets, passwords, jitter (seconds), and duration (minutes) to start spraying.

from spraycharles import SprayRunner
runner = SprayRunner(
    targets=['user@domain.com'],
    passwords=['Password1', 'Password2'],
    jitter=10,
    dur=60
)
runner.run()