Deploy the autonomous adversary in minutes.
No agents to install, no consoles to wire up. Register, name the objective in plain English, and run one command on a host inside the network you want tested. The clock starts when the adversary connects and stops when the objective is reached.
Deploythe steps
- 1 · register Create an account and your first campaign. Sign up
- 2 · name the objective Describe the objective in plain English: take Domain Admin, read the CEO's inbox, find PII on the finance subnet.
- 3 · deploy Run the command below on a Linux host inside the target network. The clock starts the moment the adversary connects. The command
- 4 · watch the clock The live view fills as the run lands: one line per hop, the run clock ticking against your objective. How to read it
- 5 · subscribe Your discovered host count sets the price. The whole run is visible before you pay; subscribing reveals the target names, the captured proof, and the fix for each weakness. See pricing
the command
one host Create a campaign and you get this command with your campaign token already filled in. Run it once, on any Linux host with Docker that can reach the network you want tested.
docker run --pull always -e AUTOATTACK_API_URL=https://agent.autoattack.ai -e AUTOATTACK_CAMPAIGN_TOKEN=YOUR_CAMPAIGN_TOKEN --stop-timeout 120 -d --rm --network host --cap-drop ALL --cap-add NET_RAW --cap-add NET_BIND_SERVICE --cap-add NET_ADMIN --cap-add SYS_TIME --read-only --tmpfs /tmp --tmpfs /run:exec autoattack/agent:latest
reading the report
a hop One access or credential transition where the adversary gained something it did not have a moment earlier. Probes, reconnaissance and attempts that failed are not hops, which is why the report is shorter than an inventory of everything the run saw, and why every line on it is something that happened. There are six things a hop can gain and no others: a credential, administrator on a host, domain administrator, global administrator, access to a named asset, a class of data.
where it applied Every hop names what it acted on, with the relation written out rather than punctuated: on WEB01, in corp.example, in tenant contoso.onmicrosoft.com, at https://intranet.example/app, in SQL01\PAYROLL, during this assessment run. Those shapes are the whole vocabulary, so a scope is never a target list in disguise.
one line, read across A hop line leads with the technique, and carries a count beside it when the same move landed on more than one target. Beneath the technique sit its two facts — where it applied, and what it gained. So a line reading kerberoast, with corp.example and a credential for svc_backup beneath it, says the adversary ran that technique inside one domain and came out of it holding a password for one service account.
one line, many targets When the same move lands on many targets it is one line carrying an exact count, with the full list of targets beside it. The count is the real number and nothing is rounded or capped. The list beside it is bounded and says what it bounded — a move that landed on four thousand machines names the first ten and states how many more it reached — because four thousand names is the rest of the page pushed past the end of a scrollbar, on exactly the line whose finding is its breadth.
trails, by domain The steps are grouped into trails, one per domain the adversary worked inside — a trail is the chain of steps in that domain, in the order they happened. Everything before the first domain was entered, the reconnaissance and the first way in, leads the report as its network and initial access. A machine the run reached but could not confidently place in a domain stays where it happened, marked unattributed, and is never moved to the front. A trail gets a header only when the run holds more than one — a domain entered from the network, or one domain reached from another. When there is just one trail to show — most plainly an estate with no domains at all — the report is one clean chain with no headers.
each trail's outcome Every domain trail states its own outcome in one plain word, and the run states one overall verdict at the top of the page. A trail whose objective was met reads “reached”; one the adversary worked but did not finish reads “not reached”; a domain the objective never named reads “not applicable to this estate”. The network and initial-access trail shows its position and no verdict — it is a way in, not a target. A trail never reads as reached because a different domain was.
a link between domains Two domains are drawn as connected only when a real, validated trust carried the adversary from one into the other; the line names both domains and the trust it crossed. With no such trust the trails stand apart, even when they share a name or a step. A connection on the page is a trust the run actually traversed, never a guess from a coincidence.
proven, in order Every step on a trail was proven: its evidence sits beside it, and only the steps the run completed appear — attempts and dead ends do not. Inside a trail the order is the dependency, each step opening the way to the next, so the chain reads straight down. A step is tied to an earlier one only when the run truly chained them, so a step is never credited to a credential or an earlier step that did not lead to it.
no separate list Every line is a step that led to something the adversary achieved, so the report is that chain and stops there. The fix that used to sit in its own block now sits on the line where the weakness was exploited, and a weakness present on forty hosts is one line counting forty rather than forty entries. A report with fewer lines than the one you read last quarter is the same run with the duplication taken out.
the verdict The headline is the verdict — one word, no number. It states what the run did about the objective and sits above the objective itself: a run that got there reads “reached”, one that stopped short reads “not reached”, and an objective this estate had nothing to satisfy reads “not applicable to this estate”. Before the adversary connects the word reads “waiting for the agent”, and while it is still working “running”; a run someone ended or that broke reads “stopped” or “failed” rather than not reached, because a run cut off before the question was settled is not one that tried and did not get there. Reaching the objective and proving the route is the whole claim, so no elapsed or time-to-objective figure rides beside it.
when a run stops A run that stopped without reaching the objective leads with one sentence saying why: nothing matching the objective was there, a control on the target stopped the last step, or the run hit the time limit its campaign set. That sentence is the account of the run, not an error message.
what you need
a linux host Any Linux machine inside the target network with Docker installed. The container is ephemeral and read-only. It lives only for the campaign and removes itself when done.
a foothold Network reach to what you want tested, plus outbound HTTPS on 443 to agent.autoattack.ai so the adversary can report back as it goes. It starts where you place it and works outward, exactly as an intruder on that segment would.
nothing else No credentials, no agents on every host, no tuning.