
Linux privesc enumerator that confirms exploitability and gives you the exact root shell command - no GTFOBins searching. MCP server + AI-agent skills included.
A Linux privilege-escalation scanner that confirms what is actually exploitable
and hands you the exact command to become root.
powered by tmrswrr
Why • Demo • Quick start • AI / MCP • What it checks • Usage
Most enumeration tools dump hundreds of "maybe interesting" lines and leave the hard part to you: figuring out which ones are real, then searching the web for a working exploit.
confirmesc does the opposite. It verifies each finding directly against the
live system, labels it with an honest confidence level, and for every
confirmed vector it prints a ready-to-run command that actually gets you a
root shell. No guessing which of 200 lines matter, and no opening GTFOBins
in another tab to look up the payload.
Built for pentesters, CTF / Hack The Box players, and system administrators who want a clear answer to one question: can this box be escalated right now, and how?
| Classic enumerators (LinEnum, linPEAS) | GTFOBins (reference site) | confirmesc | |
|---|---|---|---|
| Lists suspicious items | Hundreds of lines | - | Only what matters |
| Confirms it is exploitable on this box | No | No | Yes, verified live |
| Gives the exact exploit command | No | Look it up by hand | Yes, ready to paste |
Handles the dash/bash privilege drop | No | Often fails | Yes |
Proves root for real (euid == 0) | No | No | Yes, with --poc |
| Honest confidence levels | No | - | CONFIRMED / LIKELY / INFO |
| AI agent integration (MCP + skills) | No | No | Yes |
Five things set it apart:
It confirms, it does not guess. A finding is marked CONFIRMED only when
the exploitable condition itself was directly observed on the running system:
a real SUID bit on a known binary, a real dangerous capability, an authorized
sudo -l rule, a genuinely writable root-owned file. Not "this version is
probably vulnerable."
It gives you the payload, so you never search for it. Every confirmed SUID / sudo / capability vector ships with a copy-paste command that spawns an interactive root shell. No opening GTFOBins, matching the technique, and adapting a one-liner by hand - confirmesc already did that.
Its commands work on modern boxes. On current Debian-based systems,
/bin/sh is dash, and both dash and bash silently drop root the moment they notice
euid != ruid. Many copied GTFOBins one-liners fail because of this.
confirmesc generates commands that account for it (explicit setuid(0),
bash -p, or a direct exec()), so the shell you get is really root.
It can prove root, live. With --poc it runs the real escalation payload
and checks that the resulting process truly has euid 0, turning
"exploitable in theory" into "we got root just now."
It is AI-agent-ready. confirmesc ships an MCP server and a set of skills, so an AI agent can run the scan as a tool and follow a built-in methodology to act on the confirmed findings - AI-assisted privilege escalation, end to end. See AI agent integration.
An unprivileged user runs confirmesc, gets three CONFIRMED vectors each with
a ready-to-run root shell, pastes one, and lands a root shell - recorded live in
the testlab/ Docker sandbox.
git clone https://github.com/capture0x/confirmesc
cd confirmesc
python3 -m pip install -e .
confirmesc # passive scan of the current box, readable text report
Read the top of the report. The ACTIONABLE FINDINGS section lists every
CONFIRMED vector, each with a highlighted root shell: line you can copy and
run. That is the whole workflow: scan, read the confirmed findings, run the
command.
The process exit code is 1 when any CONFIRMED finding exists and 0
otherwise, which makes it easy to use in CI or CTF automation.
confirmesc is built for AI-assisted privilege escalation. It ships two optional pieces that let an AI agent drive it over the Model Context Protocol: the scan becomes a callable tool, and a set of skills gives the agent a built-in methodology to act on the confirmed findings. The agent runs the scan, reads the confirmed vectors, and already has the exact root command for each one - no manual triage, no searching for payloads.
confirmesc-mcp exposes scanning over the Model Context Protocol. An agent
lists the tools, calls scan, and gets structured findings back, each
CONFIRMED one already carrying its ready-to-run exploit command:
Tools exposed:
scan - run a passive/active scan and return structured findings (with the exploit_command for each confirmed vector)report - run a scan and return a rendered report as text, json, or htmllist_privesc_checks - list the available checks by categoryLive exploitation (--poc) is deliberately not exposed: confirming
conditions is safe to automate, but running escalation payloads stays an
operator decision.
pip install -e ".[mcp]"
confirmesc-mcp # serve over stdio
Point any MCP client at it with a standard stdio server config:
{
"mcpServers": {
"confirmesc": { "command": "confirmesc-mcp" }
}
}
The skills/ directory holds playbooks an AI agent loads to work through each
vector class. There is one skill per confirmesc finding type, plus an
orchestrator: