Sploitus

Exploit for vajra

githubexploit Β· 2026-08-29

Exploit Code

README475 lines
## https://sploitus.com/exploit?id=DCE1B782-AD4E-59B9-882D-3AB763737631
```
    β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—      β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
    β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
    β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆ  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
    β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘
     β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘  β•šβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘
      β•šβ•β•β•β•  β•šβ•β•  β•šβ•β•   β•šβ•β•β•  β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•
```

# ⚑ V A J R A

### Automated Penetration Testing Framework

**by `Pintu Kumar Sutradhar`**

`recon` Β· `network` Β· `web` Β· `exploitation` Β· `post-exploitation`

![python](https://img.shields.io/badge/python-3.9%2B-informational)
![deps](https://img.shields.io/badge/core%20deps-zero-success)
![ports](https://img.shields.io/badge/sweep-65535%20ports-critical)
![payloads](https://img.shields.io/badge/payloads-3.8k-orange)



---

> ⚠️ **Authorized use only.** VAJRA is a professional security assessment
> tool. Running it against systems you do not own or lack written permission
> to test is illegal. An authorization gate is enforced on every run.

> 🚫 **Maintainer-only, no contributions.** This repository is published for
> reference and the maintainer's own use. Issues are disabled and external
> pull requests will **not** be accepted.

---

## Highlights

- **Full-spectrum network testing** β€” asynchronous sweep of all 65,535 TCP
  ports with raw-SYN mode, deep binary handshakes (MySQL, MSSQL, SMB2, RDP,
  VNC, PostgreSQL, MongoDB, Redis, memcached, LDAP, SMTP), TLS certificate
  auditing and optional UDP probes.
- **Adaptive web attack engine** β€” 3,800+ payloads across 16 injection
  classes; when a WAF blocks the standard arsenal, fingerprint-specific
  mutation chains (and optionally a local LLM) generate evasions until the
  objective is met.
- **Real exploitation, not just detection** β€” UNION-based SQL injection data
  extraction, live command-execution channels with reverse-session support,
  JWT forgery, SQLi auth bypass, credential spraying, default-credential
  attacks against 20+ platforms.
- **Post-exploitation** β€” system situational awareness through established
  channels, including automated privilege-escalation path analysis.
- **Intelligence built in** — offline banner→CVE correlation across 133
  products, an intel knowledge base (`intel/`: ports Β· services Β· default
  creds Β· login surfaces Β· leak paths Β· cloud Β· os), MITRE ATT&CK tagging on
  every finding, risk scoring with letter grades, and an AI campaign planner
  (opt-in).
- **Workspaces & retest deltas** β€” every run is snapshotted (auto per-target,
  or `--workspace NAME`). Re-running a target surfaces a **new / fixed /
  still-open** delta vs the previous snapshot, logs a running
  **`workspace_report.md`**
  narrative, and lets you export or import findings as JSON for collaboration.
- **Pivoting & multi-hop egress** β€” SOCKS5 and HTTP CONNECT hop chains
  (`tools/pivot.py`, `--socks5`, `rawhttp --connect-proxy`); local SOCKS5
  pivot servers, reverse/direct tunnels, and chain probing between segments.
- **Command & control** β€” standalone multi-session listener with **staged
  payloads**, TLS stagers, payload obfuscation, file exfil/upload markers and
  per-session transcripts.
- **AD privileged depth** β€” beyond hashes: a self-relative **DACL parser**
  (BloodHound-lite) flags WRITE_DAC/WRITE_OWNER/GENERIC_ALL grants and
  dangerous trustees (Everyone, Anonymous, Domain Users…), plus golden /
  silver-ticket forge playbooks.
- **Post-exploitation loot survey** β€” over SSH/every established channel,
  breadcrumb hunting for private keys, cloud creds, kube configs, netrc /
  history and password-adjacent notes (read-only, never downloads).
- **Compliance & synthesis in reports** β€” findings map to **CIS / NIST CSF /
  PCI DSS** controls with a prioritized remediation playbook, an auto-written
  executive narrative, and cross-host campaign ("spread") correlation.
- **Operator toolkit** β€” `tools/` ships 11 standalone stdlib utilities
  (soft-404-aware fuzzer, offline CVE lookups, hash forensics, DNS recon,
  raw HTTP, PoC generator, tooling matrix β€” see `docs/TOOLKIT.md`) plus
  `examples/` for mission playbooks.
- **Zero-mandatory-dependency core** β€” pure standard library operation;
  optional accelerators install cleanly.

---

## Installation

```bash
git clone https://github.com//vajra.git && cd vajra
./setup.sh                     # deps + wordlists + QA suite
python3 vajra.py --selftest    # 37-point verification
```

Runs on stock Python β‰₯ 3.9. Optional extras (`requests`, `paramiko`,
`scapy`, `dnspython`, `ollama`) are listed in `requirements.txt`; every one
has a stdlib fallback.

---

## Usage

```bash
python3 vajra.py -t  [options]
```

| Example | What it does |
|---|---|
| `vajra -t 10.10.10.5 --profile full --aggressive --yes` | complete engagement: all ports, deep tiers, active exploitation |
| `vajra -t https://app.local --yes` | fast application triage |
| `vajra -t 192.168.1.0/24 --udp --syn --yes` | subnet discovery incl. raw SYN + UDP |
| `vajra -t @targets.txt --profile stealth --yes` | low-and-slow batch |
| `vajra -t http://app.local --proxy http://127.0.0.1:8080 --yes` | through Burp |
| `vajra -t 10.0.0.5 --socks5 127.0.0.1:9050 --yes` | egress via SOCKS5 (Tor etc.) |
| `vajra -t https://app.local --workspace app1 --yes` | named workspace for retest deltas |
| `vajra --export-findings findings.json -t 10.0.0.5 --yes` | export merged workspace findings |
| `vajra --import-findings findings.json -t 10.0.0.5 --yes` | import findings β†’ full reports |
| `vajra --listener` | standalone multi-session handler |

Targets: IP Β· CIDR Β· URL Β· comma list Β· `@file`.

Reverse stages (`--aggressive`) request your callback endpoint interactively
at the moment they're needed β€” pre-fill via `--lhost  --lport ` to skip
the prompt.

---

## Profiles

| | ports | wordlists | mutation budget | notes |
|---|---|---|---|---|
| `quick` *(default)* | top-100 | fast tier | 60 / 10 | triage |
| `full` | all 65535 | **complete tiers** | 160 / 28 | time-based blind SQLi |
| `vast` | all 65535 + UDP | **complete tiers** | 320 / 48 | maximum coverage: 400-page crawl, heightened concurrency |
| `stealth` | top-100 | fast | reduced | delays + UA rotation |
| `webonly` | context | fast | standard | application-focused |
| `recon` | top-100 | – | – | intelligence only |

---

## Modules

**Recon** β€” DNS records (+ **AXFR zone-transfer attempt** from authoritative
NS via dig or raw DNS-over-TCP) Β· WHOIS (raw protocol fallback) Β· subdomain
enum Β· email harvest

**Network** β€” async/SYN port scanner Β· service & version detection Β· deep
handshake probes Β· LDAP rootDSE Β· **SMTP audit** (open-relay envelope check
without sending mail + VRFY/EXPN user enumeration) Β· **SMB/NFS share
enumeration** (read-only nmap `smb-enum-shares` / `smbclient -L` /
`showmount -e`, risky NFS-export flagging; pure-stdlib anonymous SMBv1 RAP
NetShareEnum fallback when no SMB tooling is installed β€” never writes,
read-only level-1 walk) Β· **SNMPv1 community sweep** (pure BER GET for
sysDescr/sysName/sysUpTime against a closed wordlist, triggered by a live
161/udp response, read-only β€” no SETs) Β· OS fingerprint Β·
UDP probes (DNS CHAOS / NTP / SNMP) Β· FTP/SSH/HTTP brute-force Β·
**data-driven unauth-exposure sweeps** covering no-auth Redis, raw Docker API
+ Docker Swarm, Memcached stats, Elasticsearch / InfluxDB / CouchDB without
auth, ZooKeeper / Consul / etcd open, Kafka, k8s/kubelet consoles, SMTP
banner leaks (probes catalogued in `intel/services.json`)

**Active Directory** β€” compact SMB exploitation folds SMBv1 dialect +
MS17-010 (EternalBlue) verdict + NTLM challenge fingerprint + pass-the-hash
auth check into one module gated on port 445. Kerberos runs an unauthenticated
pass (KDC user enum + AS-REP roasting) and, with any supplied credentials, an
authenticated pass (real kerberoasting via impacket β†’ hashcat -m 13100).
LDAP mining is dual-pass too: anonymous enumeration always, then a deeper
authenticated pass (adminCount / delegation / no-preauth / computers /
forest trusts) whose LDAP bind result is reported explicitly.

Active chain (`--aggressive` + `--ad-user/--ad-pass/--nthash`): credential
verification unlocks **lateral movement** β€” an impacket psexec β†’ wmiexec β†’
smbexec β†’ atexec command-execution channel on the target that makes
post-exploitation genuinely reachable β€” plus **privilege-scalation ops**:
SYSVOL/GPP `cpassword` theft, an nmap ZeroLogon verdict, DC-Sync NTDS NTLM
dump (hashcat -m 1000, golden-ticket guidance) and a **bounded offline
hashcat crack** of every dumped hash set, reporting recovered plaintext
credentials back into findings. NTLM-relay resources (impacket-ntlmrelayx)
and potato/RDP/delegation hints are dropped for operator run. All of it is
step-and-gated β€” nothing executes without a prior verified signal.

`ad.power` (when a DC's LDAP reach is confirmed) dives one layer deeper:
it pulls raw `nTSecurityDescriptor` blobs for computers, users and groups,
parses each **self-relative DACL**, and flags dangerous grants β€” WRITE_DAC /
WRITE_OWNER / GENERIC_ALL / control-access masks, and risky trustees
(Everyone, Anonymous, Authenticated Users, Domain Users) plus their
discovered object. It never touches ACLs; with NTDS hashes already in state
(from DC-Sync) it emits the exact golden / silver-ticket `ticketer` +
`secretsdump` command lines instead of inventing delegation (`--aggressive`
required).

**Web** β€” crawler (robots + sitemap.xml aware) Β· dirbuster (soft-404 aware) Β·
login-form auth (auto-discovers the form β€” driven by the `intel/login_surfaces`
candidate list β€” handles CSRF + session-cookie
adoption, and drives the whole crawl authenticated β€” see `--web-*` flags) Β·
injection suite routed per parameter/body kind β€” **form, query, JSON and XML
bodies** β€” covering XSS Β· SQLi (error-based + **boolean/time-blind
differential**) Β· LFI Β· command injection Β· **blind RCE via OOB callback** Β·
SSTI Β· NoSQL Β· **XXE whole-body** Β· LDAP/XPath Β· HTTP parameter pollution Β·
open redirect Β· CRLF/header injection Β· **Host-header / web-cache poisoning** Β·
stored-XSS deposit sweep Β· **API surface** (OpenAPI/Swagger discovery,
endpoint inventory, **unauthenticated + base-ID authz sweep catching
BOLA/IDOR and token-less CSRF surfaces**, JWKS algorithm-confusion +
`alg:none`, OAuth/OIDC metadata audit) Β· **blind SSRF + cloud metadata
(OOB-confirmed)** β€” and **`web.ssrf_pivot`: once an SSRF is confirmed, it is
drilled into an internal loopback port scan** (latency + response-differential
heuristic, no exploitation) Β· **`web.race`: TOCTOU / race-condition checks** on
coupon/promo/transfer/0x registration surfaces (near-simultaneous POST bursts,
no burned transaction) Β· **domain-takeover probe** (raw DNS CNAME β†’ dangling) Β·
**rate-limit / account-lockout policy checks** (burn-user bursts) Β·
**upload handling** (traversal / double-ext / null-byte / stored-marker
retrievability) Β· **wire tests** (WebSocket upgrade, CL.TE/TE.CL smuggling
signal, deserialization markers) Β· **cloud exposure** (read-only S3 / GCS /
Azure-Blob bucket listing probes from domain + subdomain candidates) Β· JWT
auditor Β· GraphQL prober Β· prototype pollution Β· WAF fingerprinting Β· tech
stack + version β†’ **built-in CVE correlation** (or `--cve-update` for a live
CIRCL lookup when the offline KB misses) Β· security headers (+ full
CORS matrix, HSTS, cookie SameSite) Β· **TLS audit incl. cert expiry /
self-signed / SAN coverage** Β· DOM-XSS JS sink/source hunting Β· sitemap-consume
crawling Β· JS secret hunting

Blind detections (SSRF, RCE) use an embedded OOB callback listener β€” auto-on
in `full`/`vast`, or `--oob`.

A **sensitive-file checklist** (`web.loot`, driven by `intel/loot_paths.json`)
sweeps classic leak locations β€” `.git/HEAD`+config, `.env*`, backup archives,
`phpinfo.php`, Spring actuator, admin panels β€” with marker-led heuristics and
soft-404 filtering so checked paths are not confused with template 404s.

**Exploitation** β€” SQLi extractor (columns β†’ echo position β†’ version/db/user/
tables) Β· execution-channel negotiation (unix/windows) Β· reverse sessions Β·
full auth-bypass family (25 SQLi/comment/tautology/default pairs + OTP tricks:
drop, weak-code, injection) Β· login-form brute-force (aggressive-gated, caps +
delay, reveals leaks against OTP-protected forms) Β· **catalog-driven default
credentials** (basic-auth panels run read-only; form/service default-cred
tries gated behind `--aggressive`; `intel/creds_default.json` covers Tomcat,
JBoss, WebLogic, WildFly, Jenkins, Grafana, routers, cameras, DBs…) Β·
password spray Β· CVE exposure probes

**Post** β€” identity/kernel/network/logins/accounts/sudo/SUID/cron/env/SSH
material/container hints + privesc candidate analysis β€” runs against every
established channel: injected RCE channels, impacket lateral channels and
reverse sessions.

`post.loot` adds a read-only high-value file survey over any SSH session
(paramiko with discovered creds): private keys, cloud provider creds, kube
configs, netrc / shell history / docker config and password-adjacent notes β€”
reports what is *present and readable* without downloading or modifying
anything; without an SSH transport or creds it logs an info finding instead
of pretending.

---

## Adaptive evasion

```
direct ──blocked?──► fingerprint guard (Cloudflare Β· Akamai Β· Imperva Β·
                                          ModSec Β· AWS WAF Β· F5 Β· Sucuri…)
        β–²                          β”‚
        β”‚            escalate operator chains: inline-comments Β· case-swap
        β”‚            double-encode Β· utf8-overlong Β· null-byte Β· HPP …
        └──── mutant achieves motive? ──► logged per attempt (--ai adds
                                          model-crafted variants)
```

---

## Intelligence

- **CVE knowledge base** β€” 133 products / 183 operator-parsed version ranges
  matched directly against harvested banners (Heartbleed β†’ Log4Shell,
  EternalBlue, ProxyLogon, BIG-IP TMUI, FortiOS, vCenter, Confluence OGNL…).
- **MITRE ATT&CK** β€” every finding auto-tagged with technique IDs.
- **Campaign planner** β€” mid-run next-best-action list combining rule-based
  logic with findings context.
- **Optional AI brain** β€” add `--ai` to involve a local Ollama + **Qwen3 8B**
  (auto-installs; fully offline once pulled). Use `--ai-select` to hand the
  mission to the operator-agent: Qwen3 inspects each target's live state
  (ports, services, web targets, findings) and picks and executes the best
  next action from a closed tool set β€” deeper port probes, re-running
  modules, path fuzzing, PoC crafting, brute force and exploit routing.
  Exploration is always safe; exploitation stays behind `--aggressive`;
  every step is logged to `evidence/ai_mission_log.md`.

---

## Toolkit & knowledge base

`tools/` (stdlib-only, runnable standalone β€” see `docs/TOOLKIT.md`):
`netkit` (async port scan + risk table) Β· `fuzzurl` (soft-404-aware fuzzer) Β·
`cve` (offline CVE lookup) Β· `hashid` Β· `listener` (reverse-session handler;
`--staged/--tls/--obfuscate`) Β· `dnsrecon` (raw-DNS recon + subdomains) Β·
`pivot` (SOCKS5 servers, reverse/direct tunnels, hop-chain probing) Β·
`envcheck` (read-only tooling
matrix vs `config/tooling.json`) Β· `pocgen` (inert PoC evidence templates) Β·
`rawhttp` (raw request builder + `--connect-proxy`) Β·
`wordlists` (inspect/filter/merge).

`intel/` data drives module behavior: `ports.json` (476 ports + risk notes) Β·
`services.json` (probe catalog for `network.service_exposure`) Β·
`creds_default.json` (default-credential catalog for `exploit.creds`) Β·
`login_surfaces.json` (crawler + policy routing) Β· `loot_paths.json`
(`web.loot`) Β· `os.json` Β· `cloud.json` Β· `community_strings.json` (wordlist
for the SNMPv1 sweep) Β· plus `cve_db.json` and `signatures.json`.

`examples/` contains a command cheat-sheet, an end-to-end pentest scenario
playbook and a runtime `example_config.json`.

---

## Wordlists

Deterministically forged (~303k entries, regenerate:
`python3 tools/gen_wordlists.py`):

| Tier | users | passwords | dirs | subs |
|---|---|---|---|---|
| fast (always) | 600 | 2,500 | 1,200 | 1,500 |
| **complete** (`full`/`--aggressive`) | 115,000 | 148,000 | 16,000 | 18,193 |

---

## Output

Results land in `Outputs///` β€” reports (HTML dashboard, JSON,
Markdown, **PDF** β€” clean stdlib PDF writer, paginated + per-severity colour),
SQLite store, full transcript log and an `evidence/` folder of
raw proof dumps per target, plus a run-wide `summary.json`.

Each report now carries the full narrative stack: an auto-written **executive
synthesis** (attack surface, priority signal, exposed web tier), a
**compliance remediation playbook** (every finding cross-referenced to CIS
Benchmark / NIST CSF / PCI DSS 4.0, grouped by severity), a **retest delta**
`vs` the previous workspace snapshot, and cross-host campaign ("spread")
patterns. Workspaces live under `Outputs/workspaces//` (or your
`--workspace` name) β€” latest snapshot, run history, per-target state and a
running `workspace_report.md`.

## Workspaces, retests & collaboration

- Snapshots are taken automatically at run end. Re-running the same target
  produces a delta report (new / fixed / still-open) so an engagement's
  progress is trackable across sessions.
- If you kill a running scan, the workspace snapshot + reports for whatever
  was found are still persisted for already-reported targets, and the run
  summary is written.
- `--export-findings FILE -t ` merges every finding across that
  target's snapshots into one JSON file (finding fields, import-safe).
- `--import-findings FILE -t ` ingests findings from a peer/JSON
  export and renders complete reports (HTML/JSON/MD) without re-scanning β€”
  handy for merging results from another operator or an earlier engagement.

## Pivoting & egress

- `--socks5 HOST:PORT` routes web + raw probes through a SOCKS5 proxy;
  `--proxy URL` does the same for plain HTTP.
- `tools/rawhttp.py --connect-proxy HOST:PORT` walks an HTTP CONNECT
  tunnel for arbitrary raw requests.
- `tools/pivot.py` (stdlib) gives you a full pivot toolbox: local SOCKS5
  servers, reverse/direct tunnels between segments, multi-hop chain probing
  (`socks5://…,http://…`), and a `--probe` mode to validate reachability
  hop by hop. Chain resolution shares the same engine the framework itself
  uses.

## Command & control

`tools/listener.py` / `--listener` is a standalone handler for reverse
sessions: interactive shells, `getfile` / `upload` file transfer commands,
multi-session selection, and **staged payloads** (`--staged`) that shrink the
initial connect payload to a bootstrap that pulls the full stage over the
socket, with TLS stagers (`--tls`) and `--obfuscate` (packed payloads) β€”
`python3 -c "…"` one-liners you can paste directly.

---

## CLI reference

```text
-t, --target          IP | CIDR | URL | comma list | @file
-p, --ports           80 | 22-1000 | top100 | top1000 | extended | all
    --profile         quick | full | vast | stealth | webonly | recon
    --aggressive      deep tiers + intrusive exploitation + reverse stages
    --lhost/--lport   pre-set callback endpoint for reverse stages
    --listener        standalone multi-session handler
    --ai              enable local Ollama+Qwen3 8B brain (opt-in)
    --ai-select       mission mode: Qwen3 picks next actions per target
    --udp             UDP service probes (DNS/NTP/SNMP)
    --syn             raw SYN scanning (root)
    --no-brute        disable credential attacks
    --ad-user/--ad-pass/--nthash   AD creds β†’ authenticated LDAP + real kerberoasting
    --web-user/--web-pass   webapp creds β†’ AUTHENTICATED crawl/scan of the app
    --web-login       explicit login URL (form is auto-discovered otherwise)
    --web-otp         static OTP code for the login flow
    --web-totp-secret base32 TOTP secret β€” RFC 6238 code generated at login
    --import-findings FILE   import findings from JSON file and generate reports
    --export-findings FILE   export findings from workspace to JSON file
-o, --output          output root (default: Outputs/)
    --workspace       name the workspace (default: auto per-target)
    --format          html | json | md | pdf | all
    --socks5 HOST:PORT  egress via a SOCKS5 proxy (web + raw probes route through)
    --cve-update      when the offline KB misses a product:version, query the
                       live CIRCL CVE API (cached in intel/cve_online_cache.json)
    --modules         run only listed modules
    --exclude-modules skip listed modules
    --proxy           HTTP proxy
    --oob             run an OOB HTTP callback listener for blind detections
    --oob-port PORT   fixed local port for the OOB listener (default: ephemeral)
-v/-vv                verbose / trace
    --selftest        internal QA suite
```

## AI-select mission mode

When you add `--ai --ai-select`, VAJRA hands each target to the operator-agent
after the normal phases complete. Qwen3 8B receives a live snapshot β€” open
ports, banners, web targets, API endpoint count, current findings, whether
exploitation is armed β€” **plus the full module catalog** so it can pick any
capability by id. It returns one JSON action from a closed tool set:

`scan_more` (extra TCP probes) Β· `run_module` (any module id) Β· `web_fuzz`
(path hunting; keeps the primary target so sensitive-path checks still run) Β·
`craft_exploit` (PoC generation, saved to evidence) Β· `exploit` (routes routed
to the matching exploit path) Β· `brute` (credential attacks) Β· `ad_chain`
(validated-credential AD movement + DC-Sync / GPP / crack sequence) Β· `assess`
(narrative) Β· `done` (stop).

The free-text fallback understands intent keywords (ssrf, xxe, jwt, api,
idos, buckets, takeover, rate-limit, smuggling, ssti, upload …) and routes
them to the matching module β€” so brief directives are enough. Read-only
triage (CVE exposure probes) is not gated behind `--aggressive`.

Everything is executed by the framework's own safe adapters β€” model text is
never run as code. Exploit/brute/intrusive actions require `--aggressive`;
without it, the agent produces verified read-only plans and reviewable PoCs.
Like the MS17-010 decision earlier in this project, agency stays observable:
each step's rationale, arguments and result land in
`evidence/ai_mission_log.md`, and a fetched reverse session is only delivered
through the existing gated listener.

## Authenticated web scans

Pass `--web-user USER --web-pass PASS` (optionally `--web-login URL`, `--web-otp
CODE` or `--web-totp-secret B32SECRET`) and `web.auth_login` runs *before* the
crawler: it auto-discovers the login form (or uses your explicit URL), pulls a
CSRF token, supplies the OTP/TOTP along with credentials, adopts the returned
session cookie into the HTTP client, and only then hands the site to the crawl
and module stack β€” so every module (dirbuster, injections, JWT, SSRF…) exercises
the authenticated surface. Without credentials, the site is scanned
unauthenticated and the exploit layer still attacks whatever auth systems it
finds: the full 25-pair auth-bypass family plus OTP tricks and aggressive-gated
login brute-force (cap/delay/stop-on-success) that also reports leaks against
OTP-protected forms.

---

## FAQ

**Web-only?** No β€” network services are first-class: full sweeps, binary
handshakes, relay checks, credential attacks across protocols.

**Root required?** No; connect scans work unprivileged. `--syn` needs root.

**Is the AI mandatory?** No β€” fully off unless you pass `--ai`. Everything
else works without it.

**Slow with big wordlists?** Complete tiers only engage under
`full`/`vast`/`--aggressive`, HTTP attacks are threaded with stop-on-success.

---



**Validate every finding before acting. Own everything you test.** ⚑