- yaml config file with last args automatically written to
last-config.yaml
--no-ssl
flag to allow specification of plain HTTP usage--quiet
to suppress every login attempt result from being displayed to the console- A more verbose
--debug
option - Ability to remove usernames or passwords from lists mid-spray
- Migrated to
typer
fromclick
for arg parsing - Config file format to yaml
- Timestamps utilize UTC
- Migrated to JSON output objects instead of CSV files
- Improved logic for mid-spray username/password file updates
- Jitter delay triggering before the first login attempt
- Catch OSError that gets thrown on SMB connection timeouts (#23)
- Bug sending Discord notifications
- Consolidated several duplicate definitions into
spraycharles/__init__.py
- Added
verify=False
to target module requests (except Office365 module)
- Unused import statements
- All spraying modules were broken after the addition of the list submodule. Changed list to modules to fix issue.
- Output for
gen
submodule
- Versioning to X.X.X
- Made spraycharles a package usable as a CLI utility. (spraycharles, sc)
- Started supported test harnesses (pytest) to project for later use
- Started prepping spraycharles for publishing to the PyPi package repository
- Converted all included scripts as submodules to spraycharles
- All included scripts can no longer be called as standalone tools
- Started storing logfiles and csv output in user home directory
- Moved Dockerfile and list_elements.json to extras directory
- Updated Dockerfile
- Updated README.md to reflect changes
- Improved handling of NTSTATUS values returned by SMB logins
- Analysis of SMB logins
- Fixed bug related to spray modules inheriting methods from BaseHttpTarget parent that refereced vars not set in formdata
- Okta target module (needs testing)
- In Office365 module: spelling fixes, removed "WindowsPowerShell" for user-agent string and minor edits
- Added a base class for HTTP targets so that most target modules can inherit classes to print output, headers, etc
- Refactored spraycharles.py to utilize a class
- Fixed reference to port CLI flag
- Fixed http_analyze function to also send notifications
- Made the ADFS, Ciscosslvpn, Citrix, Ntlm, Owa and Sonicwall targets subclasses of BaseHttpTarget to minimize code reuse
- Utilize the rich library for terminal output
- Progress bar during spray attempt
- Pre-commit hooks for formatting
- Code reformatted using black library
- Internal variable names in spraycharles.py to allow config file variable names to match CLI flag names
- OpenVPN module
- Support for Slack, Teams and Discord notitications via webhooks when a successful spray hit is identified
--notify
and--webhook
arguments to support notifications--path
argument to support the NTLM modulentlm_challenger.py
utils
folder and added spraycharles' auxiliary resources there--pause
flag to optionally stop spraying and ask for confirmation to continue after a hit has been identified- Changelog
- Versioning
- Switched from Argpase to Click in both
analyze.py
andspraycharles.py
- Updated
list_elements.json
for 2022 - Refactored EWS module to be a generic NTLM over HTTP module