Umbra
← All docs

Internal pentest assessments

One click. A whole catalog of techniques fires against every live service the agent has discovered. Three safety tiers, one rollup view, every finding tagged by the technique that produced it.

Last updated May 29, 2026

What it is

An assessment is a one-click, AI-orchestrated internal pentest. You pick an installed agent and a safety tier; Umbra iterates every live service that agent has already discovered and, for each one, fires the catalog of techniques whose conditions match the service’s port + product + the tier you chose.

Each technique runs as its own AI exploit run under the assessment’s umbrella. Their statuses, costs, and findings roll up into the parent assessment row’s progress view. One button, an entire engagement.

What it produces

Per assessment:

  • One parent row with overall progress (queued / running / done / cancelled / error), aggregate cost, total findings, plus the safety tier and the agent it ran against.
  • N child AI runs: one per matched (service × technique). Each child is a normal AI exploit run with full transcript, replay, and per-run cost. Tagged with technique:<id> so you can filter the findings page for a single technique across all assessments.
  • A per-technique rollup card on the detail view: done / running / errored counts + findings per technique, with click-through to the run transcript.
  • For AD-aware techniques (ad_recon), structured findings populate the AD attack-graph view: principals, group memberships, and BloodHound-vocabulary edges.

The technique catalog

The catalog ships with 80+ techniques today, spanning far more than credential spraying. It’s a full internal red-team playbook:

  • Active Directory: LDAP enumeration, AD attack-graph reconnaissance, Kerberoasting, AS-REP roasting, ADCS ESC1–ESC8 certificate abuse, ACL / delegation auditing, coercion & NTLM relay, Zerologon, GPP passwords, LDAP signing, RPC dump.
  • Windows / domain services: SMB enumeration + default creds, MS17-010 & SMBGhost, WinRM, RDP, SCCM, Exchange, registry, backup infrastructure.
  • Databases: MSSQL, MySQL, PostgreSQL, Oracle TNS, MongoDB, Redis, CouchDB, Elasticsearch, Memcached, etcd (default-cred and unauth-access probes).
  • Infra & network protocols: SSH, Telnet, FTP, TFTP, NFS, SNMP, SMTP, DNS (AXFR), NTP, VNC, VPN, rsync, TLS posture, network segmentation.
  • Cloud & identity: Microsoft 365 / Entra posture, identity-provider auditing, hybrid-identity, cloud lateral movement, CI-platform auditing, Kubernetes / kubelet, Docker daemon, secret sprawl & history.
  • Virtualization & OT/ICS: VMware, IPMI / BMC, printers (PJL, IPP/CUPS), Modbus and other ICS probes, mDNS, X11.
  • Web: fingerprint + Nuclei templates, web-admin default credentials, and the full AI auto-exploit chain.

The catalog is the same source of truth for all three launch surfaces. Adding a new technique is one append-only entry in Go; every surface picks it up on next deploy with no extra work.

Safety tiers

Each technique declares a minimum tier. The assessment fires only the techniques whose minimum tier is ≤ the operator-selected tier.

  • Safe: enumeration only. SMB / LDAP / SNMP banners, ADCS template walk, HTTP fingerprint, FTP anonymous, AD reconnaissance. No authentication attempts. Zero lockout risk. Safe to run on production any day of the week.
  • Active: Safe + default-credential attempts at low rate, with lockout-aware backoff and stop-on-first-locked-account behaviour. AS-REP roasting (collects crackable blobs, doesn’t crack). Nuclei detection templates. Light SIEM noise.
  • Aggressive: Active + Kerberoasting, full AI auto-exploit chain, exploit-class Nuclei templates. Account-lockout risk. Generates 4769 / 4625 SIEM events the customer’s security team will see. Opt-in only.

The tier you pick is enforced server-side. Even when you build a custom run and tick specific techniques, the tier ceiling still applies. A Safe assessment cannot fire an Aggressive technique because the operator picked a checkbox.

Three ways to launch the catalog

  • Run assessment: the headline path. Pick a tier, pick an agent, fan everything matching out. Used by most operators most of the time.
  • Custom run…: same catalog, but you tick the exact techniques to fire. Useful when a compliance scope restricts the engagement (“only enum, only smb_enum + ldap_enum”). The tier still acts as a safety ceiling above the checkboxes.
  • Per-service click-to-try: open any service drawer; the chip row under the header fires one technique at a time against just that service, without launching a full assessment. For when you already know exactly what you want to try.

What runs before the catalog fans out

  • Reachability preflight. One TCP probe against the first matched service through the same routing the AI would use. If the agent isn’t answering, the launch is rejected with a 422 and a friendly dialog telling you whether it’s an agent stall, a port closed, or a filter, so you don’t burn credits on hundreds of dead-end runs against a wedged agent.
  • Plan + balance gate. Every child run is conservatively estimated as one full AI exploit run. If the org’s bundled credits
    • paid balance don’t cover the worst case, the launch is blocked with the standard paywall instead of half-firing.
  • Tier-mismatch refusal. If your tier + selection produces zero matching plans, the server returns 422 (“try a higher tier or widen the scope”) rather than insert an empty assessment.

Stopping an assessment

Click Cancel assessment on the detail page while it’s running. The parent flips to cancelled and every still-running child run is cancelled too. Children that already finished stay completed and their findings persist. Cancel doesn’t unwind successful work.

Where the results live

  • The assessment detail view shows per-technique progress with click-through to each child run’s transcript.
  • All findings ingest into the regular Findings page, tagged with technique:<id> so you can filter for a single technique across every assessment ever run.
  • For AD techniques, the AD attack-graph page renders principals and edges as they ingest. The graph keeps growing as new assessments add more reconnaissance.

Why it matters

Most “internal pentest” tooling is one of two shapes: a checklist of nuclei templates the customer has to wire up themselves, or a hosted pentest-as-a-service that schedules a human engagement. Umbra collapses the gap: the AI runs the engagement, the catalog is the playbook, the agent is the network leg, and the findings land in the same dashboard as the rest of your attack-surface intel.

The catalog ships out of the box. The AI engine is the existing verifier you already trust. The agent you already installed for internal discovery is the same agent that carries the assessment. No new install, no new dashboard, no new vendor.

Why it’s valuable

  • One playbook, every surface. The same catalog drives the headline “Run assessment” button, the custom-builder modal, AND the per-service click-to-try chips. No fragmentation between three flows that should agree.
  • Server-side tier ceiling. The safety tier is the contract: the technique catalog can grow forever and the operator can keep picking checkboxes. The org-level tier rule still holds, enforced in Go, not in the UI.
  • Same engine as Verify. Every child run is a normal AI exploit run with the same audit trail, the same cost meter, the same replay viewer. No special-cased assessment runtime that drifts from the rest of the engine.
  • Audit-clean. Every child run carries the parent assessment ID, the technique ID, the operator who launched it, and the tier. The customer can prove what was launched, what fired, what didn’t fire and why, weeks later.
  • Reachability preflight stops cold launches. Going from “I clicked the button” to “the agent isn’t even reachable” takes one TCP probe, not a half-fired assessment with 80 failing children.

How to use it

  1. Install at least one agent on the internal network you want to assess. See the one-line install.
  2. Wait for the first discovery to complete. The assessment uses the agent’s last discovery as its scope.
  3. Open the Assessments page; click Run assessment.
  4. Pick a safety tier and pick the agent.
  5. Watch the per-technique progress card stream live; click any technique row to read the child run transcript.

The (?) button on the page header opens an inline drawer with the live technique catalog (every technique, its tier, its ports, its description) read directly from the API so it stays current with every backend deploy.

Cost is metered against your AI bundled allowance; typical full Safe-tier assessments on a ~50-service subnet are $2 – $8. Aggressive runs scale with how many services match the auto-exploit chain.