Scanning
Auto-Offensive provides three scan modes that match different workflows — from single tool runs to multi-step pipelines. This page explains when to use each mode and how to submit scans.
Overview
A scan is one execution of a tool or pipeline. Auto-Offensive offers three modes:
Basic
Single tool with Light and Deep options. Fast and simple.
Best for: Quick checks, single tool tasks, exploration
Medium
Multi-tools with admin-validated options.
Best for: Custom configurations that need tuning
Advanced
Multi-tool Unix-style pipelines.
Best for: Full reconnaissance, complex workflows
Quick comparison
| Mode | Endpoint | Tools | Options |
|---|---|---|---|
| Basic | POST /scans/basic/submit | 1 | Light and Deep |
| Medium | POST /scans/medium/submit | Multiple | Schema-validated |
| Advanced | POST /scans/advanced/submit | Multiple (pipeline) | Full Unix syntax |
Basic scan
A basic scan runs a single tool with light and deep options. It's the fastest way to test a target.
How to use via UI
- Navigate to the Scans page from the sidebar.
- Click the New Scan button.
- Select Basic as the scan mode.
- Enter your target (e.g., example.com).
- Choose a tool from the dropdown (e.g., subfinder).
- Click Submit Scan.
Medium scan
A medium scan runs a 4 tool and gives you control over options. The backend validates options against the tool's scan_config.medium schema and applies safe defaults.
How to use via UI
- Select Medium as the scan mode.
- Enter your target.
- Choose a tool (e.g., nuclei).
- A configuration form will appear. Adjust the tool-specific options (like Severity, Rate Limit, etc.).
- Click Submit Scan.
Advanced pipeline scan
An advanced scan lets you write Unix-style pipelines where the output of one tool flows into the next. It's the most powerful way to perform full reconnaissance workflows.
Pipeline syntax
Use Unix pipes (|) to chain tools. In the CLI, escape the pipe with a backslash (\|) to prevent your local shell from interpreting it.
How to use via UI
- Select Advanced as the scan mode.
- Enter your target.
- In the Pipeline editor, type your Unix-style command (e.g., subfinder -d example.com | httpx -sc).
- Click Submit Scan.
Supported tools
Auto-Offensive runs 7 industry-standard security tools, all fully managed in sandboxed containers.
| Tool | Category | Purpose | Output |
|---|---|---|---|
| subfinder | Recon | Passive subdomain enumeration | JSONL |
| httpx | Recon | HTTP probing & fingerprinting | JSONL |
| naabu | Network | Fast TCP/UDP port scanning | JSONL |
| nmap | Network | Service detection, OS fingerprinting | XML |
| nuclei | Vuln Scan | Template-based vulnerability detection | JSONL |
| gobuster | Web | Directory & file enumeration | Text |
| gitleaks | SAST | Secret detection in source code | JSON |
Queue & lifecycle
Scans are queued and processed by scalable workers. Each job moves through these states:
| Status | Meaning | Type |
|---|---|---|
| JOB_STATUS_PENDING | Accepted, awaiting queue | Transient |
| JOB_STATUS_QUEUED | In the queue | Transient |
| JOB_STATUS_RUNNING | Currently executing | Transient |
| JOB_STATUS_COMPLETED | Finished successfully | Terminal |
| JOB_STATUS_PARTIAL | Some steps failed | Terminal |
| JOB_STATUS_FAILED | Execution error | Terminal |
| JOB_STATUS_CANCELLED | Cancelled by user/system | Terminal |
Queue management
# Check queue status
GET /scans/advanced/queue/status
# Get position of a queued job
GET /scans/advanced/queue/jobs/{job_id}/position
# Cancel a queued or running job
POST /scans/advanced/queue/jobs/{job_id}/cancelReal-time streaming
While a scan is running, logs are streamed back via Server-Sent Events (SSE). This lets you watch results live, just like running the tool locally.
# Subscribe to step log stream
curl -N https://api.auto-offensive.com/scans/steps/{step_id}/logs/stream \
-H "Authorization: Bearer $AOF_API_KEY" \
-H "Cache-Control: no-cache"
# Event format
event: log
data: {"event_type":"log","data":"api.example.com"}
event: log
data: {"event_type":"log","data":"www.example.com"}
event: done
data: {"status":"stream_ended"}log— Normal log line from the toolstream-error— Error during streamingdone— Stream termination signal