Find leaked credentials.
OffensiveBoar is an enhanced fork of TruffleHog with additional features for comprehensive secret scanning. It is a powerful tool for Discovery, Classification, Validation, and Analysis of leaked credentials. In this context, secret refers to a credential a machine uses to authenticate itself to another machine. This includes API keys, database passwords, private encryption keys, tokens, and more.
OffensiveBoar can look for secrets in many places including Git repositories, Jira issues, chats, wikis, logs, API testing platforms, object stores, filesystems and more.
OffensiveBoar classifies over 800 secret types, mapping them back to the specific identity they belong to. Is it an AWS secret? Stripe secret? Cloudflare secret? Postgres password? SSL Private key? Sometimes it's hard to tell looking at it, so OffensiveBoar classifies everything it finds.
For every secret OffensiveBoar can classify, it can also log in to confirm if that secret is live or not. This step is critical to know if there's an active present danger or not.
For the 20 some of the most commonly leaked out credential types, instead of sending one request to check if the secret can log in, OffensiveBoar can send many requests to learn everything there is to know about the secret. Who created it? What resources can it access? What permissions does it have on those resources?
OffensiveBoar includes enhanced custom detectors that support searching for passwords and tokens in multiple languages:
- English: Detects variations like
password,Password,PASSWORD,token,Token, etc. - Russian: Detects Cyrillic variations like
ΠΏΠ°ΡΠΎΠ»Ρ,ΠΠ°ΡΠΎΠ»Ρ, etc. - And more: Easily extensible to support additional languages via the
--custom-languagesflag
Example usage:
offensiveboar filesystem /path/to/scan --custom-languages en,ruOffensiveBoar can now scan Jira issues for leaked credentials:
- Supports both Jira Cloud and Jira Server/Data Center
- Scans all projects in your Jira instance
- Analyzes all issues, including summaries, descriptions, and comments
- Supports both plain text and ADF (Atlassian Document Format) content
- Provides direct links back to the Jira issues where secrets were found
- Automatically detects installation type (Cloud vs Server/DC) based on URL
Jira Cloud example:
offensiveboar jira --jira-url https://your-domain.atlassian.net --jira-email your-email@example.com --jira-token YOUR_API_TOKEN --custom-languages en,ruJira Server/Data Center example:
offensiveboar jira --jira-url https://your-jira-instance.com --jira-token YOUR_BEARER_TOKEN --custom-languages en,ru- Detects various token formats including:
- Standard tokens:
token,tokens,Token,TOKEN, etc. - Authorization headers:
Authorization: Bearer <token>(minimum 16 characters) - Basic auth:
Authorization: Basic <base64>(minimum 20 characters)
- Standard tokens:
offensiveboar git https://github.com/your-org/your-repo --results=verifiedoffensiveboar github --org=your-org --results=verifiedJira Cloud:
offensiveboar jira --jira-url https://your-domain.atlassian.net --jira-email your-email@example.com --jira-token YOUR_API_TOKEN --custom-languages en,ruJira Server/Data Center:
offensiveboar jira --jira-url https://your-jira.com --jira-token YOUR_BEARER_TOKEN --custom-languages en,ruoffensiveboar filesystem /path/to/scan --custom-languages en,ru,esoffensiveboar filesystem path/to/file1.txt path/to/file2.txt path/to/diroffensiveboar s3 --bucket=<bucket name> --results=verified,unknowngit clone https://github.com/etyvrox/offensiveboar.git
cd offensiveboar
go installcurl -sSfL https://raw.githubusercontent.com/etyvrox/offensiveboar/main/scripts/install.sh | sh -s -- -b /usr/local/bincurl -sSfL https://raw.githubusercontent.com/etyvrox/offensiveboar/main/scripts/install.sh | sh -s -- -v -b /usr/local/bincurl -sSfL https://raw.githubusercontent.com/etyvrox/offensiveboar/main/scripts/install.sh | sh -s -- -b /usr/local/bin <ReleaseTag like v3.56.0>OffensiveBoar has a sub-command for each source of data that you may want to scan:
git- Scan git repositoriesgithub- Scan GitHub repositories and organizationsgitlab- Scan GitLab repositoriesjira- Scan Jira issues (NEW!)docker- Scan Docker imagess3- Scan AWS S3 bucketsfilesystem- Scan files and directories (with multi-language support)syslog- Scan syslog streamscircleci- Scan CircleCI buildstravisci- Scan Travis CI buildsgcs- Scan Google Cloud Storage bucketspostman- Scan Postman workspacesjenkins- Scan Jenkins serverselasticsearch- Scan Elasticsearch clustersstdin- Scan from standard inputmulti-scan- Scan multiple sources from configuration
Each subcommand can have options that you can see with the --help flag:
offensiveboar git --help
offensiveboar jira --help
offensiveboar filesystem --helpOffensiveBoar supports both Jira Cloud and Jira Server/Data Center instances.
For Jira Cloud instances (URLs ending with .atlassian.net), you need to provide your email and API token:
offensiveboar jira --jira-url https://your-domain.atlassian.net --jira-email your-email@example.com --jira-token YOUR_API_TOKENGetting a Jira Cloud API token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Copy the token and use it with your email address
For on-premise Jira instances, use a Bearer token:
offensiveboar jira --jira-url https://your-jira-instance.com --jira-token YOUR_BEARER_TOKENBoth Cloud and Server support multi-language detection:
# Cloud
offensiveboar jira --jira-url https://your-domain.atlassian.net --jira-email your-email@example.com --jira-token YOUR_API_TOKEN --custom-languages en,ru
# Server/DC
offensiveboar jira --jira-url https://your-jira-instance.com --jira-token YOUR_BEARER_TOKEN --custom-languages en,ruThe tool will:
- Automatically detect installation type (Cloud vs Server/DC) based on URL
- Use appropriate authentication method (Basic Auth for Cloud, Bearer for Server/DC)
- Fetch all projects from your Jira instance
- Retrieve all issues for each project with pagination
- Scan issue summaries, descriptions, and comments (including ADF format)
- Report any found secrets with direct links back to the Jira issues
Use the --custom-languages flag to enable detection in multiple languages:
# English and Russian
offensiveboar filesystem /path/to/scan --custom-languages en,ru
# Multiple languages
offensiveboar filesystem /path/to/scan --custom-languages en,ru,es,fr,deSupported language codes: en, ru, es, fr, de, it, pt, ja, zh, ko
-
All I see is
π·ππ· OffensiveBoar. Unearth your secrets. π·ππ·and the program exits, what gives?- That means no secrets were detected
-
Why is the scan taking a long time when I scan a GitHub org?
- Unauthenticated GitHub scans have rate limits. To improve your rate limits, include the
--tokenflag with a personal access token
- Unauthenticated GitHub scans have rate limits. To improve your rate limits, include the
-
It says a private key was verified, what does that mean?
- A verified result means OffensiveBoar confirmed the credential is valid by testing it against the service's API. For private keys, we've confirmed the key can be used live for SSH or SSL authentication.
-
Is there an easy way to ignore specific secrets?
- If the scanned source supports line numbers, then you can add a
offensiveboar:ignorecomment on the line containing the secret to ignore that secret.
- If the scanned source supports line numbers, then you can add a
-
How do I use multi-language detection?
- Use the
--custom-languagesflag with comma-separated language codes. Example:--custom-languages en,ru
- Use the
-
What Jira permissions do I need?
- Jira Cloud: Your API token needs permissions to read projects and issues. The user account associated with the email must have "Browse Projects" and "View Issues" permissions.
- Jira Server/DC: Your Bearer token must have permissions to access the REST API and read projects/issues.
-
How do I know if I'm using Cloud or Server/DC?
- Cloud URLs typically end with
.atlassian.net(e.g.,https://yourcompany.atlassian.net) - Server/DC URLs are usually custom domains (e.g.,
https://jira.yourcompany.com) - OffensiveBoar automatically detects the type, but you can explicitly specify it if needed
- Cloud URLs typically end with
This fork of TruffleHog includes several enhancements:
- Jira Integration: Scan all issues in your Jira instance for leaked credentials
- Multi-Language Support: Detect passwords and tokens in multiple languages (English, Russian, and more)
- Enhanced Token Detection: Improved detection of various token formats including Authorization headers
- All Original Features: Maintains all the powerful features from the original TruffleHog including:
- Over 700 credential detectors with active verification
- Native support for scanning GitHub, GitLab, Docker, filesystems, S3, GCS, Circle CI and Travis CI
- Private key verification using Driftwood technology
- Binary, document, and other file format scanning
- GitHub Action and pre-commit hook support
For every potential credential that is detected, we've painstakingly implemented programmatic verification against the API that we think it belongs to. Verification eliminates false positives and provides three result statuses:
- verified: Credential confirmed as valid and active by API testing
- unverified: Credential detected but not confirmed valid (may be invalid, expired, or verification disabled)
- unknown: Verification attempted but failed due to errors, such as a network or API failure
For example, the AWS credential detector performs a GetCallerIdentity API call against the AWS API to verify if an AWS credential is active.
Contributions are very welcome! Please see our contribution guidelines.
We have published some documentation and tooling to get started on adding new secret detectors. Let's improve detection together!
Currently, offensiveboar is in heavy development and no guarantees can be made on the stability of the public APIs at this time.
Since v3.0, OffensiveBoar is released under an AGPL 3 license, included in LICENSE. OffensiveBoar v3.0 uses none of the previous codebase, but care was taken to preserve backwards compatibility on the command line interface. The work previous to this release is still available licensed under GPL 2.0 in the history of this repository and the previous package releases and tags.
Note: This is a fork of TruffleHog with additional features for Jira integration and multi-language secret detection. All original TruffleHog functionality is preserved and enhanced.