Satori

Playbooks Catalog

Browse, search, and copy ready-to-run Satori playbooks for security and CI scanning.

Playbooks
273
Last synced
Jun 17, 2026, 10:36 AM
Commit
8078c7a

Showing 273 of 273 playbooks

api

OpenAPI Validator: Validate OpenAPI specifications

node:20-slim

Uses IBM's OpenAPI Validator to check OpenAPI 3.x and Swagger 2.0 specifications for correctness, best practices, and security issues. Detects missing authentication schemes, insecure endpoints, and spec violations.

SPEC_URL
satori://api/openapi-validator.yml
Example
satori run satori://api/openapi-validator.yml -d SPEC_URL="https://petstore3.swagger.io/api/v3/openapi.json" --report --output
cloud

AWS Assessment with AI multi-tool cloud audit by Gemini

python:3.12

Runs a read-only AWS security assessment using several complementary tools (ScoutSuite for posture, Prowler for compliance/CIS checks, a jq-based IAM over-privilege analysis in the spirit of Cloudsplaining, plus best-effort pulls of native AWS sources: GuardDuty, Security Hub and IAM Access Analyzer). Each source is reduced to a compact findings JSON under /data (captured by --files), merged, and handed to Google Gemini Flash (via OpenRouter) which correlates them across tools into a prioritized report. The AI step is grounded: it summarizes only the merged findings JSON and is instructed never to invent resources. Credentials are written to disk once (read-only audit user) so they are never passed on command lines.

AWS_ACCESS_KEYAWS_SECRET_KEYOPENROUTER
satori://cloud/aws-assessment-ai.yml
Example
satori run satori://cloud/aws-assessment-ai.yml -d AWS_ACCESS_KEY=$AWS_ACCESS_KEY -d AWS_SECRET_KEY=$AWS_SECRET_KEY -d OPENROUTER=$OPENROUTER --files --report --output
cloud

Prowler: AWS Security Best Practices Assessment Tool

python:3.12

Prowler is an open-source security tool to perform AWS security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains hundreds of controls covering CIS, PCI-DSS, ISO27001, GDPR, HIPAA, FFIEC, SOC2, AWS FTR, ENS and custom security frameworks.

AWS_ACCESS_KEYAWS_SECRET_KEY
satori://cloud/aws-prowler.yml
Example
satori run satori://cloud/aws-prowler.yml -d AWS_ACCESS_KEY=key -d AWS_SECRET_KEY=secret --report --output
cloud

Scoutsuite + AI: cloud audit summarized by Gemini Flash

debian

Runs ScoutSuite (read-only) against AWS, verifies the scan actually produced data, asserts on flagged danger/warning findings, and uses Google Gemini Flash (via OpenRouter) to summarize the real findings into a markdown table. The AI step is grounded: it summarizes only the extracted findings JSON and is instructed never to invent resources.

AWS_ACCESS_KEYAWS_SECRET_KEYOPENROUTER
satori://cloud/aws-scoutsuite-ai.yml
Example
satori run satori://cloud/aws-scoutsuite-ai.yml -d AWS_ACCESS_KEY=$AWS_ACCESS_KEY -d AWS_SECRET_KEY=$AWS_SECRET_KEY -d OPENROUTER=$OPENROUTER --files --report --output
cloud

AWS ScoutSuite: cloud security-auditing tool

debian

ScoutSuite is a multi-cloud security auditing tool that identifies and analyze potential misconfigurations and vulnerabilities across various cloud environments, including AWS, Azure, GCP, and more. It uses read-only credentials to collect configuration data, then generates a comprehensive report highlighting key security findings and suggesting remediation steps. Built for simplicity and scalability, ScoutSuite offers an agentless approach that allows security teams to efficiently evaluate their cloud infrastructure without the complexity of additional software or persistent agents. Its web-based interactive reports provide a clear overview of risk areas, enabling faster and more informed decision-making to strengthen overall cloud security posture.

AWS_ACCESS_KEYAWS_SECRET_KEY
satori://cloud/aws-scoutsuite.yml
Example
satori run satori://cloud/aws-scoutsuite.yml -d AWS_ACCESS_KEY=TBC -d AWS_SECRET_KEY=TBC --files --report --output
cloud

Azure compliance & posture (ScoutSuite + Prowler) with AI by Gemini

python:3.12

Read-only Azure / Entra ID compliance & posture assessment. Imports two tools - azure-scoutsuite (Azure/Entra posture: flagged misconfigurations) and azure-prowler (CIS/compliance: failed critical/high checks) - each authenticating as an Entra service principal and writing a compact findings JSON under /data. This playbook merges them and Google Gemini Flash (via OpenRouter) correlates them into a prioritized report. The AI step is grounded: it summarizes only the merged findings JSON and never invents resources.

OPENROUTER
satori://cloud/azure-compliance-ai.yml
Example
satori run satori://cloud/azure-compliance-ai.yml -d AZURE_CLIENT_ID=$AZURE_CLIENT_ID -d AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET -d AZURE_TENANT_ID=$AZURE_TENANT_ID -d OPENROUTER=$OPENROUTER --output --test correlate:summary:gemini_flash:report:stdout 2>/dev/null | glow -w 200
cloud

Azure / Entra ID exploitability (AzureHound attack paths + Maester) with AI by Gemini

mcr.microsoft.com/powershell:latest

Read-only Azure / Entra ID hackability assessment focused on real exploitability (not compliance padding). Imports two complementary tools - azurehound (BloodHound collector: maps the tenant graph, surfaces who holds Global Administrator and other high-impact roles, privileged-object owners) and m365-maester (280+ Entra ID tests: account-takeover entry points like missing MFA, legacy auth, risky app consent, weak Conditional Access). Both run in one PowerShell container (AzureHound is a self-contained linux binary), each writes a summary JSON under /data; this playbook merges them and Google Gemini Flash (via OpenRouter) correlates into a report ranked by EXPLOITABILITY. The AI step is grounded: it summarizes only the merged findings and never invents resources.

OPENROUTER
satori://cloud/azure-exploitability-ai.yml
Example
satori run satori://cloud/azure-exploitability-ai.yml -d AZURE_CLIENT_ID=$AZURE_CLIENT_ID -d AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET -d AZURE_TENANT_ID=$AZURE_TENANT_ID -d AZURE_SUBSCRIPTION_ID=$AZURE_SUBSCRIPTION_ID -d OPENROUTER=$OPENROUTER --output --test correlate:summary:gemini_flash:report:stdout 2>/dev/null | glow -w 200
cloud

Azure Prowler: CIS / compliance assessment (service principal)

python:3.12

Runs Prowler against Azure authenticating as an Entra service principal (--sp-env-auth, client secret), returning failed critical/high checks. Reduces the OCSF output to a compact findings JSON under /data/out/prowler.json (captured by --files) grouped by check, and surfaces the critical findings. Read-only. Prowler 5.x requires Python <3.13.

AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_ID
satori://cloud/azure-prowler.yml
Example
satori run satori://cloud/azure-prowler.yml -d AZURE_CLIENT_ID=$AZURE_CLIENT_ID -d AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET -d AZURE_TENANT_ID=$AZURE_TENANT_ID --files --report --output
cloud

Azure ScoutSuite: read-only Azure / Entra ID posture audit

python:3.12

Runs ScoutSuite against Azure / Entra ID authenticating as an Entra service principal (client secret), across all subscriptions. Extracts the flagged findings (service, level, description, count) to /data/out/scoutsuite.json (captured by --files) and surfaces the danger-level findings. Read-only, agentless.

AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET
satori://cloud/azure-scoutsuite.yml
Example
satori run satori://cloud/azure-scoutsuite.yml -d AZURE_CLIENT_ID=$AZURE_CLIENT_ID -d AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET -d AZURE_TENANT_ID=$AZURE_TENANT_ID --files --report --output
cloud

Azure Attack Paths with AzureHound (Entra ID / Azure BloodHound collection)

debian

Collects the Entra ID / Azure tenant graph with AzureHound (the BloodHound data collector) authenticating as an Entra service principal via client secret, and writes the full typed JSON (identities, roles, role assignments, apps, service principals, ownerships, ARM resources) to /data/azurehound.json. A jq analysis layer then summarizes the collection (object counts by kind) and surfaces attack-path-relevant signals without needing neo4j/BloodHound: principals holding privileged directory roles (Global Administrator, Privileged Role Administrator, Application Administrator, etc.), counts of apps / service principals, and owners of privileged objects. All outputs are written under /data (captured by --files).

AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_ID
satori://cloud/azurehound.yml
Example
satori run satori://cloud/azurehound.yml -d AZURE_CLIENT_ID=$AZURE_CLIENT_ID -d AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET -d AZURE_TENANT_ID=$AZURE_TENANT_ID -d AZURE_SUBSCRIPTION_ID=$AZURE_SUBSCRIPTION_ID --files --report --output
cloud

Microsoft 365 / Entra ID Security Assessment with Maester

mcr.microsoft.com/powershell:latest

Runs Maester (https://github.com/maester365/maester) — a PowerShell/Pester framework with 280+ Microsoft 365 / Entra ID security tests (EIDSCA, CISA SCuBA, CIS M365). Authenticates to Microsoft Graph as an Entra service principal (app-only, client secret), installs the Maester/Pester/Microsoft.Graph modules, runs the full Entra ID test suite and writes JSON/HTML/Markdown results under /data (captured by --files). Tests requiring Exchange Online / Teams / SharePoint / Intune permissions are skipped when those scopes are not granted to the service principal.

AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_ID
satori://cloud/m365-maester.yml
Example
satori run satori://cloud/m365-maester.yml -d AZURE_CLIENT_ID=$AZURE_CLIENT_ID -d AZURE_CLIENT_SECRET=$AZURE_CLIENT_SECRET -d AZURE_TENANT_ID=$AZURE_TENANT_ID --files --report --output
code

RedRays ABAP Code Analyzer: Open-Source Security Scanner for SAP ABAP

python

Analyze ABAP (Advanced Business Application Programming) code for potential security vulnerabilities, code quality issues, and best practice violations

satori://code/abap/abap-code-scanner.yml
Example
satori run ./ --playbook satori://code/abap/abap-code-scanner.yml --report --output
code

Bearer: static source code analysis

python

Bearer is a static application security testing (SAST) tool designed to scan your source code and analyze data flows to identify, filter, and prioritize security and privacy risks.

satori://code/bearer.yml
Example
satori run ./ --playbook=satori://code/bearer.yml --report --output
code

Brakeman: Static Application Security Testing for Ruby on Rails

ruby

Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. It scans application code for known vulnerabilities, security issues, and configuration problems.

satori://code/brakeman.yml
Example
satori run ./ --playbook satori://code/ruby/brakeman.yml --report --output
code

CLOC: Count Lines of Code

satori

CLOC counts blank lines, comment lines, and physical lines of source code in many programming languages.

satori://code/cloc.yml
Example
satori local ./ --playbook satori://code/cloc.yml --report --output
code

COBOL minimal SAST

python

Lightweight COBOL scanner can provide meaningful security coverage

satori://code/cobol.yml
Example
satori run satori://code/cobol.yml --repo meyfa/CobolCraft --report --output
code

CodeQL Javascript Python Ruby

python

CodeQL is a semantic code analysis engine that finds security vulnerabilities in JavaScript, Python, and Ruby codebases using database queries.

satori://code/codeql.yml
Example
satori run ./ --playbook satori://code/codeql.yml --report --output
code

Cppcheck: Static analysis for C and C++

debian

Cppcheck is a static analysis tool for detecting bugs, undefined behavior, and potential security vulnerabilities in C and C++ code.

satori://code/cppcheck.yml
Example
satori run ./ --playbook satori://code/cppcheck.yml --report --output
code

Stylelint: Linter for CSS and SCSS

node

Stylelint is a mighty, modern linter that helps you avoid errors and enforce conventions in your styles. It understands the latest CSS syntax including custom properties and level 4 selectors.

satori://code/css/lint/stylelint.yml
Example
satori run ./ --playbook satori://code/css/lint/stylelint.yml --report --output
code

Gato-X: GitHub Attack Toolkit

python

Gato-X is a scanning and attack tool for GitHub Actions pipelines. You can use it to identify Pwn Requests, Actions Injection, TOCTOU Vulnerabilities, and Self-Hosted Runner takeover at scale using just a single API token. Gato-X is an operator focused tool that is tuned to avoid false negatives. It will have a higher false positive rate than SAST tools like CodeQL, but Gato-X will give you everything you need to quickly determine if something is a true positive or not.

GITHUB_PATREPO
satori://code/github/gato-x.yml
Example
satori run satori://code/github/gato-x.yml -d GITHUB_PAT=TBC -d REPO=udacity/deep-reinforcement-learning --report --output
code

ghwfauditor: dynamically identify vulnerabilities in Github Workflows with enhacements over GHWF

python

ghwfauditor, based on GitHub Workflow Auditor, identifies vulnerability in GitHub Workflows. It does so by scanning the workflow files for anti-patterns such as ingesting user inputs in an unsafe manner or using malicious commits in build process. The tool supports scanning individual repositories or all accessibe repositories of a user or organization.

REPOGITHUB_PAT
satori://code/github/ghwfauditor.yml
Example
satori run satori://code/github/ghwfauditor.yml -d GITHUB_PAT=TBC --repo All-Hands-AI/OpenHands --report --output
code

Gitverify: provide insights into a Github repository's trustworthiness

python

GitVerify analyzes GitHub repositories to assess their trustworthiness by evaluating metadata, contributors, issues, pull requests, and associated domains. It gathers data from the GitHub API and can optionally perform VirusTotal checks on associated domains. The results are presented in various formats, including text, JSON, and CSV.

REPO
satori://code/github/gitverify.yml
Example
satori run satori://code/github/gitverify.yml -d REPO="https://github.com/repo" --report --output
code

Gitxray: Github repository OSSINT

python

Gitxray (short for Git X-Ray) is a multifaceted security tool designed for use on GitHub repositories. It serves various use cases, including OSINT, forensics, and security teams, as well as developers looking to secure their repositories, organizations, and related contributors. Gitxray leverages public GitHub REST APIs to gather information that would otherwise be very time-consuming to obtain manually. Additionally, it seeks out information in unconventional places.

REPO
satori://code/github/gitxray.yml
Example
satori run satori://code/github/gitxray.yml -d REPO=satorici/playbooks --report --output
code

Octoscan: scanner for GitHub action workflows

satori

Octoscan is a reconnaissance tool that automates the process of scanning GitHub organizations and repositories for potential security issues in Github Workflows.

satori://code/github/octoscan.yml
Example
satori run ./ --playbook satori://code/github/octoscan.yml --report --output
code

Semgrep: Analyze Github Workflows

python

Semgrep is a static code analysis tool with stable support for C#, Go, Java, JavaScript, JSON, Python, PHP, Ruby, and Scala. It has experimental support for nineteen other languages, as well as a language agnostic mode. The following playbook focuses on Github Workflows

satori://code/github/semgrep.yml
Example
satori run ./ --playbook satori://code/github/semgrep.yml --report --output
code

sisakulint: SAST for Github Actions

debian

CI-Friendly static linter with autofix, SAST, semantic analysis for GitHub Actions

satori://code/github/sisakulint.yml
Example
satori run --playbook satori://code/github/sisakulint.yml --repo satorici/satori-cli --report --output
code

Gosec: Go security checker

debian

Gosec inspects Go source code for security problems by scanning the Go AST. It detects hardcoded credentials, SQL injection, command injection, path traversal, weak cryptography, and other common security issues in Go code.

satori://code/go/gosec.yml
Example
satori run satori://code/go/gosec.yml --repo securego/gosec --report --output
code

Horusec: multi-language SAST

ubuntu:22.04

Horusec is an open-source static application security testing tool that identifies vulnerabilities in source code across 18+ languages including Python, JavaScript, Java, Go, C#, Ruby, PHP, Kotlin, and Dart. It integrates 20+ security analysis engines.

satori://code/horusec.yml
Example
satori run ./ --playbook satori://code/horusec.yml --report --output
code

Hounddog: detect and prevent exposure of sensitive data

debian

HoundDog.ai's Privacy by Design Code Scanner helps organizations proactively detect and prevent the overexposure of sensitive data in high risk mediums, which could lead to privacy violations. The scanner embeds privacy into every stage of development, from IDE to CI. It discovers third party and AI integrations, including shadow AI, detects exposures of Personally Identifiable Information (PII), Protected Health Information (PHI), and authentication tokens in LLM prompts and other often overlooked surfaces such as logs, files, and third party SDKs, blocks unapproved data types before any code reaches production, and generates audit ready Privacy Impact Assessments prefilled with detected data flows and privacy risks.

satori://code/hounddog.yml
Example
satori run ./ --playbook satori://code/hounddog.yml --report --output
code

SpotBugs: Find bugs in Java code

maven:3.9-eclipse-temurin-21

SpotBugs is a static analysis tool that looks for bugs in Java code. It uses the Find Security Bugs plugin to detect security vulnerabilities including SQL injection, XSS, cryptographic weaknesses, and other OWASP Top 10 issues.

satori://code/java/spotbugs.yml
Example
satori run satori://code/java/spotbugs.yml --repo OWASP-Benchmark/BenchmarkJava --report --output
code

OWASP DependencyCheck: verifies publicly disclosed vulnerabilities in project's dependencies

satori

OWASP DependencyCheck is a multi-language Software Composition Analysis (SCA) tool. While it is commonly used in Java projects, it also supports scanning dependencies for other ecosystems, including .NET, Node.js, Python, Ruby, PHP, and more.

NVD_API_KEY
satori://code/javascript/dependencycheck.yml
Example
satori run ./ --playbook satori://code/javascript/dependencycheck.yml --report --output
code

Biome: Formatter and linter for JS, TS, JSX, and JSON

node

Biome is a fast formatter and linter for JavaScript, TypeScript, JSX, and JSON that scores 97% compatibility with Prettier. It features fast, native performance and requires zero configuration to get started.

satori://code/javascript/lint/biome.yml
Example
satori run ./ --playbook satori://code/javascript/lint/biome.yml --report --output
code

ESLint: JavaScript and TypeScript code analysis

node

ESLint statically analyzes your code to quickly find problems. It finds and fixes problems in your JavaScript code, from style issues to bugs and potential errors.

satori://code/javascript/lint/eslint.yml
Example
satori run ./ --playbook satori://code/javascript/lint/eslint.yml --report --output
code

JSCPD: Copy/paste detector

node

JSCPD is a copy/paste detector for programming source code, supporting many languages including JavaScript, TypeScript, and more. It helps identify duplicated code that should be refactored.

satori://code/javascript/lint/jscpd.yml
Example
satori run ./ --playbook satori://code/javascript/lint/jscpd.yml --report --output
code

JSDoc: API documentation generator for JavaScript

node

JSDoc is a markup language used to annotate JavaScript source code files and an API documentation generator for JavaScript. It allows developers to document their code using comments formatted in a particular way.

satori://code/javascript/lint/jsdoc.yml
Example
satori run ./ --playbook satori://code/javascript/lint/jsdoc.yml --report --output
code

JSHint: A Static Code Analysis Tool for JavaScript

node

JSHint is a community-driven tool that detects errors and potential problems in JavaScript code. It is more flexible than JSLint and allows developers to configure many options to fit their coding style and needs.

satori://code/javascript/lint/jshint.yml
Example
satori run ./ --playbook satori://code/javascript/lint/jshint.yml --report --output
code

Prettier: Opinionated Code Formatter

node

Prettier is an opinionated code formatter that supports many languages and integrates with most editors. It removes all original styling and ensures that all outputted code conforms to a consistent style.

satori://code/javascript/lint/prettier.yml
Example
satori run ./ --playbook satori://code/javascript/lint/prettier.yml --report --output
code

StandardJS: JavaScript style guide, linter, and formatter

node

StandardJS is a JavaScript style guide, linter, and formatter. It enforces a consistent style with no configuration required, helping teams avoid bikeshedding over code style and focus on what matters.

satori://code/javascript/lint/standard.yml
Example
satori run ./ --playbook satori://code/javascript/lint/standard.yml --report --output
code

NPM audit: check for vulnerabilities in dependencies

satori

The audit command submits a description of the dependencies configured in your project to your default registry and asks for a report of known vulnerabilities. If any vulnerabilities are found, then the impact and appropriate remediation will be calculated. It may be useful in CI environments to include the --audit-level parameter to specify the minimum vulnerability level that will cause the command to fail. This option does not filter the report output, it simply changes the command's failure threshold.

satori://code/javascript/npmaudit.yml
Example
satori run ./ --playbook satori://code/javascript/npmaudit.yml --report --output
code

Retire.js: detect JS libraries with known vulnerabilities

node

Scan a web app or node app for use of known vulnerable JavaScript libraries and/or Node.JS modules

satori://code/javascript/retirejs.yml
Example
satori run ./ --playbook satori://code/javascript/retirejs.yml --report --output
code

Semgrep: Analyze Javascript code

python

Semgrep is a static code analysis tool with stable support for C#, Go, Java, JavaScript, JSON, Python, PHP, Ruby, and Scala. It has experimental support for nineteen other languages, as well as a language agnostic mode. The following playbook focuses on JavaScript files.

satori://code/javascript/semgrep.yml
Example
satori run satori://code/javascript/semgrep.yml --report --output
code

Joern

satori

Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs.

satori://code/joern.yml
Example
satori run satori://code/joern.yml --repo satorici/satori-cli --report --output
code

APKLeaks: Scanning APK files for URIs, endpoints, and secrets

satori

APKLeaks scans Android APK files to find sensitive information like URLs, API keys, secrets, endpoints, and other potentially sensitive strings that could expose security issues.

satori://code/mobile/apkleaks.yml
Example
satori run ./ --playbook satori://code/mobile/apkleaks.yml --report --output
code

MobSFScan - SAST for mobile code

python

MobSFScan can find insecure code patterns in Android and iOS source code. Supports Java, Kotlin, Swift, and Objective C Code. It uses MobSF static analysis rules and is powered by semgrep and libsast pattern matcher. ## Example: ```satori run ./ --playbook="satori://code/mobsfscan.yml" --report --output```

satori://code/mobile/mobsfscan.yml
Example
satori run ./ --playbook satori://code/mobile/mobsfscan.yml --report --output
code

OSV-Scanner: Vulnerability scanner for project dependencies

golang

OSV-Scanner by Google scans project dependencies for known vulnerabilities using the OSV.dev database. It supports 11+ language ecosystems including Go, Python, JavaScript, Java, Rust, Ruby, and more.

satori://code/osv-scanner.yml
Example
satori run ./ --playbook satori://code/osv-scanner.yml --report --output
code

Pip Audit: Check for known vulnerabilities in Python dependencies

python

pip-audit scans Python dependencies for security vulnerabilities using the Python Packaging Advisory Database (PyPI). It helps ensure secure package management by identifying and reporting issues in installed dependencies.

satori://code/python/audit.yml
Example
satori run ./ --playbook satori://code/python/pip-audit.yml --report --output
code

Bandit: Find common security issues in Python

python

Bandit processes each file, builds an AST from it, and runs appropriate plugins against the AST nodes. Once Bandit has finished scanning all the files it generates a report about the security issues found.

satori://code/python/bandit.yml
Example
satori run ./ --playbook satori://code/python/bandit.yml --report --output
code

bloky

python

Bloky detects blocking operations in Python async code that could cause performance issues.

satori://code/python/bloky.yml
Example
satori run satori://code/python/bloky.yml --repo satorici/satori-cli --report --output
code

Autopep8: Automatic PEP 8 Formatter

python

Autopep8 automatically formats Python code to conform to the PEP 8 style guide.

satori://code/python/lint/autopep8.yml
Example
satori run ./ --playbook satori://code/python/lint/autopep8.yml --report --output
code

BasedMypy: Enhanced Python Static Type Checker

python

BasedMypy is an enhanced Python static type checker built on mypy with improved type system features including intersection types, better type inference, and gradual adoption through baseline functionality. Note: Project deprecated July 2025, consider BasedPyright as alternative.

satori://code/python/lint/basedmypy.yml
Example
satori run ./ --playbook satori://code/python/lint/basedmypy.yml --report --output
code

BasedPyright: Enhanced Python Type Checker

python

BasedPyright is a fork of Microsoft's Pyright with enhanced type checking improvements, integrated Pylance features, and better VSCode support. Provides advanced Python type analysis with additional features beyond the original pyright implementation.

satori://code/python/lint/basedpyright.yml
Example
satori run ./ --playbook satori://code/python/lint/basedpyright.yml --report --output
code

Black: Opinionated Code Formatter

python

Black is an uncompromising Python code formatter that enforces a consistent style. It reformats code automatically and minimizes diff noise by using strict formatting rules.

satori://code/python/lint/black.yml
Example
satori run ./ --playbook satori://code/python/lint/black.yml --report --output
code

Flake8: check the style and quality of Python code.

python

Flake8 is a wrapper around PyFlakes, pycodestyle, and Ned Batchelder's McCabe script. Flake8 runs all the tools by launching the single flake8 command. It displays the warnings in a per-file, merged output.

satori://code/python/lint/flake8.yml
Example
satori local ./ --playbook satori://code/python/lint/flake8.yml --report --output
code

Isort: Import Sorting for Python

python

Isort is a Python utility for sorting imports. It automatically sorts and organizes imports in your Python files, making them easier to read and maintain.

satori://code/python/lint/isort.yml
Example
satori run ./ --playbook satori://code/python/lint/isort.yml --report --output
code

Mypy: Type Checking for Python

python

Mypy is a static type checker for Python that helps enforce type annotations. It can detect type errors and inconsistencies before runtime, improving code safety and maintainability.

satori://code/python/lint/mypy.yml
Example
satori run ./ --playbook satori://code/python/lint/mypy.yml --report --output
code

Prospector: Meta-Linter for Python

python

Prospector runs a collection of Python analysis tools like pylint, mypy, and pep8. It offers an aggregated view of code quality issues in a unified report.

satori://code/python/lint/prospector.yml
Example
satori run ./ --playbook satori://code/python/lint/prospector.yml --report --output
code

Pycodestyle: PEP 8 Style Checker

python

Pycodestyle checks Python code against the PEP 8 style guide. It's useful for maintaining consistent formatting and identifying common stylistic issues.

satori://code/python/lint/pycodestyle.yml
Example
satori run ./ --playbook satori://code/python/lint/pycodestyle.yml --report --output
code

Pydocstyle: Docstring Convention Checker

python

Pydocstyle checks compliance with Python docstring conventions as specified in PEP 257.

satori://code/python/lint/pydocstyle.yml
Example
satori run ./ --playbook satori://code/python/lint/pydocstyle.yml --report --output
code

Pyflakes: Fast Code Linter

python

Pyflakes analyzes Python source files to detect errors such as unused imports and undefined variables. It focuses on correctness rather than style.

satori://code/python/lint/pyflakes.yml
Example
satori run ./ --playbook satori://code/python/lint/pyflakes.yml --report --output
code

Pylama: Code Audit Wrapper

python

Pylama is a code audit tool that aggregates results from multiple linters and static analyzers. It's ideal for batch linting and unified output during CI/CD workflows.

satori://code/python/lint/pylama.yml
Example
satori run ./ --playbook satori://code/python/lint/pylama.yml --report --output
code

Pylint: linter for Python

python

It analyses your code without actually running it. It checks for errors, enforces a coding standard, looks for code smells, and can make suggestions about how the code could be refactored.

satori://code/python/lint/pylint.yml
Example
satori run ./ --playbook satori://code/python/pylint.yml --report --output
code

Pyrefly: Python static analyzer

python

Pyrefly is a static analysis tool for Python that helps identify potential issues in code made by Facebook.

satori://code/python/lint/pyrefly.yml
Example
satori run --playbook satori://code/python/lint/pyrefly.yml --repo satorici/satori-cli --output --report
code

Pyright: Fast Static Type Checker

python

Pyright is a full-featured, standards-based static type checker for Python. It is designed for high performance and can be used with large Python source bases.

satori://code/python/lint/pyright.yml
Example
satori run ./ --playbook satori://code/python/lint/pyright.yml --report --output
code

Pytype: Static Type Checker

python

Pytype is a static type checker for Python that can catch type errors in your code before you run it.

satori://code/python/lint/pytype.yml
Example
satori run ./ --playbook satori://code/python/lint/pytype.yml --report --output
code

Radon: Code Metrics for Python

python

Radon provides various code metrics for Python, including cyclomatic complexity, raw metrics, and maintainability index.

satori://code/python/lint/radon.yml
Example
satori run ./ --playbook satori://code/python/lint/radon.yml --report --output
code

Ruff: Python linter

python

Ruff is a fast Python linter and formatter that enforces code quality by detecting style violations, unused imports, and potential errors. It provides an alternative to traditional Python linters with a focus on speed and efficiency.

satori://code/python/lint/ruff.yml
Example
satori run --playbook satori://code/python/ruff.yml --repo satorici/satori-cli --output --test ruff.run --report
code

Ty: Python type checker

python

An extremely fast Python type checker and language server, written in Rust.

satori://code/python/lint/ty.yml
Example
satori run ./ --playbook satori://code/python/lint/ty.yml --report --output
code

Vulture: Dead Code Detection

python

Vulture scans Python code to find unused variables, functions, and classes. It helps identify dead code that can be removed to improve code quality and maintainability.

satori://code/python/lint/vulture.yml
Example
satori run ./ --playbook satori://code/python/lint/vulture.yml --report --output
code

pysource-codegen: Generate random Python code

python

Generate random python code to test linter/formatter/and other tools. pysource-codegen is able to generate random python code which can be compiled

satori://code/python/pysource-codegen.yml
Example
satori run satori://code/python/pysource-codegen.yml --report --output
code

PySpector

satori

PySpector is a static analysis security testing (SAST) Framework engineered for modern Python development workflows. It leverages a powerful Rust core to deliver high-speed, accurate vulnerability scanning, wrapped in a developer-friendly Python CLI.

satori://code/python/pyspector.yml
Example
satori run satori://code/python/pyspector.yml --repo satorici/satori-cli --report --output
code

Safety: check Python dependencies for known security vulnerabilities in their requirements.txt

python

Safety detects known vulnerabilities in Python dependencies by scanning installed packages against a vulnerability database. It helps identify insecure libraries and provides insights into potential security risks in software projects.

satori://code/python/safety.yml
Example
satori run ./ --playbook satori://code/python/safety.yml --report --output
code

pytest - enhanced unit test for Python

python

Runs pytest to discover and execute unit tests in Python projects with automatic dependency installation.

satori://code/python/test/pytest.yml
Example
satori run ./ --playbook satori://code/python/test/pytest.yml --report --output
code

unittest

python

Runs Python's built-in unittest framework to discover and execute unit tests.

satori://code/python/test/unittest.yml
Example
satori run ./ --playbook satori://code/python/test/unittest.yml --report --output
code

RuboCop: Ruby static code analyzer and formatter

ruby

RuboCop is a Ruby static code analyzer (a.k.a. linter) and code formatter. It enforces many of the guidelines outlined in the community Ruby Style Guide, finds code smells, and can auto-fix many issues.

satori://code/rubocop.yml
Example
satori run ./ --playbook satori://code/ruby/rubocop.yml --report --output
code

ERB to EPP

satori

Embedded Ruby (.erb) into Embedded Puppet (.epp)

satori://code/ruby/erb-to-epp.yml
Example
satori run ./ --playbook satori://code/ruby/erb-to-epp.yml --report --output
code

Rust_Audit: audit check performs an audit for crates with security vulnerabilities

rust

Checks Rust projects for security vulnerabilities and unsafe code. Uses cargo-audit to detect known security issues in dependencies. Ensures no advisories are present.

satori://code/rust/audit.yml
Example
satori run ./ --playbook satori://code/rust/audit.yml --report --output
code

Rust_Geiger: check crates with security vulnerabilities

rust

Checks Rust projects for unsafe code

satori://code/rust/geiger.yml
Example
satori run ./ --playbook satori://code/rust/geiger.yml --report --output
code

Semgrep: static source code analysis

python:3.10-slim

Semgrep is a code analysis tool that searches for patterns in source code to detect vulnerabilities, enforce best practices, and identify code structure issues. It supports multiple programming languages and allows users to define custom rules for static analysis.

satori://code/semgrep.yml
Example
satori run ./ --playbook satori://code/semgrep.yml --report --output
code

4naly3er: Solidity audit issue detector

node:20-slim

4naly3er is a Solidity static analyzer built for competitive audits and bug bounties. It scans for gas optimizations, quality assurance issues, and low-severity findings commonly reported in Code4rena, Sherlock, and other audit contest platforms. Ideal for pre-audit preparation of DeFi protocols.

satori://code/solidity/4naly3er.yml
Example
satori run satori://code/solidity/4naly3er.yml --repo smartbugs/smartbugs-curated --report --output
code

Aderyn: Rust-based Solidity static analyzer

debian

Aderyn is a Rust-based Solidity AST analyzer built by Cyfrin. It walks the Abstract Syntax Tree to detect vulnerability patterns with high speed and accuracy. It supports Foundry and Hardhat projects and detects reentrancy, centralization risks, unchecked returns, and other smart contract issues.

satori://code/solidity/aderyn.yml
Example
satori run satori://code/solidity/aderyn.yml --repo crytic/not-so-smart-contracts --report --output
code

DeFi SAST: Comprehensive smart contract security suite

python:3.10-slim

Full DeFi static analysis security testing suite combining Slither, Semgrep with Solidity rules, and Solhint. Covers vulnerability detection, code quality, and DeFi-specific security patterns including reentrancy, flash loan attacks, oracle manipulation, access control, and token standard compliance.

satori://code/solidity/defi-sast.yml
Example
satori run satori://code/solidity/defi-sast.yml --repo SunWeb3Sec/DeFiVulnLabs --report --output
code

Mythril: EVM bytecode security analysis

python:3.10

Mythril is a security analysis tool for EVM bytecode. It detects security vulnerabilities in smart contracts built for Ethereum, Hedera, Quorum, Vechain, Rootstock, Tron, and other EVM-compatible blockchains using symbolic execution, SMT solving, and taint analysis.

satori://code/solidity/mythril.yml
Example
satori run satori://code/solidity/mythril.yml --repo crytic/not-so-smart-contracts --report --output
code

Semgrep: Solidity security rules

python:3.10-slim

Semgrep with Solidity-specific security rulesets for detecting common smart contract vulnerabilities including reentrancy, unchecked calls, price oracle manipulation, flash loan attacks, access control issues, and DeFi-specific anti-patterns.

satori://code/solidity/semgrep-solidity.yml
Example
satori run satori://code/solidity/semgrep-solidity.yml --repo crytic/not-so-smart-contracts --report --output
code

Slither: Solidity & DeFi static analysis

python:3.10-slim

Slither is a Solidity & Vyper static analysis framework that runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. It is the industry standard for smart contract SAST, detecting reentrancy, unprotected upgrades, unchecked low-level calls, and 90+ other vulnerability patterns.

satori://code/solidity/slither.yml
Example
satori run satori://code/solidity/slither.yml --repo crytic/not-so-smart-contracts --report --output
code

Solhint: Solidity linter and security rules

node:20-slim

Solhint is an open-source Solidity linter providing both security and style guide validations. It checks for security vulnerabilities such as use of tx.origin, low-level calls, and missing visibility modifiers, as well as code quality and naming conventions.

satori://code/solidity/solhint.yml
Example
satori run satori://code/solidity/solhint.yml --repo SunWeb3Sec/DeFiVulnLabs --report --output
code

Wake: Solidity development & vulnerability detection

python:3.10-slim

Wake is a Python-based Solidity development and testing framework with built-in vulnerability detectors and printers. It performs cross-contract analysis detecting reentrancy, unsafe delegatecall, selfdestruct, tx.origin usage, and other vulnerability classes across the entire project dependency graph.

satori://code/solidity/wake.yml
Example
satori run satori://code/solidity/wake.yml --repo crytic/not-so-smart-contracts --report --output
code

SwiftAstGen

satori

Creates Abstract Syntax Tree (AST) of all .swift files in JSON format. The AST is created by using SwiftSyntax.

satori://code/swift/swiftasgen.yml
Example
satori run ./ --playbook satori://code/swift/swiftasgen.yml --report --output
code

SwiftLint: enforce Swift style and conventions

norionomura/swiftlint

Enforces Swift style and conventions by analyzing code and flagging violations based on predefined or custom rules, helping maintain consistency and best practices in Swift projects.

satori://code/swift/swiftlint.yml
Example
satori run ./ --playbook satori://code/swiftlint.yml --report --output
code

Syft: Software Bill of Materials (SBOM) generator

debian

Syft by Anchore generates Software Bills of Materials (SBOMs) from container images and filesystems. It identifies packages and dependencies across dozens of ecosystems and outputs in standard formats like CycloneDX and SPDX.

satori://code/syft.yml
Example
satori run ./ --playbook satori://code/syft.yml --report --output --files
code

Trivy

debian

Trivy has scanners that look for security issues, and targets where it can find those issues. Targets (what Trivy can scan): - Container Image - Filesystem - Git Repository (remote) - Virtual Machine Image - Kubernetes Scanners (what Trivy can find there): - OS packages and software dependencies in use (SBOM) - Known vulnerabilities (CVEs) - IaC issues and misconfigurations - Sensitive information and secrets - Software licenses

satori://code/trivy.yml
Example
satori run ./ --playbook satori://code/trivy.yml --report --output
code

TypeScript Compiler: Type checking for JavaScript

node

The TypeScript compiler (tsc) performs static type checking on TypeScript and JavaScript files. It can catch type errors at build time and provides excellent IDE support for large codebases.

satori://code/typescript/lint/tsc.yml
Example
satori run ./ --playbook satori://code/typescript/lint/tsc.yml --report --output
code

YAML Lint

python

yamllint checks YAML files for syntax errors, formatting issues, and best practices by enforcing indentation, key ordering, and structure consistency. It helps prevent misconfigurations and ensures YAML files remain readable and valid.

satori://code/yamllint.yml
Example
satori run ./ --playbook satori://code/yamllint.yml --report --output
compliance

Companies House: UK corporate structure mapping

debian

Queries the UK Companies House API to map corporate structure, directors, filing history, subsidiaries, charges, and insolvency. Requires COMPANIES_HOUSE_API_KEY (free registration at developer.company-information.service.gov.uk). Only acts on a confident name match — fuzzy/unrelated search hits are rejected (NO_MATCH) so downstream consumers never see the wrong company.

COMPANYCOMPANIES_HOUSE_API_KEY
satori://compliance/companies-house.yml
Example
satori run satori://compliance/companies-house.yml -d COMPANY="Example Ltd" -d COMPANIES_HOUSE_API_KEY="your_key" --report --output
compliance

CREST: Membership verification

debian

Checks if a company is a CREST-accredited member by querying the CREST Marketplace supplier directory (marketplace.crest.org). Returns membership details including accreditation types, specialisms, and years of membership.

COMPANY
satori://compliance/crest-membership.yml
Example
satori run satori://compliance/crest-membership.yml -d COMPANY="Quorum Cyber" --report --output
compliance

Cyber Essentials: UK certification check

python

Checks if a company holds UK Cyber Essentials or Cyber Essentials Plus certification by searching the IASME certificate database.

COMPANYCAPTCHA_KEY
satori://compliance/cyber-essentials.yml
Example
satori run satori://compliance/cyber-essentials.yml -d COMPANY="Quorum Cyber" -d CAPTCHA_KEY="your_2captcha_key" --report --output
compliance

GDPR Fines: Enforcement action check

debian

Checks for past GDPR enforcement actions against a company using the GDPR Enforcement Tracker dataset.

COMPANY
satori://compliance/gdpr-fines.yml
Example
satori run satori://compliance/gdpr-fines.yml -d COMPANY="Meta Platforms" --report --output
compliance

ICO Registration: UK data controller check

debian

Checks UK Information Commissioner's Office (ICO) data controller registration status by searching the ICO register.

COMPANY
satori://compliance/ico-registration.yml
Example
satori run satori://compliance/ico-registration.yml -d COMPANY="Quorum Cyber" --report --output
compliance

OWASP Top 10: Web application security assessment

debian

Runs a vulnerability scan using Nuclei with OWASP Top 10 templates to detect common web application security issues including injection, broken authentication, sensitive data exposure, XXE, broken access control, security misconfiguration, XSS, insecure deserialization, vulnerable components, and insufficient logging.

URL
satori://compliance/owasp-top10.yml
Example
satori run satori://compliance/owasp-top10.yml -d URL="http://testphp.vulnweb.com/" --report --output
compliance

PCI-DSS: Payment Card Industry compliance check

debian

Runs a PCI-DSS compliance assessment against a web endpoint checking for TLS configuration, security headers, and common vulnerabilities required by PCI-DSS. Combines TLS checks with Nuclei compliance templates.

HOST
satori://compliance/pci-dss.yml
Example
satori run satori://compliance/pci-dss.yml -d HOST="satori.ci" --report --output
compliance

SEC Filings: Cyber incident and risk disclosures

debian

Searches SEC EDGAR for cybersecurity incident disclosures (8-K Item 1.05) and risk management descriptions (10-K Item 1C) for US public companies.

COMPANY
satori://compliance/sec-filings.yml
Example
satori run satori://compliance/sec-filings.yml -d COMPANY="SolarWinds" --report --output
compliance

SOC2: Basic security controls assessment

debian

Performs basic SOC2-relevant security checks on a web endpoint including TLS configuration, security headers, open ports, and DNS configuration. Covers Trust Services Criteria for security availability and confidentiality.

HOST
satori://compliance/soc2.yml
Example
satori run satori://compliance/soc2.yml -d HOST="satori.ci" --report --output
compliance

Stock Market: Public listing and trading status check

debian

Checks if a company is publicly traded by searching Yahoo Finance. Returns exchange, ticker symbol, sector, and trading status. A delisted or absent stock is a signal of company distress, acquisition, or private status.

COMPANY
satori://compliance/stock-check.yml
Example
satori run satori://compliance/stock-check.yml -d COMPANY="Cloudflare" --report --output
container

Dockle: Container image security linter

debian

Dockle audits Docker container images against CIS Benchmarks and best practices. Unlike Hadolint which checks Dockerfiles, Dockle analyzes the built image to find security issues like running as root, missing HEALTHCHECK, and exposed credentials.

IMAGE
satori://container/dockle.yml
Example
satori run satori://container/dockle.yml -d IMAGE="python:3.4-alpine" --report --output
container

Grype: vulnerability scanner for container images and filesystems

debian

Grype is a vulnerability scanner for container images and filesystems. Easily install the scanner, integrate it into your project, and quickly identify known vulnerabilities in your packages and dependencies.

IMAGE
satori://container/grype.yml
Example
satori run satori://container/grype.yml -d IMAGE="python:3.4-alpine" --report --output
container

Hadolint: Dockerfile linter and best practices checker

debian

Hadolint is a smarter Dockerfile linter that helps you build best practice Docker images. It checks for syntax errors, validates inline bash code, identifies common mistakes in Dockerfile instructions, and verifies that your Dockerfile follows best practices.

satori://container/hadolint.yml
Example
satori run ./ --playbook satori://container/hadolint.yml --report --output
container

Checkov: static code analysis tool for IaC

satori

Checkov scans cloud infrastructure configurations (Terraform, CloudFormation, Kubernetes, Helm, Azure Resource Manager, Google Deployment Manager) to find misconfigurations and ensure cloud security best practices.

satori://container/iac/checkov.yml
Example
satori run ./ --playbook satori://iac/checkov.yml --report --output
container

KICS: Keeping Infrastructure as Code Secure

checkmarx/kics:latest

Find security vulnerabilities, compliance issues, and infrastructure misconfigurations in Infrastructure as Code. Supports Terraform, Dockerfile, CloudFormation, Kubernetes, Helm, and more.

satori://container/iac/kics.yml
Example
satori run ./ --playbook satori://iac/kics.yml --report --output
container

Kubescape: Kubernetes security platform

golang

Static analysis of Kubernetes YAML files for security issues and misconfigurations.

satori://container/iac/kubescape.yml
Example
satori run ./ --playbook satori://iac/kubescape.yml --report --output
container

Terrascan: detect compliance and security violations

golang

Terrascan is a static code analyzer for Infrastructure as Code. It detects security vulnerabilities and compliance violations across Infrastructure as Code. Supports multiple cloud providers including AWS, Azure, GCP, and Kubernetes.

satori://container/iac/terrascan.yml
Example
satori run ./ --playbook satori://iac/terrascan.yml --report --output
container

tfsec: Security scanner for Terraform code

debian

tfsec uses static analysis of your terraform code to spot potential security issues. Along with basic rule checking, tfsec also checks for sensitive information in terraform state files. Scans HCL2 and json formatted terraform configuration files.

satori://container/iac/tfsec.yml
Example
satori run ./ --playbook satori://iac/tfsec.yml --report --output
container

Trivy: Vulnerability Scanner

golang

Scans filesystems and container images for vulnerabilities

IMAGE
satori://container/trivy.yml
Example
satori run satori://container/trivy.yml -d IMAGE=python:3.4-alpine --report --output
crack

John the Ripper: Crack passwords

debian

John the Ripper is a password cracking tool that tests password strength and recovers lost credentials by performing dictionary attacks, brute-force attacks, and cryptanalysis on various password hash types.

PASS
satori://crack/john.yml
Example
satori run satori://crack/john.yml -d PASS='$2b$10$heqvAkYMez.Va6Et2uXInOnkCT6/uQj1brkrbyG3LpopDklcq7ZOS' --cpu 16384 --memory 32768 --report --output
cve

CVE-2025-10035 - GoAnywhere MFT RCE

debian

Detects vulnerable GoAnywhere MFT instances by extracting version numbers from the login page and matching against affected version ranges.

HOST
satori://cve/CVE-2025-10035.yml
Example
satori run satori://cve/CVE-2025-10035.yml -d HOST=127.0.0.1 --report --output
cve

CVE-2025-20352 (CVSS 7.7): SNMP vulnerability in Cisco

python

A vulnerability in the Simple Network Management Protocol (SNMP) subsystem of Cisco IOS Software and Cisco IOS XE Software could allow the following: An authenticated, remote attacker with low privileges could cause a denial of service (DoS) condition on an affected device that is running Cisco IOS Software or Cisco IOS XE Software. To cause the DoS, the attacker must have the SNMPv2c or earlier read-only community string or valid SNMPv3 user credentials. An authenticated, remote attacker with high privileges could execute code as the root user on an affected device that is running Cisco IOS XE Software. To execute code as the root user, the attacker must have the SNMPv1 or v2c read-only community string or valid SNMPv3 user credentials and administrative or privilege 15 credentials on the affected device. An attacker could exploit this vulnerability by sending a crafted SNMP packet to an affected device over IPv4 or IPv6 networks. This vulnerability is due to a stack overflow condition in the SNMP subsystem of the affected software. A successful exploit could allow a low-privileged attacker to cause the affected system to reload, resulting in a DoS condition, or allow a high-privileged attacker to execute arbitrary code as the root user and obtain full control of the affected system. Note: This vulnerability affects all versions of SNMP.

HOST
satori://cve/CVE-2025-20352.yml
Example
satori run satori://cve/CVE-2025-20352.yml -d HOST=127.0.0.1 --report --output
cve

CVE-2025-26339 - SolarWinds Web Help RCE

debian

SolarWinds Web Help Desk was found to be susceptible to an unauthenticated AjaxProxy deserialization remote code execution vulnerability that, if exploited, would allow an attacker to run commands on the host machine. This vulnerability is a patch bypass of CVE-2024-28988, which in turn is a patch bypass of CVE-2024-28986.

HOST
satori://cve/CVE-2025-26339.yml
Example
satori run satori://cve/CVE-2025-26339.yml -d HOST=127.0.0.1 --report --output
cve

CVE-2025-61882 (CVSS 9.8) - Oracle E-Business Suite RCE

debian

Oracle E-Business Suite remote code execution vulnerability without authentication. Detects vulnerable instances by checking for E-Business Suite Home Page text and comparing Last-Modified header timestamp against October 4, 2025 to identify unpatched systems.

HOST
satori://cve/CVE-2025-61882.yml
Example
satori run satori://cve/CVE-2025-61882.yml -d HOST=127.0.0.1 --report --output
cve

CVE-2025-61884 (CVSS 7.5) - Oracle E-Business Suite Configurator Data Exposure

debian

Oracle E-Business Suite Configurator Runtime UI vulnerability that allows unauthenticated attackers with network access via HTTP to access critical data. Affects Oracle Configurator in versions 12.2.3-12.2.14. Detects vulnerable instances by checking for E-Business Suite Home Page text and comparing Last-Modified header timestamp against October 11, 2025 to identify unpatched systems.

HOST
satori://cve/CVE-2025-61884.yml
Example
satori run satori://cve/CVE-2025-61884.yml -d HOST=127.0.0.1 --report --output
cve

CVE-2025-7775 (CVSS 9.8): Citrix NetScaler ADC/Gateway RCE (Educational PoC)

python

Educational proof-of-concept for hypothetical unauthenticated Remote Code Execution vulnerability in Citrix NetScaler ADC/Gateway API endpoint. Tests for command injection patterns in /api/v1/configuration endpoint. This is a simulated vulnerability for training and detection validation purposes only.

HOST
satori://cve/CVE-2025-7775.yml
Example
satori run satori://cve/CVE-2025-7775.yml -d HOST=127.0.0.1 --output --test CVE-2025-7775.run --report
cve

CISA KEV: Check CVEs against actively exploited list

debian

Cross-references CVE IDs against the CISA Known Exploited Vulnerabilities (KEV) catalog to identify critical-priority vulnerabilities that are actively exploited in the wild.

CVES
satori://cve/cisa-kev.yml
Example
satori run satori://cve/cisa-kev.yml -d CVES="CVE-2021-44228,CVE-2023-0669,CVE-2024-3400" --report --output
cve

ThreatTracer: identify CVE by name & version

python

ThreatTracer identifies CVE details by querying vulnerability databases with CVE identifiers.

CVE
satori://cve/search.yml
Example
satori run satori://cve/search.yml -df CVE=cves.txt --report --output
dns

AssetFinder: find domains and subdomains potentially related to a domain

debian

assetfinder discovers subdomains and related assets by querying public sources, certificate transparency logs, and APIs. It helps in reconnaissance and security assessments by identifying domain associations efficiently.

DOMAIN
satori://dns/assetfinder.yml
Example
satori run satori://dns/assetfinder.yml -d DOMAIN="satori.ci" --report --output
dns

DNS CAA: Certificate Authority Authorization check

debian

Checks if a domain has DNS CAA records configured. CAA records restrict which Certificate Authorities can issue certificates for the domain, preventing unauthorized certificate issuance and reducing the risk of man-in-the-middle attacks.

DOMAIN
satori://dns/caa.yml
Example
satori run satori://dns/caa.yml -d DOMAIN="satori.ci" --report --output
dns

cdncheck: Identify the technology associated with a host (CDN, CLOUD or WAF)

debian

cdncheck identifies whether IP addresses belong to known Content Delivery Networks (CDNs) or cloud providers. It helps distinguish between origin servers and CDN-protected assets during reconnaissance and security assessments.

HOST
satori://dns/cdncheck.yml
Example
satori run satori://dns/cdncheck.yml -d HOST="satori.ci" --report --output
dns

DNS Enum: Full DNS footprint mapping

debian

Maps the target's full DNS footprint using dig for record resolution and crt.sh certificate transparency logs for subdomain discovery. Passive reconnaissance only.

DOMAIN
satori://dns/dns-enum.yml
Example
satori run satori://dns/dns-enum.yml -d DOMAIN="tesla.com" --report --output
dns

dnscan: zone transfer & brute forces DNS subdomains

python

The script will first try to perform a zone transfer using each of the target domain's nameservers. If this fails, it will lookup TXT and MX records for the domain, and then perform a recursive subdomain scan using the supplied wordlist.

DOMAIN
satori://dns/dnscan.yml
Example
satori run satori://dns/dnscan.yml -d DOMAIN="satori.ci" --report --output
dns

DNSRecon: general domain name enumeration

python

This tool provides the ability to perform. - Check all NS Records for Zone Transfers; - Enumerate General DNS Records for a given Domain (MX, SOA, NS, A, AAAA, SPF and TXT); - Perform common SRV Record Enumeration; Top Level Domain (TLD) Expansion; Check for Wildcard Resolution; - Brute Force subdomain and host A and AAAA records given a domain and a wordlist; Perform a PTR Record lookup for a given IP Range or CIDR; - Check a DNS Server Cached records for A, AAAA and CNAME Records provided a list of host records in a text file to check.

DOMAIN
satori://dns/dnsrecon.yml
Example
satori run satori://dns/dnsrecon.yml -d DOMAIN="satori.ci" --report --output
dns

DNSSEC: Domain Name System Security Extensions validation

debian

Checks if a domain has DNSSEC enabled by verifying the presence of DNSKEY and RRSIG records. DNSSEC protects against DNS spoofing and cache poisoning by cryptographically signing DNS responses.

DOMAIN
satori://dns/dnssec.yml
Example
satori run satori://dns/dnssec.yml -d DOMAIN="satori.ci" --report --output
dns

dnsX: queries all dns records of a domain

debian

dnsx is a DNS toolkit for performing DNS queries and collecting DNS-related information. It supports subdomain enumeration, wildcard filtering, and DNS resolution. The tool allows users to customize queries and extract specific DNS records.

DOMAIN
satori://dns/dnsx.yml
Example
satori run satori://dns/dnsx.yml -d DOMAIN="satori.ci" --report --output
dns

GoAltdns: subdomain generation tool

golang

It takes a list of subdomains, permute them using a wordlist, insert indexes, numbers, dashes and generates potential subdomains.

DOMAIN
satori://dns/goaltdns.yml
Example
satori run satori://dns/goaltdns.yml -d DOMAIN="satori.ci" --report --output
dns

gobuster-dns: brute forces DNS subdomains

debian

Gobuster performs brute-force enumeration of URLs, DNS subdomains, and virtual host names. It supports wordlist-based scanning for directories and files on web servers, subdomains in DNS, and virtual hosts. The tool allows users to specify extensions, HTTP methods, and authentication options.

DOMAIN
satori://dns/gobuster-dns.yml
Example
satori run satori://dns/gobuster-dns.yml -d DOMAIN="satori.ci" --report --output
dns

Gotator: generate DNS wordlists through permutations

golang

Gotator generates permutations, alterations, and mutations of subdomains to enhance subdomain enumeration. It helps discover additional subdomains by modifying known ones, aiding in reconnaissance and security assessments.

DOMAIN
satori://dns/gotator.yml
Example
satori run satori://dns/gotator.yml -d DOMAIN="satori.ci" --report --output
dns

hakrevdns: reverse DNS lookup

golang

hakrevdns performs fast and large-scale reverse DNS lookups by resolving IP addresses to hostnames. It helps identify associated domains, uncover network infrastructure, and assist in reconnaissance tasks.

IP
satori://dns/hakrevdns.yml
Example
satori run satori://dns/hakrevdns.yml -d IP="54.210.33.205" -d IP="3.93.207.195" --report --output
dns

Knockpy: Enumerate subdomains through passive reconnaissance and dictionary scan

python

Knockpy performs subdomain enumeration by querying DNS records, brute-forcing potential subdomains, and checking for wildcard DNS configurations. It helps identify hidden or misconfigured subdomains for reconnaissance and security assessments.

DOMAIN
satori://dns/knockpy.yml
Example
satori run satori://dns/knockpy.yml -d DOMAIN="hackerone.com" --report --output
dns

MassDNS: enumerates DNS records

debian

MassDNS is a DNS resolver that performs bulk domain lookups, supports recursive queries, and conducts brute-force subdomain enumeration using multiple resolvers for query execution.

DOMAINRECORD
satori://dns/massdns.yml
Example
satori run satori://dns/massdns.yml -d DOMAIN="satori.ci" --report --output
dns

Subfinder: Discover valid subdomains using passive online sources

debian

subfinder discovers subdomains by querying public sources, certificate transparency logs, APIs, and brute-force techniques. It is designed for reconnaissance and security assessments, providing a comprehensive list of subdomains associated with a target domain.

DOMAIN
satori://dns/passive/subfinder.yml
Example
satori run satori://dns/subfinder.yml  -d DOMAIN="satori.ci" --report --output
dns

Sublist3r: enumerate subdomains using search engines

python:2.7.18

Sublist3r automates subdomain enumeration by querying search engines, certificate transparency logs, and other sources to gather subdomains for a given domain, aiding in security assessments and reconnaissance.

DOMAIN
satori://dns/passive/sublist3r.yml
Example
satori run satori://dns/passive/sublist3r.yml -d DOMAIN="satori.ci" --report --output
dns

Puredns: domain resolver and subdomain bruteforcing

debian

puredns performs recursive DNS resolution and wildcard filtering to validate subdomains. It filters out wildcard subdomains and poisoned entries to reduce false positives in security assessments.

DOMAIN
satori://dns/puredns.yml
Example
satori run satori://dns/puredns.yml -d DOMAIN="satori.ci" --report --output
dns

shuffleDNS: enumerate valid subdomains using active bruteforce and resolving subdomains

debian

shuffledns resolves and filters subdomains by combining wordlist-based brute forcing with mass DNS resolution using multiple resolvers. It helps identify active subdomains efficiently during reconnaissance and security assessments.

DOMAIN
satori://dns/shuffledns.yml
Example
satori run satori://dns/shuffledns.yml -d DOMAIN="satori.ci\nquorumcyber.com" --report --output
dns

Subzy: subdomain takeover tool that matches response fingerprings from can-i-take-over-xyz

golang

subzy detects and exploits subdomain takeover vulnerabilities by identifying misconfigured DNS records pointing to external services. It automates checks for abandoned subdomains that attackers could hijack for phishing, data theft, or malicious content hosting.

DOMAIN
satori://dns/subzy.yml
Example
satori run satori://dns/subzy.yml -d DOMAIN="nonexistent-app-12345.herokuapp.com" --report --output
dns

tko-subs: detect and takeover subdomains with dead DNS records

golang

tko-subs detects and exploits subdomain takeover vulnerabilities by scanning for misconfigured DNS records that point to external services no longer in use. It helps identify security risks that could allow attackers to hijack abandoned subdomains.

DOMAIN
satori://dns/tko-subs.yml
Example
satori run satori://dns/tko-subs.yml -d DOMAIN="example.com" --report --output
dns

WHOIS: Domain registration and expiry check

debian

Checks domain WHOIS data including registration date, expiry date, registrar, and domain status. Expired or soon-to-expire domains are a strong signal of company distress or abandonment.

DOMAIN
satori://dns/whois-check.yml
Example
satori run satori://dns/whois-check.yml -d DOMAIN="cloudflare.com" --report --output
dos

Siege - Load testing web servers

debian

Knowing how much traffic your web server can handle when under stress is essential for planning future grow of your website or application. By using tool called siege, you can run a load test on your server and see how your system performs under different circumstances. You can use siege to evaluate the amount of data transferred, response time, transaction rate, throughput, concurrency and how many times the server returned responses. The tool has three modes, in which it can operate – regression, internet simulation and brute force. Siege must only be ran against servers you own or on such you have explicit permission to test.

URL
satori://dos/siege.yml
Example
satori run satori://dos/siege.yml -d URL="satori.ci" --report --output
dos

SlowHTTPTest - Common low-bandwidth application layer Denial of Service attacks

debian

Tests: - Slowloris - Slow HTTP POST - Slow Read attack (based on TCP persist timer exploit) by draining concurrent connections pool - Apache Range Header attack by causing very significant memory and CPU usage on the server.

URL
satori://dos/slowhttptest.yml
Example
satori run satori://dos/slowhttptest.yml -d URL="satori.ci" --report --output
email

All email sources: harvest a domain's emails

debian:stable-slim

Framework entrypoint for automated self-phishing campaigns. Discovers a target organisation's email addresses by running every email-harvesting source - theHarvester (search-engine/OSINT), GitHub commit emails, and website spidering - then unions and de-duplicates their outputs into one clean roster of addresses on the organisation domain. Each imported source prints only the matching emails; the final step merges them. Output: email addresses only, one per line.

import.0.theHarvest.test.run.stdoutimport.1.github.harvest.run.stdoutimport.2.spider.crawl.run.stdout
satori://email/all.yml
Example
satori run satori://email/all.yml -d DOMAIN="satori.ci" --report --output
email

Gitxray: Get Github repository's emails authenticated

python

Gitxray (short for Git X-Ray) is a multifaceted security tool designed for use on GitHub repositories. It serves various use cases, including OSINT, forensics, and security teams, as well as developers looking to secure their repositories, organizations, and related contributors. Gitxray leverages public GitHub REST APIs to gather information that would otherwise be very time-consuming to obtain manually. Additionally, it seeks out information in unconventional places.

GITHUB_PATREPO
satori://email/auth/gitxray-repo.yml
Example
satori run satori://email/auth/gitxray-repo.yml -d REPO=satorici/playbooks -d GITHUB_PAT=TBC --report --output
email

Gitxray: Get Github contributors' emails authenticated

python

Gitxray (short for Git X-Ray) is a multifaceted security tool designed for use on GitHub repositories. It serves various use cases, including OSINT, forensics, and security teams, as well as developers looking to secure their repositories, organizations, and related contributors. Gitxray leverages public GitHub REST APIs to gather information that would otherwise be very time-consuming to obtain manually. Additionally, it seeks out information in unconventional places.

GITHUB_PATREPOUSER
satori://email/auth/gitxray-user.yml
Example
satori run satori://email/auth/gitxray-user.yml -d REPO=org/repo -d USER=whatever -d GITHUB_PAT=TBC --report --output
email

Email Security: SPF, DMARC, and DKIM assessment

debian

Checks email authentication and anti-spoofing configuration by querying SPF, DMARC, and DKIM DNS records. Assesses strictness levels and provides an overall email security rating. Passive DNS lookups only.

DOMAIN
satori://email/email-security.yml
Example
satori run satori://email/email-security.yml -d DOMAIN="quorumcyber.com" --report --output
email

Gauplus+Nuclei: Get the urls of a domain and search for email addresses

golang

Extracts URLs from a domain using Gauplus and searches for email addresses with Nuclei. Retrieves historical and indexed URLs, then scans them for email patterns using predefined Nuclei templates to aid in reconnaissance and OSINT investigations.

DOMAIN
satori://email/gauplus-nuclei.yml
Example
satori run satori://email/gauplus-nuclei.yml -d DOMAIN="satori.ci" --report --output
email

Domain to GitHub emails

debian:stable-slim

Given only a DOMAIN, resolves its most likely GitHub org and harvests committer/author emails from the org public repositories, printing ONLY the email addresses on the organisation domain (one per line). Self-contained (resolves the org inline, no imports). No API key required; runs unauthenticated using the Satori container IP.

DOMAIN
satori://email/github.yml
Example
satori run satori://email/github.yml -d DOMAIN=satori-ci.com --report --output
email

gitSome: gets emails associated with a Github account

python

gitSome is an OSINT tool that extracts email addresses and other information from various GitHub sources. It can target user accounts, organizations, or specific domains to gather associated emails, list organization members, and identify user affiliations. The tool integrates with FireProx to create rotating endpoints, enhancing anonymity during data collection. Users can authenticate with a GitHub personal access token to increase rate limits and access private resources. Additional features include proxy support, JSON output, and exclusion of specific repositories or accounts from searches.

USER
satori://email/gitsome.yml
Example
satori run satori://email/gitsome.yml -d USER=octocat --report --output
email

Gitxray: Get Github repository's emails

python

Gitxray (short for Git X-Ray) is a multifaceted security tool designed for use on GitHub repositories. It serves various use cases, including OSINT, forensics, and security teams, as well as developers looking to secure their repositories, organizations, and related contributors. Gitxray leverages public GitHub REST APIs to gather information that would otherwise be very time-consuming to obtain manually. Additionally, it seeks out information in unconventional places.

REPO
satori://email/gitxray-repo.yml
Example
satori run satori://email/gitxray-repo.yml -d REPO="satorici/playbooks" --report --output
email

Gitxray: Get Github contributors' emails

python

Gitxray (short for Git X-Ray) is a multifaceted security tool designed for use on GitHub repositories. It serves various use cases, including OSINT, forensics, and security teams, as well as developers looking to secure their repositories, organizations, and related contributors. Gitxray leverages public GitHub REST APIs to gather information that would otherwise be very time-consuming to obtain manually. Additionally, it seeks out information in unconventional places.

REPOUSER
satori://email/gitxray-user.yml
Example
satori run satori://email/gitxray-user.yml -d REPO=satorici/playbooks -d USER=satoridev01 --report --output
email

Hunter.io: Email discovery and pattern identification

debian

Discovers professional email addresses associated with a domain using Hunter.io's database. Returns email addresses, their sources, confidence scores, and the organisation's email naming pattern (e.g. {first}.{last}@domain.com). Free tier: 25 searches/month.

DOMAINHUNTER_API_KEY
satori://email/hunter.yml
Example
satori run satori://email/hunter.yml -d DOMAIN="quorumcyber.com" -d HUNTER_API_KEY="your_key" --report --output
email

PhishingBox: create phishing email template (from our AI lure)

debian:stable-slim

Creates a phishing email template in PhishingBox (api/v2/template/create) using the lure produced by template-ai (read from /tmp/satori/out/tpl_* artifacts: subject, HTML body, from name/email). TPL_DOMAIN is the hook-link CNAME (an authorized/verified domain on the account). If TPL_LANDING_ID is provided (a landing page UUID, e.g. from the library), the template is set to type=landing so a click leads to a credential-capture page; otherwise type=none (click only tracked). Prints TEMPLATE_UUID for chaining into launch-campaign.

PHISHINGBOXTPL_DOMAINTPL_LANDING_IDTPL_NAMETYPE
satori://email/phishingbox/create-template.yml
Example
satori run satori://email/phishingbox/create-template.yml -d PHISHINGBOX="$PHISHINGBOX" -d TPL_DOMAIN="satori-ci.com" -d TPL_NAME="IT Security Notice" -d TPL_LANDING_ID="" --report --output
email

PhishingBox: create & launch a phishing campaign

debian:stable-slim

Creates and schedules a phishing campaign in PhishingBox (api/v2/campaign/create) against one or more groups using one or more phishing templates. This is the launch step: with SEND_TYPE=immediate and DATE_STARTED in the present, PhishingBox SENDS the phishing emails to the targets and tracks their actions (opened, page-load/click, etc.). PhishingBox only delivers inside a send window: BUSINESS_DAYS (comma list of 3-letter days) between SEND_START and SEND_END in the account timezone; DATE_STARTED must fall on an enabled day or the API returns 412. Defaults mimic office hours (mon-fri 08:00-17:00); pass all 7 days + 00:00:00-23:59:59 to send right now. The target domain must be authorized on the account (domain/authorize). Prints CAMPAIGN_UUID for monitoring (campaign/actions, see report.yml).

PHISHINGBOXCAMPAIGN_NAMEGROUP_IDSTEMPLATE_IDSDATE_STARTEDSEND_TYPEBUSINESS_DAYSSEND_STARTSEND_END
satori://email/phishingbox/launch-campaign.yml
Example
satori run satori://email/phishingbox/launch-campaign.yml -d PHISHINGBOX="$PHISHINGBOX" -d CAMPAIGN_NAME="Satori click test" -d GROUP_IDS="<group-uuid>" -d TEMPLATE_IDS="<template-uuid>" -d DATE_STARTED="2026-06-10 09:00:00" -d SEND_TYPE="scheduled" --report --output
email

PhishingBox: create group and load targets

debian:stable-slim

Creates a PhishingBox group (api/v2/group/create) and bulk-loads recipients into it (api/v2/target/addBatch), parsing first/last name from {first}.{last}@domain email patterns. Verifies the loaded targets (api/v2/group/targets). Feeds a phishing exercise whose test is then created/launched from the PhishingBox portal (the API does not create or launch tests). Emails are passed via -d EMAILS or read from a shared artifact written by an upstream harvester.

PHISHINGBOXPB_HOSTGROUP_NAMEEMAILS
satori://email/phishingbox/load-targets.yml
Example
satori run satori://email/phishingbox/load-targets.yml -d PHISHINGBOX="$PHISHINGBOX" -d GROUP_NAME="Satori Exercise" -d EMAILS="andrius.korsakas@quorumcyber.com,jacob.connell@quorumcyber.com" --report --output
email

PhishingBox: generate + create our AI phishing template

debian

One-run harness: imports template-ai (spiders the DOMAIN and generates a brand-matched lure into /tmp/satori/out/tpl_*) and create-template (reads those artifacts and creates the template in PhishingBox). Runs both in the same container so the lure artifacts persist. TYPE defaults to none (click tracking only, no credential capture). Prints TEMPLATE_UUID for launch-campaign.

satori://email/phishingbox/make-template.yml
Example
satori run satori://email/phishingbox/make-template.yml -d DOMAIN="satori-ci.com" -d OPENROUTER="$OPENROUTER" -d PHISHINGBOX="$PHISHINGBOX" -d TPL_DOMAIN="satori-ci.com" -d TPL_NAME="IT Security Notice" -d TPL_LANDING_ID="" -d TYPE="none" --report --output
email

PhishingBox: campaign results / success metrics

debian:stable-slim

Measures a phishing campaign's success: pulls api/v2/campaign/actions for a CAMPAIGN_ID and reports the tracked actions - how many targets opened the email and how many clicked the link (page-load), broken down by type and listed per target. Use it to monitor a running or finished campaign launched by launch-campaign.

PHISHINGBOXCAMPAIGN_ID
satori://email/phishingbox/report.yml
Example
satori run satori://email/phishingbox/report.yml -d PHISHINGBOX="$PHISHINGBOX" -d CAMPAIGN_ID="<campaign-uuid>" --report --output
email

AI phishing template generator (authorized simulation)

debian

For AUTHORIZED phishing-simulation / security-awareness exercises only. Spiders the target organization public website (text + brand assets: logo, theme color, palette), builds a recon context, and asks an LLM (via OpenRouter) to dynamically pick the most credible lure angle for that specific company and generate a brand-matched phishing email (subject + self-contained HTML body with the company logo/colors and a single hook link). Writes artifacts (subject/body/from) for chaining into create-template, and emits a base64 preview of the body. Impersonates the target DOMAIN itself (sender at @DOMAIN).

DOMAINOPENROUTER
satori://email/phishingbox/template-ai.yml
Example
satori run satori://email/phishingbox/template-ai.yml -d DOMAIN="quorumcyber.com" -d OPENROUTER="$OPENROUTER" --output
email

Site email spider: extract emails by crawling a website

debian:stable-slim

Lightweight crawler that fetches a target website (homepage internal links + common pages like /contact /privacy /terms + sitemap) and extracts email addresses with grep. Filters results by the domain core label so it keeps the organisation emails (e.g. both satori.ci and satori-ci.com) while dropping theme/placeholder junk (example.com, wordpress@, etc.). No API key, unauthenticated. Builds a phishing-exercise target roster from a company public site.

DOMAIN
satori://email/spider.yml
Example
satori run satori://email/spider.yml -d DOMAIN="satori.ci" --report --output
email

theHarvester: Get e-mails, subdomains and names

python

theHarvester collects OSINT (Open-Source Intelligence) data from public sources to gather emails, subdomains, IPs, and other information related to a target domain. It queries search engines, certificate transparency logs, and other sources for reconnaissance and security assessments.

DOMAIN
satori://email/theharvester.yml
Example
satori run satori://email/theharvester.yml -d DOMAIN="umd.edu" --report --output
llm

Aider: Query a remote Ollama

python:3.12-slim

Queries a remote Ollama server at a specified IP:PORT with a given model using Aider. Verifies the server is reachable and executes the query.

HOSTMODELINPUT
satori://llm/aider.yml
Example
satori run satori://llm/aider.yml -d HOST="103.48.43.25:11434" -d MODEL="ollama/qwen2.5-coder:32b" -d INPUT="Hello World" --report --output
llm

All LLM: Query all llm playbooks

ollama/ollama

Queries all LLM models with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

satori://llm/all.yml
Example
satori run satori://llm/all.yml -d INPUT="Hello World" --report --output
llm

deepseek-r1 LLM

ollama/ollama

Queries deepseek-r1 with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

MODELINPUT
satori://llm/deepseek-r1.yml
Example
satori run satori://llm/deepseek-r1.yml -d INPUT="Hello World" --report --output
llm

Gemini CLI

node

Uses Google Gemini CLI to query a cloned repository with an AI prompt.

REPOGEMINI_API_KEYPROMPT
satori://llm/gemini.yml
Example
satori run satori://llm/gemini.yml -d REPO="owner/repo" -d PROMPT="Analyze this code" -d GEMINI_API_KEY=$GEMINI_API_KEY --report --output
llm

Llama 3.2 uncensored: Query this LLM

ollama/ollama

Queries Llama 3.2 uncensored with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

MODELINPUT
satori://llm/llama3.2-uncensored.yml
Example
satori run satori://llm/llama3.2-uncensored.yml -d INPUT="Hello World" --report --output
llm

Llama 3.2: Query this LLM

ollama/ollama

Queries Llama 3.2 with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

MODELINPUT
satori://llm/llama3.2.yml
Example
satori run satori://llm/llama3.2.yml -d INPUT="Hello World" --report --output
llm

llmfit

python
satori://llm/llmfit.yml
Example
satori run satori://llm/llmfit.yml --output --cpu 16384 --memory 122880
llm

OpenAI gpt-oss:20b

ollama/ollama

Runs the OpenAI gpt-oss:20b model locally using Ollama to query with custom input.

MODELINPUT
satori://llm/openai.yml
Example
satori run satori://llm/openai.yml -d INPUT="Hello World" --report --output
llm

OpenRouter: Query referencing a local file

debian

Sends a prompt plus the contents of a local file to an OpenRouter model via its OpenAI-compatible API and returns the model's answer.

MODELPROMPTFILEOPENROUTER
satori://llm/openrouter.yml
Example
satori local ./ -p satori://llm/openrouter.yml -d FILE="./main.py" -d PROMPT="Review this file for bugs" -d MODEL="google/gemini-2.5-flash" -d OPENROUTER=$OPENROUTER --output
llm

Qwen: Query this LLM

ollama/ollama

Queries Qwen with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

MODELINPUT
satori://llm/qwen.yml
Example
satori run satori://llm/qwen.yml -d INPUT="Hello World" --report --output
llm

Repo by file: Run a query to all files of a repository

ollama/ollama

Queries a GitHub repository using Llama 3.2 with Ollama. Clones the specified repository, compiles its file contents into a prompt, and queries the Llama model with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

REPOMODELINPUT
satori://llm/tools/repo-by-file.yml
Example
satori run satori://llm/tools/repo-by-file.yml -d INPUT="Identify security vulnerabilities on the following file referencing the line number." -d REPO="hardik05/Damn_Vulnerable_C_Program" --report --output
llm

Llama repo: Query a repository using Ollama with Llama3

ollama/ollama

Queries a GitHub repository using Llama 3.2 with Ollama. Clones the specified repository, compiles its file contents into a prompt, and queries the Llama model with the provided input. Ensures the Ollama server runs correctly, pulls the specified model, and executes the query.

REPOINPUTMODEL
satori://llm/tools/repo.yml
Example
satori run satori://llm/tools/repo.yml -d INPUT="What does example.c and attack.c do?" -d REPO="royleekiat/overflow-example" --report --output
load

ab - Apache HTTP server benchmarking tool

debian

ApacheBench (ab) is a tool for benchmarking HTTP servers. It shows how many requests per second your server is capable of serving, along with detailed connection times, transfer rates, and percentile latency breakdown. It is included with the Apache HTTP server package and is one of the most widely used load testing utilities.

URL
satori://load/ab.yml
Example
satori run satori://load/ab.yml -d URL="https://satori.ci/" --report --output
load

Hey - HTTP load generator

satori

Hey is a tiny program that sends load to a web application. It supports HTTP/2 and provides detailed latency distribution, status code breakdown, and throughput metrics. Useful for quick benchmarks and smoke-testing endpoint performance under concurrent load.

URL
satori://load/hey.yml
Example
satori run satori://load/hey.yml -d URL="https://satori.ci" --report --output
load

wrk - Modern HTTP benchmarking tool

debian

wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It uses multithreaded design and scalable event notification systems like epoll and kqueue to produce detailed latency statistics including average, stdev, max, and percentile distribution.

URL
satori://load/wrk.yml
Example
satori run satori://load/wrk.yml -d URL="https://satori.ci" --report --output
malware

Are_Ports_Open: Are there any ports listening?

debian

Checks for open listening ports on the system. Identifies potential unauthorized services, malware, or misconfigurations that could expose the system to network attacks or unauthorized access.

satori://malware/are_ports_open.yml
Example
satori run satori://malware/are_ports_open.yml --report --output
malware

Clam AV: antimalware and antivirus

debian

ClamAV is an open-source antivirus engine designed to detect a wide range of malicious threats, including trojans, viruses, and malware. It supports multiple file formats and is commonly used for scanning emails on mail gateways. ClamAV is cross-platform, running on various operating systems such as Unix, Linux, and Windows. The project is maintained by Cisco’s Talos Security Intelligence and Research Group.

satori://malware/clamav.yml
Example
satori run ./ --playbook satori://malware/clamav.yml --report --output
malware

Find_IP_Addresses: Are IP addresses within files?

debian

Finds IP addresses within files by searching for numerical patterns matching IPv4 addresses. Identifies potential hardcoded connections, malware command-and-control servers, or network configuration leaks.

satori://malware/find_ip_addresses.yml
Example
satori run ./ --playbook satori://malware/ip_addresses.yml --report --output
malware

Is_Video_Enabled: Checks if the video has been enabled by malware

debian

Checks if the uvcvideo module is loaded, indicating that video functionality has been enabled. Detects potential malware activity that secretly activates webcams for unauthorized surveillance or data collection.

satori://malware/is_video_enabled.yml
Example
satori run satori://malware/is_video_enabled.yml --report --output
monitor

DNS Changes: Monitor DNS records for unexpected changes

debian

Queries DNS records (A, AAAA, MX, NS, TXT, CNAME) for a domain and asserts that expected records are present. Useful for detecting DNS hijacking, unauthorized changes, or misconfigurations.

HOSTEXPECTED_IP
satori://monitor/dns-changes.yml
Example
satori run satori://monitor/dns-changes.yml -d HOST="satori.ci" -d EXPECTED_IP="1.2.3.4" --report --output
monitor

Host: Check if a host has an IP address

debian

This playbook checks if a host resolves to a specified IP address. It installs dnsutils, runs the host command on a given hostname, and verifies that the output matches that the host has a certain IP address.

HOSTIP
satori://monitor/host.yml
Example
satori run satori://monitor/host.yml -d HOST="host_name" -d IP="ip_adress" --report --output
monitor

Ping: ping packets reach a host

debian

This playbook checks for packet loss, running a ping command with four packets to a specified host, and verifying that the output contains that there is no packet loss.

HOST
satori://monitor/ping.yml
Example
satori run satori://monitor/ping.yml -d HOST="satori.ci" --report --output
monitor

SSL Expiry: Check SSL certificate expiration

debian

Checks the SSL certificate of a host and asserts that it is not expiring within 30 days. Reports the certificate issuer, validity dates, and days until expiration.

HOST
satori://monitor/ssl-expiry.yml
Example
satori run satori://monitor/ssl-expiry.yml -d HOST="expired.badssl.com" --report --output
ms

CVE-2025-53770 - SharePoint unauthenticated RCE

golang

Deserialization of untrusted data in on-premises Microsoft SharePoint Server allows an unauthorized attacker to execute code over a network. Microsoft is aware that an exploit for CVE-2025-53770 exists in the wild.

HOST
satori://ms/CVE-2025-53770.yml
Example
satori local satori://ms/CVE-2025-53770.yml -d HOST=127.0.0.1 --report --output
osint

Blocklist Check: Phishing & malware feed exposure

debian

Alerts a domain owner if their domain or subdomains appear on public phishing/malware blocklists (URLhaus, OpenPhish, Phishunt, PhishStats). A hit means the domain is likely compromised and serving malicious content, or has been flagged and is damaging its reputation/deliverability. No API key required. Designed to run as a daily monitor.

DOMAIN
satori://osint/blocklist-check.yml
Example
satori local osint/blocklist-check.yml -d DOMAIN="example.com" --report --output
osint

Breach News: Compromise mentions scored by an LLM

debian

Searches Google News for a company alongside a compromise lexicon (hack, ransomware, breach, data leak, phishing, compromised, exposed, stolen data) and asks an OpenRouter LLM (Google Gemini 2.5 Flash) to judge whether the headlines credibly indicate THAT company was itself breached/compromised. Returns a scorable verdict (BREACH_NEWS_FOUND vs CLEAN). Unlike osint/google-news.yml (which lists any mention without filtering or scoring), this filters by the compromise lexicon and discards false positives such as a security vendor merely reporting on someone else's incident.

COMPANYDOMAINOPENROUTERMODEL
satori://osint/breach-news.yml
Example
satori run satori://osint/breach-news.yml -d COMPANY="Acme Corp" -d DOMAIN="acme.com" -d OPENROUTER=$OPENROUTER --report --output
osint

Bug Bounty: Program discovery across platforms

debian

Checks if a company has a public bug bounty or vulnerability disclosure program on HackerOne, Bugcrowd, Intigriti, or via security.txt. Having a bug bounty program indicates security maturity and proactive vulnerability management.

DOMAINCOMPANY
satori://osint/bug-bounty.yml
Example
satori run satori://osint/bug-bounty.yml -d DOMAIN="cloudflare.com" -d COMPANY="cloudflare" --report --output
osint

Certificate Transparency: Organization domain discovery

debian

Searches crt.sh certificate transparency logs by Organization name (not domain) to discover all domains with SSL certificates issued to a specific company. CA-validated org names are high confidence. No API key required.

COMPANYDOMAIN
satori://osint/cert-org-search.yml
Example
satori run satori://osint/cert-org-search.yml -d COMPANY="Quorum Cyber" -d DOMAIN="quorumcyber.com" --report --output
osint

Certificate Transparency Monitor: Lookalike cert issuance

debian

Detects phishing infrastructure at provisioning time by watching Certificate Transparency logs (crt.sh) for newly issued certificates whose hostname contains your brand keyword but is NOT on your legitimate domain. Catches attacker lookalike/impersonation domains the moment they get a TLS cert, often before they are weaponized. Complements typosquat detection. No API key required. Designed to run as a daily monitor.

DOMAIN
satori://osint/crt.yml
Example
satori run osint/crt.yml -d DOMAIN="coinbase.com" --report --output
osint

Crunchbase Company Intelligence: Profile, funding, and key people

python:3.12-slim

Solves Cloudflare challenge via CapSolver and extracts company profile, funding rounds, key people, and products from Crunchbase using a residential proxy.

COMPANYPROXY_URLCAPSOLVER
satori://osint/crunchbase.yml
Example
satori run satori://osint/crunchbase.yml -d COMPANY="Quorum Cyber" -d PROXY_URL="http://user:pass@geo.iproyal.com:12321" -d CAPSOLVER="your_key" --report --output
osint

Domain to GitHub account

debian:stable-slim

Find the most likely main GitHub org/account for a domain

DOMAIN
satori://osint/domain-to-github.yml
Example
satori run satori://osint/domain-to-github.yml -d DOMAIN=satori.ci --report --output
osint

Google News: Recent mentions in the last 30 days

debian

Searches Google News for recent mentions of a company in the last 30 days via RSS. Returns titles, sources, and publication dates. Useful for identifying recent incidents, acquisitions, press coverage, or negative news.

COMPANYDOMAIN
satori://osint/google-news.yml
Example
satori run satori://osint/google-news.yml -d COMPANY="Quorum Cyber" -d DOMAIN="quorumcyber.com" --report --output
osint

HaveIBeenPwned: Breach exposure check

debian

Checks if employee credentials from the target domain have appeared in known data breaches using the Have I Been Pwned API. Requires HIBP_API_KEY.

DOMAINHIBP_API_KEYCOMPANY
satori://osint/haveibeenpwned.yml
Example
satori run satori://osint/haveibeenpwned.yml -d DOMAIN="linkedin.com" -d COMPANY="LinkedIn" -d HIBP_API_KEY="your_key" --report --output
osint

Job Board Recon: Security hiring gap analysis

debian

Identifies security team gaps by searching for open security-related hiring positions via the Adzuna Jobs API. Requires ADZUNA_ID and ADZUNA_KEY.

COMPANYADZUNA_IDADZUNA_KEY
satori://osint/job-board-recon.yml
Example
satori run satori://osint/job-board-recon.yml -d COMPANY="NCC Group" -d ADZUNA_ID="your_id" -d ADZUNA_KEY="your_key" --report --output
osint

LinkedIn Company Intelligence: Profile, hiring, and competitors

debian

Enriches company data via Proxycurl (nubela.co, LinkedIn data) and Adzuna Jobs API. Returns company profile, specialties, funding history, and open security roles.

COMPANYDOMAINPROXYCURLADZUNA_IDADZUNA_KEY
satori://osint/linkedin-company.yml
Example
satori run satori://osint/linkedin-company.yml -d DOMAIN="quorumcyber.com" -d COMPANY="Quorum Cyber" -d PROXYCURL="your_key" -d ADZUNA_ID="your_id" -d ADZUNA_KEY="your_key" --report --output
osint

AlienVault OTX: Threat-intel pulse exposure

debian

Checks whether a domain is named in any AlienVault OTX threat-intelligence pulse (tracked IOC sets, malware campaigns, incident reports). A match means the domain has been referenced in community/vendor threat reporting. Uses the public OTX domain endpoint (no API key required). Note: well-known brands appear in many benign monitoring pulses, so treat matches as a review signal.

DOMAIN
satori://osint/otx.yml
Example
satori run osint/otx.yml -d DOMAIN="example.com" --report --output
osint

Ransomware Check: Ransomware victim history

debian

Checks if a company or domain has been published as a ransomware victim, using the ransomware.live v2 API which indexes victims across ~100 ransomware leak sites (live, fresher than a static dump). Returns ransomware group, dates, country, sector, and whether the victim also appeared in infostealer logs. No API key required.

DOMAINCOMPANY
satori://osint/ransomware-check.yml
Example
satori run osint/ransomware-check.yml -d DOMAIN="colonialkc.org" -d COMPANY="Colonial" --report --output
osint

RBL Check: IP reputation (spam / botnet C2)

debian

Resolves the organisation's own IPs (domain A records + each MX host) and checks them against IP reputation blocklists: DNS blocklists for spam/policy/exploit (Spamhaus ZEN, Barracuda, SORBS, SpamCop) and the abuse.ch Feodo Tracker for active botnet C2. A live hit means an IP in the org's space is sending spam or is a compromised/C2 host — the IP-axis complement to the domain-axis blocklist-check. No API key required.

DOMAIN
satori://osint/rbl-check.yml
Example
satori local osint/rbl-check.yml -d DOMAIN="example.com" --report --output
osint

SEC EDGAR: Subsidiary discovery from public filings

debian

Searches SEC EDGAR full-text search for Exhibit 21 (subsidiary listings) and 8-K (acquisition announcements) to discover legally disclosed subsidiaries. US public companies only. No API key required.

COMPANY
satori://osint/sec-subsidiaries.yml
Example
satori run satori://osint/sec-subsidiaries.yml -d COMPANY="CrowdStrike" --report --output
osint

TheCompaniesAPI Lookup

debian

Query TheCompaniesAPI for company info by hostname/domain

THECOMPANIESAPIHOST
satori://osint/thecompaniesapi.yml
Example
satori local satori://osint/thecompaniesapi.yml -d HOST="stripe.com" -d THECOMPANIESAPI="$THECOMPANIESAPI" --test TheCompaniesAPI.run.stdout --output 2>/dev/null | jq -r .about.name
osint

Typosquat Detection: Lookalike / impersonation domains

python

Detects attacker-registered lookalike domains impersonating your brand (typosquats, homoglyphs, TLD swaps, bitsquats). Uses dnstwist to generate permutations, keeps only the ones that are registered and resolve, checks for MX records (mail-capable = BEC/phishing risk), and ages each via WHOIS so freshly registered impostors are flagged as high risk. No API key required. Designed to run as a daily monitor.

DOMAIN
satori://osint/typosquat.yml
Example
satori run osint/typosquat.yml -d DOMAIN="paypal.com" --report --output
osint

Wayback Machine: Web archive activity check

debian

Checks the Wayback Machine (archive.org) for a domain's archive history. Reports first snapshot, last snapshot, and recent activity. A domain with no recent snapshots or only error codes suggests the company is inactive or dead.

DOMAIN
satori://osint/wayback-check.yml
Example
satori run satori://osint/wayback-check.yml -d DOMAIN="cloudflare.com" --report --output
sap

Scanner for CVE-2025-31324 SAP NetWeaver

python

Onapsis Scanner for Vulnerability CVE-2025-31324 (SAP Security 3594142) - CVSS 10 (Critical). This tool checks for the presence of the vulnerability and known webshells in the SAP system. DISCLAIMER: This tool is provided from Onapsis via open source license Apache 2.0, as a contribution to the security, incident response, and SAP communities to aid in response to active exploitation of CVE-2025-31324. This tool is under development and will continue to iterate rapidly as more information becomes available either from Onapsis Research Labs or publicly. This is a best-effort development and offered as-is with no warranty or liability.

HOSTPORT
satori://sap/Onapsis_CVE-2025-31324.yml
Example
satori run satori://sap/Onapsis_CVE-2025-31324.yml -d IP=127.0.0.1 -d PORT=50000 --report --output
root

Port scan on a range

python

Scans an IP range for open ports using ZMap and ZGrab2 with sharding support, then aggregates banner results.

SATORI_TOKENSHARDSPORTRANGE
satori://scan.yml
Example
satori run satori://scan.yml -d RANGE=52.0.0.0/8 -d PORT=80 -d SATORI_TOKEN=$SATORI_TOKEN -d SHARDS=500 --output --visibility public
scan

Banner scanner

python

Grabs banners from a list of IP addresses on a specified port using concurrent connections.

INPUTCONCURRENCYTIMEOUTPORT
satori://scan/banner-scanner.yml
Example
satori run satori://scan/banner-scanner.yml -i input.txt -d CONCURRENCY=100 -d TIMEOUT=5 -d PORT=80 --report --output
scan

Scan bug bounty hosts with a playbook

python

Scans bug bounty target hosts from public domain lists using a specified playbook and port list in parallel.

SATORI_TOKENPLAYBOOKMAXPORT
satori://scan/host_port.yml
Example
satori run playbook.yml -d SATORI_TOKEN=$SATORI_TOKEN -d PLAYBOOK=satori://cve/CVE-2025-10035.yml -d PORT="443 80 8009 8443 8001 8000 8010 8080 10443 4443 9443 8080" --output
scan

Port scan on a range

python

Scans an IP range for open HTTP ports using ZMap and ZGrab2 with sharding support, then aggregates banner results.

SATORI_TOKENSHARDSPORTRANGE
satori://scan/http.yml
Example
satori run satori://scan/http.yml -d RANGE=52.0.0.0/8 -d PORT=80 -d SATORI_TOKEN=$SATORI_TOKEN -d SHARDS=250 --output --visibility public
scan

Port scan on a range

python

Scans an IP range for open HTTPS ports using ZMap and ZGrab2 with sharding support, then aggregates banner results.

SATORI_TOKENSHARDSPORTRANGE
satori://scan/https.yml
Example
satori run satori://scan/https.yml -d RANGE=52.0.0.0/8 -d PORT=443 -d SATORI_TOKEN=$SATORI_TOKEN -d SHARDS=250 --output --visibility public
scan

IPerf3: Measures performance

debian

IPerf3 is a network performance measurement tool that tests bandwidth, jitter, and packet loss between hosts.

satori://scan/iperf3.yml
Example
satori run satori://scan/iperf3.yml --report --output --test iperf3.run.client.stdout --cpu 2048 --memory 4096
scan

Masscan: Scan a target host for a specific port

debian

This playbook uses masscan to scan a target host for a specific port and rate, both defined by the user.

HOSTPORTRATESHARD
satori://scan/masscan.yml
Example
satori run ./ --playbook=./masscan.yml -d HOST="192.168.0.1" -d PORT="80" -d RATE="1000" --report --output
scan

Naabu: port scanning tool

debian

Naabu is a port scanning tool written in Go that allows you to enumerate valid ports for hosts in a fast and reliable manner. It is a really simple tool that does fast SYN/CONNECT/UDP scans on the host/list of hosts and lists all ports that return a reply.

HOST
satori://scan/naabu.yml
Example
satori run satori://scan/naabu.yml -d HOST="satori.ci" --report --output
scan

Nmap: full network scan

debian

Nmap is short for Network Mapper. It is an open-source Linux command-line tool that is used to scan IP addresses and ports in a network and to detect installed applications. Nmap allows network admins to find which devices are running on their network, discover open ports and services, and detect vulnerabilities.

HOST
satori://scan/nmap.yml
Example
satori run satori://scan/nmap.yml -d HOST="mytestsite.com" --report --output
scan

Rustscan: Network port scanner

rustscan/rustscan

RustScan is a modern port scanner that rapidly scans all 65,535 ports in approximately 3 seconds. It features a scripting engine supporting languages like Python, Lua, and Shell, allowing users to automate tasks such as piping results into Nmap for detailed analysis. RustScan also employs adaptive learning to optimize its scanning process based on the environment.

HOST
satori://scan/rustscan.yml
Example
satori run satori://scan/rustscan.yml -d HOST="satori.ci" --report --output
scan

Shodan: Exposed services and CVE identification

debian

Queries Shodan API to identify exposed services, open ports, software versions, and known CVEs on the target's infrastructure and subdomains. Requires SHODAN_API_KEY.

SHODAN_API_KEYDOMAIN
satori://scan/shodan.yml
Example
satori run satori://scan/shodan.yml -d DOMAIN="scanme.nmap.org" -d SHODAN_API_KEY="your_key" --report --output
scan

Smap: port scanner built with shodan.io's free API

debian

smap is a network scanner that functions as a faster, more efficient alternative to Nmap by leveraging masscan for high-speed host discovery and integrating Nmap’s service and vulnerability detection capabilities. It supports asynchronous scanning and provides detailed network insights.

HOST
satori://scan/smap.yml
Example
satori run satori://scan/smap.yml -d HOST="satori.ci" --report --output
scan

ssh-audit: SSH server configuration auditor

python

ssh-audit analyzes SSH server configurations to identify weak algorithms, outdated protocols, and security misconfigurations. It checks key exchanges, ciphers, MACs, and host key algorithms against known vulnerabilities and best practices.

HOST
satori://scan/ssh-audit.yml
Example
satori run satori://scan/ssh-audit.yml -d HOST="satori.ci" --report --output
scan

SSHamble: Unexpected Exposures in SSH

threatpatrols/sshamble

SSHamble is an SSH security testing tool that identifies misconfigurations, weak credentials, and unexpected exposures in SSH services.

IPS
satori://scan/sshamble.yml
Example
satori run satori://scan/sshamble.yml -d IPS="192.168.1.1" --report --output
scan

ZGrab2: grab port banners

golang

ZGrab2 is a modular application-layer network scanner that grabs banners and metadata from services on specified ports.

PORT
satori://scan/zgrab2.yml
Example
satori run satori://scan/zgrab2.yml -i input.txt -d PORT=80 --output --test run --files
scan

ZMap Scanner

python

Orchestrates ZMap scans across IP ranges using sharding, collects results, and uploads them to a repository.

SATORI_TOKENSHARDSPORTRANGEGITHUB_TOKEN
satori://scan/zmap-scanner.yml
Example
satori run satori://scan/zmap-scanner.yml -d RANGE=0.0.0.0/8 -d PORT=80 -d SHARDS=500 -d SATORI_TOKEN=TBC -d GITHUB_TOKEN=TBC --output --visibility public
scan

ZMap Web Banner Scanner

fedora

Scans IP ranges using ZMap to discover hosts with open ports.

RATEPORTRANGE
satori://scan/zmap-webbanner.yml
Example
satori run satori://scan/zmap-webbanner.yml --output --count 3 -d PORT=80 -d RANGE=1.1.1.0/29
scan

ZMap + ZGrab2

fedora

Combines ZMap for fast port scanning with ZGrab2 for HTTPS banner grabbing across IP ranges.

PORTRANGE
satori://scan/zmap-zgrab2-https.yml
Example
satori run satori://scan/zmap-zgrab2-https.yml --count 60000 -d PORT=443 -d RANGE=0.0.0.0/0 --report --output --files
scan

ZMap + ZGrab2

fedora

Combines ZMap for fast port scanning with ZGrab2 for HTTP banner grabbing across IP ranges.

PORTRANGE
satori://scan/zmap-zgrab2.yml
Example
satori run satori://scan/zmap-zgrab2.yml --count 60000 -d PORT=80 -d RANGE=0.0.0.0/0 --report --output --files
scan

Zmap: fast single packet network scanner

debian

ZMap is a fast single-packet network scanner optimized for Internet-wide network surveys. On a computer with a gigabit connection, ZMap can scan the entire public IPv4 address space on a single port in under 45 minutes. With a 10gigE connection and PF_RING, ZMap can scan the IPv4 address space in 5 minutes.

PORTHOST
satori://scan/zmap.yml
Example
satori run satori://scan/zmap.yml -d PORT="1234" -d HOST="host" --report --output
secrets

Multi Test all Secrets: Semgrep, Trufflehog & others

satori

Exposing hardcoded secrets, such as API keys, passwords, cryptographic keys, and authentication credentials, increases the risk of unauthorized access, data breaches, and privilege escalation. Attackers can exploit these vulnerabilities to access private repositories, decrypt sensitive data, impersonate users, or compromise secure systems. Detection tools help identify and mitigate these risks by scanning code repositories, analyzing patterns, and enforcing security best practices across multiple programming languages.

satori://secrets/all.yml
Example
satori run satori://secrets/all.yml --repo BonJarber/SecretsTest --report --output
secrets

detect-secrets: find secrets within your code base

python

detect-secrets identifies and prevents accidental exposure of secrets in code repositories by scanning for sensitive information such as API keys, passwords, and credentials using pattern matching and heuristics.

satori://secrets/detect-secrets.yml
Example
satori run ./ --playbook satori://secrets/detect-secrets.yml --report --output
secrets

Gitleaks: Secret Scanner

golang

Gitleaks is a fast, light-weight secret scanner for repos, directories, and files. It detects potential secrets like API keys, passwords, tokens, private keys and much more.

satori://secrets/gitleaks.yml
Example
satori run ./ --playbook satori://secrets/gitleaks.yml --report --output
secrets

Find secrets using Semgrep

public.ecr.aws/docker/library/python:3.13

Semgrep is a static code analysis tool with stable support for C#, Go, Java, JavaScript, JSON, Python, PHP, Ruby, and Scala. It has experimental support for nineteen other languages, as well as a language agnostic mode.

satori://secrets/semgrep.yml
Example
satori run ./ --playbook satori://secrets/semgrep.yml --report --output
secrets

Trufflehog: Find hardcoded secrets

python

trufflehog scans repositories, files, and logs for hardcoded secrets such as API keys, passwords, and cryptographic credentials. It uses pattern matching and entropy analysis to detect exposed sensitive data, helping prevent unauthorized access and security breaches.

satori://secrets/trufflehog.yml
Example
satori run ./ --playbook satori://secrets/trufflehog.yml --report --output
root

Hello World Test

debian

This playbook is designed to test the output of two commands to ensure it contains the phrase **Hello World**. It defines a parent test named `test`, which includes an assertion on two echoes. The assertion, `assertStdoutContains: Hello World`, checks that the standard output from the executed commands contains the string **Hello World**. The playbook defines two command blocks: `hello` and `whatever`. The `hello` block executes the command `echo Hello World`, which prints **Hello World**. Similarly, the `whatever` block executes the command `echo ${{INPUT}}`, which prints whatever the value of the `INPUT` variable is. For example, if `INPUT` is set to **Hello World**, the commands will again output *Hello World* and the parent assertion will pass.

INPUT
satori://test.yml
Example
satori run satori://test.yml -d INPUT="Hello World" --report --output
test

Test: Severity

satori

Test playbook that validates severity level assertions from Blocker (0) to Informational (5).

BLOCKERCRITICALHIGHMEDIUMLOWINFO
satori://test/severity.yml
Example
satori local satori://test/severity.yml -d BLOCKER=True -d CRITICAL=True -d HIGH=True -d MEDIUM=True -d LOW=True -d INFO=True --report --output
web

APIFuzzer

python:3.11

APIFuzzer is a fuzzing tool that tests API endpoints defined in OpenAPI/Swagger specifications to find potential vulnerabilities.

satori://web/apifuzzer.yml
Example
satori run satori://web/apifuzzer.yml --report --output
web

Arjun: HTTP Parameter Discovery

python

Arjun is an HTTP parameter discovery suite. It's used to find query parameters, path parameters, POST data fields, and request headers in web applications through intelligent brute force probing.

URL
satori://web/arjun.yml
Example
satori run satori://web/arjun.yml -d URL="https://api.satori.ci" --report --output
web

Cloud Scraper: enumerates targets in search of cloud resources (S3 Buckets, Azure Blobs, Digital Ocean Storage Space)

python

CloudScraper spiders and scrapes target websites to identify exposed cloud resources, such as AWS S3 buckets, Azure Blobs, and DigitalOcean Spaces. By inputting a URL, it recursively searches through the site’s pages, extracting links and scanning for patterns indicative of cloud storage locations.

URL
satori://web/cloudscraper.yml
Example
satori run satori://web/cloudscraper.yml -d URL="http://example.com" --report --output
web

CMSeek: CMS Detection and Exploitation suite

python

Scan WordPress, Joomla, Drupal and over 180 other CMSs

URL
satori://web/cmseek.yml
Example
satori run satori://web/cmseek.yml -d URL="https://satori.ci" --report --output
web

CORSTest: misconfiguration scanner

python

CORStest identifies misconfigurations in Cross-Origin Resource Sharing (CORS) implementations. It tests whether arbitrary origins are accepted, credentials are allowed, and methods beyond the standard ones are permitted. The tool helps detect security risks related to improperly configured CORS policies that could lead to unauthorized data access.

URL
satori://web/corstest.yml
Example
satori run satori://web/corstest.yml -d URL="https://satori.ci" --report --output
web

Corsy: Scans for misconfigurations in CORS implementations

python

Corsy scans for misconfigurations in Cross-Origin Resource Sharing (CORS) settings. It detects vulnerabilities like origin reflection, wildcard values, and various bypass techniques. The tool supports scanning multiple URLs, exporting results, and using custom headers.

URL
satori://web/corsy.yml
Example
satori run satori://web/corsy.yml -d URL="https://satori.ci" --report --output
web

Dalfox: XSS scanner

debian

Dalfox detects and exploits XSS (Cross-Site Scripting) vulnerabilities by analyzing parameters, injecting payloads, and automating security testing. It supports reflection-based detection, DOM analysis, and blind XSS payload delivery for comprehensive web application security assessments.

URL
satori://web/dalfox.yml
Example
satori run satori://web/dalfox.yml -d URL="http://testphp.vulnweb.com/listproducts.php?cat\=123&artist=123&asdf=ff" --report --output
web

Dirb: web directory brute forcer

debian

DIRB is a command-line web content scanner that performs dictionary-based attacks to discover hidden directories and files on web servers. It works by systematically requesting URLs from a provided wordlist and analyzing the server’s HTTP responses to identify existing or hidden web objects. DIRB comes with preconfigured wordlists but also allows the use of custom lists.

URL
satori://web/enum/dirb.yml
Example
satori run satori://web/enum/dirb.yml -d URL="http://example.com" --report --output
web

FFuf: Web fuzzer to discover hidden files and directories

debian

Fast web fuzzer for discovering hidden endpoints and parameters

URL
satori://web/enum/ffuf.yml
Example
satori run satori://web/enum/ffuf.yml -d URL="https://example.com" --report --output
web

HSTS Preload: Chrome preload list membership check

debian

Checks if a domain is registered on the HSTS Preload List, which is hardcoded into Chrome, Firefox, Safari, Edge, and other browsers. Domains on the list are always accessed via HTTPS, eliminating the possibility of SSL stripping attacks on the first visit.

DOMAIN
satori://web/hsts-preload.yml
Example
satori run satori://web/hsts-preload.yml -d DOMAIN="satori.ci" --report --output
web

httpx: performs multiple web probes

debian

Identify and analyze web server configurations, verify HTTP responses, and diagnose potential vulnerabilities or misconfigurations

URL
satori://web/httpx.yml
Example
satori run satori://web/httpx.yml -d URL="satori.ci" --report --output
web

Katana: Crawl and spider a website

debian

Katana is a web crawling and spidering tool that supports headless browsing, JavaScript execution, automatic form filling, and regex-based scope control. It processes input from standard input, URLs, or file lists and outputs to standard output, files, or JSON. Passive crawling from external sources has been moved to a separate tool called URLFinder.

URL
satori://web/katana.yml
Example
satori run satori://web/katana.yml -d URL="satori.ci" --report --output
web

Lotus: scan web vulnerabilities

rust

Lotus is a web security scanner written in Rust that automates dynamic application security testing (DAST) using Lua scripts. It provides a comprehensive Lua API to streamline web security scripting, enabling efficient automation of security processes.

URL
satori://web/lotus.yml
Example
satori run satori://web/lotus.yml -d URL="http://testphp.vulnweb.com/listproducts.php?cat=1" --report --output
web

Nikto: Tests web servers for security threats

debian

Nikto is a web server scanner that detects vulnerabilities, misconfigurations, and outdated software by testing against a database of known security issues. It performs comprehensive checks, including identifying default files, server options, and insecure configurations.

URL
satori://web/nikto.yml
Example
satori run satori://web/nikto.yml -d URL="http://example.com" --report --output
web

Nuclei: Web vulnerability scanner

debian

A feature-rich vulnerability scanner that uses templates to detect security issues including CVEs, misconfigurations, and exposed sensitive data.

URL
satori://web/nuclei.yml
Example
satori run satori://web/nuclei.yml -d URL="http://testphp.vulnweb.com/artists.php?artist=1" --report --output
web

Parth: Identify potential web vulnerabilities

python

Some HTTP parameter names are more commonly associated with one functionality than the others. For example, the parameter ?url= usually contains URLs as the value and hence often falls victim to file inclusion, open redirect and SSRF attacks. Parth can go through your burp history, a list of URLs or it's own discovered URLs to find such parameter names and the risks commonly associated with them. Parth is designed to aid web security testing by helping in prioritization of components for testing.

HOST
satori://web/parth.yml
Example
satori run satori://web/parth.yml -d HOST="geeksforgeeks.org" --report --output
web

Gauplus: Get all urls of a domain

golang

Fetch known URLs from sources like AlienVault’s Open Threat Exchange, the Wayback Machine, and Common Crawl.

DOMAIN
satori://web/passive/gauplus.yml
Example
satori run satori://web/passive/gauplus.yml -d DOMAIN="example.com" --report --output
web

Socialhunter: crawls the given URL and finds broken social media links that can be hijacked

debian

socialhunter crawls a given website to identify broken social media links that could be hijacked, potentially allowing attackers to conduct phishing attacks or damage a company’s reputation. It supports platforms like Twitter, Facebook, Instagram, and TikTok without requiring API keys.

URL
satori://web/passive/socialhunter.yml
Example
satori run satori://web/passive/socialhunter.yml -d URL="https://www.satori.ci" --report --output
web

Urlhunter: search URLs that are exposed via shortener services (bit.ly, goo.gl)

debian

Tool for searching URLs exposed through URL shortener services by analyzing collections of previously brute-forced and published shortened URLs. It allows users to filter results using keywords and define date ranges for analysis.

URL
satori://web/passive/urlhunter.yml
Example
satori run satori://web/passive/urlhunter.yml -d URL="satori.ci" --report --output
web

WaybackURLs: Fetch the URLs that the Wayback Machine knows for a domain

debian

waybackurls extracts URLs from the Wayback Machine for a given domain, helping identify historical endpoints, parameters, and potential attack surfaces for security assessments and reconnaissance.

URL
satori://web/passive/waybackurls.yml
Example
satori run satori://web/passive/waybackurls.yml -d URL="https://www.satori.ci" --report --output
web

Waymore: find way more URLs from the Wayback Machine

python

waymore retrieves URLs from multiple sources, including the Wayback Machine, Common Crawl, AlienVault OTX, URLScan, and VirusTotal. It can download archived responses from the Wayback Machine, allowing users to search for additional links, developer comments, and parameters within those responses. This functionality aids in comprehensive web reconnaissance and vulnerability assessment.

URL
satori://web/passive/waymore.yml
Example
satori run satori://web/passive/waymore.yml -d URL="satori.ci" --report --output
web

Ppmap: perform XSS via Prototype Pollution

golang

ppmap is a tool that scans for client-side Prototype Pollution vulnerabilities and exploits them to achieve cross-site scripting (XSS) by leveraging known gadgets. It identifies if a website is vulnerable to Prototype Pollution by performing heuristic scans and checks for specific variables in the global context. Upon finding a vulnerability, it fingerprints known gadgets to determine the appropriate exploitation method and displays the final XSS payload that can be used.

URL
satori://web/ppmap.yml
Example
satori run satori://web/ppmap.yml -d URL="https://satori.ci" --report --output
web

Security.txt: Security contact and disclosure policy check

debian

Checks if a domain publishes a security.txt file (RFC 9116) at /.well-known/security.txt. Presence indicates a mature security program with defined vulnerability disclosure processes, security contacts, and often a bug bounty program.

DOMAIN
satori://web/security-txt.yml
Example
satori run satori://web/security-txt.yml -d DOMAIN="cloudflare.com" --report --output
web

sqlmap: automates the process of detecting and exploiting SQL injection flaws

python

sqlmap automates the detection and exploitation of SQL injection vulnerabilities in web applications. It identifies injection points, extracts database information, and supports various attack techniques, including data retrieval, privilege escalation, and file system access.

URL
satori://web/sqlmap.yml
Example
satori run satori://web/sqlmap.yml -d URL="http://testphp.vulnweb.com/listproducts.php?cat=1" --report --output
web

Strix - LLM Pentesting

ghcr.io/usestrix/strix-sandbox:1.0.0

Runs Strix (usestrix/strix), the AI-powered automated pentesting agent, entirely inside the Satori container via a custom unix_local runtime backend (from satoridev01/strix). Runs on Strix's OFFICIAL Kali sandbox image so the full toolset (agent-browser+chromium, nuclei, httpx, nmap, semgrep, ...) is present. Driven by Claude Sonnet 4.5 via OpenRouter (1M-token context to avoid mid-scan context-overflow crashes, with Anthropic prompt caching for cost). No Docker-in-Docker required.

OPENROUTERHOSTMODE
satori://web/strix.yml
Example
satori run satori://web/strix.yml -d HOST="http://zero.webappsecurity.com" -d MODE="quick" -d OPENROUTER=$OPENROUTER --output --test strix:run:stdout
web

Qualys SSL Labs: SSL/TLS configuration assessment

debian

Assesses SSL/TLS configuration quality using the Qualys SSL Labs API. Reports grade, certificate details, protocol support, and known vulnerabilities like BEAST, POODLE, and Heartbleed.

DOMAIN
satori://web/tls/ssllabs.yml
Example
satori run satori://web/tls/ssllabs.yml -d DOMAIN="quorumcyber.com" --report --output
web

SSLScan: Identify security issues related to SSL/TLS/HTTPS services

debian

It reports the protocol versions, cipher suites, key exchanges, signature algorithms, and certificates in use.

HOST
satori://web/tls/sslscan.yml
Example
satori run satori://web/tls/sslscan.yml -d HOST="satori.ci:443" --report --output
web

TestSSL: Checks TLS/SSL ciphers and protocols for security flaws

debian

Check a server's service on any port for the support of TLS/SSL ciphers, protocols as well as some cryptographic flaws.

URL
satori://web/tls/testssl.yml
Example
satori run satori://web/tls/testssl.yml -d URL="https://satori.ci" --report --output
web

TLSX: TLS grabber

debian

TLSX is a command-line tool designed for comprehensive TLS data collection and analysis. It supports multiple connection modes, customizable cipher suites, and SNI configurations. TLSX can enumerate supported TLS versions and ciphers, detect misconfigurations such as expired or self-signed certificates, and generate JARM and JA3 fingerprints. It accepts various input formats, including IP addresses, domain names, and CIDR ranges, and outputs results in text or JSON formats. TLSX is suitable for security assessments and network diagnostics.

HOST
satori://web/tls/tlsx.yml
Example
satori run satori://web/tls/tlsx.yml -d HOST="satori.ci" --report --output
web

Urldedupe: deduplicates a list of similar URLs

debian

Pass in a list of URLs with newlines, and get back a list of deduplicated (unique) URL and query string combination

URL
satori://web/tools/urldedupe.yml
Example
satori run satori://web/tools/urldedupe.yml -d URL="https://google.com/home?qs=value\nhttps://google.com/home?qs=secondValue" --report --output
web

Webscreenshot: screenshot a list of websites

python

webscreenshot captures screenshots of multiple websites by rendering them using headless web browsers. It supports bulk URL input and can take screenshots in parallel, making it useful for reconnaissance and monitoring.

URL
satori://web/tools/webscreenshot.yml
Example
satori run satori://web/tools/webscreenshot.yml -d URL="satori.ci" --report --output
web

Transilience - LLM Pentesting

kalilinux/kali-rolling

Runs an autonomous web-app penetration test by driving the Claude Code CLI headlessly inside the container with the transilienceai/communitytools security skills (/pentest: recon -> injection/XSS/SSRF/auth -> validation -> CVSS report). Claude Code talks to OpenRouter via its native Anthropic Skin (ANTHROPIC_BASE_URL=https://openrouter.ai/api), so no proxy is needed. Pick the model with -d MODEL (e.g. anthropic/claude-haiku-4.5 cheap, or anthropic/claude-sonnet-4.6 for higher coverage).

OPENROUTERMODELHOST
satori://web/transilience.yml
Example
satori run satori://web/transilience.yml -d HOST="http://zero.webappsecurity.com" -d MODEL="anthropic/claude-sonnet-4.6" -d OPENROUTER=$OPENROUTER --output
web

TWA: Tiny Web Auditor

debian

twa audits web security headers and configurations. It checks for issues such as HTTP redirects to HTTP, missing security headers, and the absence of Content-Security-Policy. Findings are categorized into levels to indicate severity and status.

HOST
satori://web/twa.yml
Example
satori run satori://web/twa.yml -d HOST="satori.ci" --report --output
web

uro: remove uninteresting/duplicate URLs

python

uro extracts and deduplicates URLs from input data by normalizing and filtering them based on predefined rules. It removes duplicates, standardizes formats, and ensures cleaner URL lists for further processing.

URL
satori://web/uro.yml
Example
satori run satori://web/uro.yml -d URL="https://satori.ci/page/1/" -d URL="https://satori.ci/page/2/" --report --output
web

WAFW00F: identify and fingerprint Web Application Firewall (WAF) products protecting a website.

python

wafw00f detects and identifies web application firewalls (WAFs) by sending crafted HTTP requests and analyzing responses. It determines the WAF vendor and provides insights into possible firewall rules and protections.

URL
satori://web/wafw00f.yml
Example
satori run satori://web/wafw00f.yml -d URL="satori.ci" --report --output
web

Wapiti: Web vulnerability scanner

debian

Wapiti is a web vulnerability scanner that performs black-box testing to identify security issues like SQL injection, XSS, file inclusion, command execution, and more by crawling and injecting payloads into web applications.

URL
satori://web/wapiti.yml
Example
satori run satori://web/wapiti.yml -d URL="https://example.com" --report --output
web

Wappalyzer: identifies technologies on websites, including content management systems, eCommerce platforms, JavaScript frameworks, analytics tools and more

node

Wappalyzer identifies technologies used by websites by analyzing their responses, headers, and scripts. It detects frameworks, CMS platforms, programming languages, analytics tools, and more, providing insights into a site’s tech stack.

URL
satori://web/wappalyzer.yml
Example
satori run satori://web/wappalyzer.yml -d URL="https://satori.ci" --report --output
web

WebAnalyze: a port of Wappalyzer in Go to be performant and allows to test huge lists of web hosts

debian

Webanalyze detects and identifies technologies used by websites by analyzing their responses and matching them against fingerprints from the Wappalyzer database. It supports scanning multiple targets and provides structured output for further analysis.

HOST
satori://web/webanalyze.yml
Example
satori run satori://web/webanalyze.yml -d HOST="satori.ci" --report --output
web

WPScan: WordPress security scanner

ruby

WPScan scans WordPress installations for known vulnerabilities, outdated plugins and themes, weak passwords, and security misconfigurations. It enumerates users, plugins, themes, and checks against the WPScan Vulnerability Database.

URL
satori://web/wpscan.yml
Example
satori run satori://web/wpscan.yml -d URL="https://example.com" --report --output
web

Xalgorix - LLM Pentesting

golang

Run xalgorix autonomous pentesting agent against a target

MODELOPENROUTERHOST
satori://web/xalgorix.yml
Example
satori run satori://web/xalgorix.yml -d HOST="http://zero.webappsecurity.com" -d MODEL="openrouter/anthropic/claude-sonnet-4.5" -d OPENROUTER="$OPENROUTER" --output
web

OWASP ZAP: Dynamic Application Security Testing

ghcr.io/zaproxy/zaproxy:stable

OWASP ZAP (Zed Attack Proxy) is the world's most widely used DAST scanner. It automatically finds security vulnerabilities in web applications by crawling and actively testing for issues like XSS, SQL injection, CSRF, and misconfigurations.

URL
satori://web/zap.yml
Example
satori run satori://web/zap.yml -d URL="https://example.com" --report --output
web

ZGrab: network scanner

golang

ZGrab is a fast, modular application-layer network scanner designed for completing large Internet-wide surveys. ZGrab is built to work with ZMap (ZMap identifies L4 responsive hosts, ZGrab performs in-depth, follow-up L7 handshakes). Unlike many other network scanners, ZGrab outputs detailed transcripts of network handshakes (e.g., all messages exchanged in a TLS handshake) for offline analysis.

HOST
satori://web/zgrab2.yml
Example
satori run satori://web/zgrab2.yml -d HOST="satori.ci" --report --output
Satori Playbooks Catalog Powered by the Playbooks API