{"id":48672727,"url":"https://github.com/0xZDH/Omnispray","last_synced_at":"2026-04-26T07:00:46.570Z","repository":{"id":46571601,"uuid":"342159062","full_name":"0xZDH/Omnispray","owner":"0xZDH","description":"Modular Enumeration and Password Spraying Framework","archived":false,"fork":false,"pushed_at":"2024-04-10T20:05:46.000Z","size":90,"stargazers_count":129,"open_issues_count":2,"forks_count":22,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-10T06:40:46.283Z","etag":null,"topics":["enumeration","password-spray","pentesting-tools","python3","security-tools"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xZDH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-25T07:28:06.000Z","updated_at":"2026-01-28T07:07:57.000Z","dependencies_parsed_at":"2022-09-18T01:00:27.625Z","dependency_job_id":null,"html_url":"https://github.com/0xZDH/Omnispray","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0xZDH/Omnispray","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xZDH%2FOmnispray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xZDH%2FOmnispray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xZDH%2FOmnispray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xZDH%2FOmnispray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xZDH","download_url":"https://codeload.github.com/0xZDH/Omnispray/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xZDH%2FOmnispray/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32288653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T06:26:00.361Z","status":"ssl_error","status_checked_at":"2026-04-26T06:25:58.791Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["enumeration","password-spray","pentesting-tools","python3","security-tools"],"created_at":"2026-04-10T13:00:21.814Z","updated_at":"2026-04-26T07:00:46.565Z","avatar_url":"https://github.com/0xZDH.png","language":"Python","funding_links":[],"categories":["Password Generation"],"sub_categories":["Spraying Tools"],"readme":"# Omnispray\n\n\u003e Omnispray | Modular Enumeration and Password Spraying Framework -- v0.1.4\n\nOmnispray aims to replace tools such as [o365spray](https://github.com/0xZDH/o365spray) and provide a modular framework to expand enumeration and spraying beyond just a single target/application.\n\nThe primary goal is to provide a framework to allow for the easy development and implementation of user enumeration and password spraying techniques for a variety of targets/applications. While there are currently several prebuilt modules included, this tool provides module templates to give users the tools needed to extend the tools usage for non-standard cases. The goal is also to provide a central tool to handle all enumeration and spraying.\n\n## Modules\n\nSee [MODULES.md](MODULES.md) for information on custom module development as well as details on included modules (O365, OWA, etc.).\n\n## Usage\n\n| Flag         | Description                                                                                                |\n|--------------|------------------------------------------------------------------------------------------------------------|\n| -m\u003cbr/\u003e--module | Specify the module to run via the modules/ directory.                                                   |\n| -d\u003cbr/\u003e--domain | Target domain for enumeration/spraying.                                                                 |\n| -tenant\u003cbr/\u003e--tenant | Target tenant name in case it differs with domain for enumeration/spraying.                       |\n| -t\u003cbr/\u003e--type   | Module type. If left blank, Omnispray will attempt to autodetect the module type based on the module name. {enum, spray} |\n| --url  | Target URL. This is for modules that don't use a standard URL for targeting.                                     |\n| -u\u003cbr/\u003e--user   | Single username/email to process.                                                                       |\n| -us\u003cbr/\u003e--users | Multiple users/emails to process. (--users uname1 uname2 uname3 ...)                                    |\n| -uf\u003cbr/\u003e--userfile  | File containing multiple users/emails to process.                                                   |\n| -p\u003cbr/\u003e--password   | Single password to process.                                                                         |\n| -ps\u003cbr/\u003e--passwords | Multiple passwords to process. (--passwords password1 password2 password3 ...)                      |\n| -pf\u003cbr/\u003e--passwordfile | File containing multiple password to process.                                                    |\n| -c\u003cbr/\u003e--count   | When password spraying, number of password attempts to run before resetting lockout timer. Default: 1 password per spray rotation |\n| -l\u003cbr/\u003e--lockout | Password spraying lockout policy reset time (in minutes). Default: 15 minutes                          |\n| -s\u003cbr/\u003e--split   | When enumerating, number of usernames to group by during execution                                     |\n| -w\u003cbr/\u003e--wait    | If splitting user enumeration via --split, time to wait between group runs (in minutes). Default: 5 minutes |\n| --timeout     | Request timeout in seconds. Default: 25 seconds                                                           |\n| --proxy       | Proxy to pass traffic through (e.g. http://127.0.0.1:8080).                                               |\n| --proxy-url   | URL of proxy to request instead of the module URL. This is to be used with tools such as FireProx.        |\n| --proxy-headers  | Custom headers to use when a --proxy-url has been provided (--proxy-headers \"header: value\" \"header2: value\" \"header3: value\" ...) (e.g. \"X-My-X-Forwarded-For: 127.0.0.1\" when using FireProx) |\n| --outdir      | Directory for results and tested files. Default: results/                                                 |\n| --logdir      | Directory for log files. Default: logs/                                                                   |\n| --pause       | Sleep (jitter) time before each task is executed in seconds. If set to '-1', a random pause, between 0.250 and 0.750, will occur before each task execution. Default: 0.250 seconds |\n| --rate        | Number of concurrent connections during enumeration/spraying. Default: 10 threads                         |\n| --version     | Print the tool version                                                                                    |\n| --debug       | Print debug information                                                                                   |\n\n### Examples\n\nO365 user enumeration via the Office module.\n```\n\u003e python3 omnispray.py --type enum -uf users.txt --module o365_enum_office\n```\n\nO365 password spraying via the ActiveSync module.\n```\n\u003e python3 omnispray.py --type spray -uf users.txt -pf passwords.txt \\\n                       --module o365_spray_activesync \\\n                       --count 3 --lockout 30\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xZDH%2FOmnispray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xZDH%2FOmnispray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xZDH%2FOmnispray/lists"}