nc://pentester

v0.1.0Pinned
ThomSharktools/nodecode-pentester: A PTES pentest run: seven stages, nineteen specialists, a task.md and a result.md per finding. - a rewrite of fb0sh/dsh-pentester (MIT), credited to fb0she7e8b57· 10 Nov1 commit
test2 filescell.lisp17.0 KBroster.lisp6.0 KBrun.lisp15.5 KB

nodecode-pentester

Pentester: a PTES pentest run with seven stages, nineteen specialists and a deliverable on disk for each. A Nodecode rewrite of fb0sh/dsh-pentester by fb0sh.

Get it

Tell the agent "add the pentester cell", or run nodecode add nc://pentester.

Set it up

One setting, in the pentester section of ~/.nodecode/config.jsonc: workspace, the directory a run is kept in. ~/.nodecode/pentester is the obvious one. Nothing else is required and nothing is downloaded: the cell reaches no service, and only writes where you told it to.

{ "pentester": { "enabled": true, "workspace": "~/.nodecode/pentester" } }

Use it

Say what you are testing and how the run should work:

Start a pentest run on the staging shop, assets app.staging.example and 10.20.0.5. Written authorization from the owner, weekdays only, no denial of service.

The model then walks the seven PTES stages -- pre-engagement, intelligence gathering, threat modeling, vulnerability analysis, exploitation, post-exploitation, reporting -- with seven tools:

Tool What it does
pentester_run start (target, assets, rules of engagement), status, resume, stop. One run at a time, kept in the workspace.
pentester_delegate Hands a task to one of nineteen specialists; opens task/<NN>-<stage>/<D-00N>/task.md.
pentester_close Closes a delegation with what it found and the assets that result covers; writes result.md beside task.md.
pentester_advance Completes the stage and opens the next one.
pentester_rollback Back one stage. Closed delegations stay closed.
pentester_experts The stages and the nineteen specialists, and the stage each serves.
pentester_exec Runs one command in the current stage's work directory, no shell.

The stage gate. With two or more assets in scope, a stage will not advance until every asset is covered by a closed delegation of that stage; the refusal names the ones that are not. An open delegation covers nothing. With a single asset the stage may advance as it is -- the original's rule, kept as it wrote it.

The specialists are the original's nineteen: recon, threat modeling, vulnerability analysis, web, API and identity, mobile, network, Active Directory, Windows host, cloud, AI and agentic security, source code, reverse engineering, exploitation validation, bug bounty, CTF, forensics, post exploitation and reporting.

The operator types /pentester: bare, it shows where the run stands and a panel whose rows delegate, close, advance, go back, list the roster or stop. /pentester start acme app.example 10.20.0.5, /pentester next, /pentester delegate web prove the reset token expires, /pentester close D-001 it does not. The same is on the manual as (help :pentester), and as Lisp for an eval: (pentester:state), (pentester:advance), (pentester:experts).

Where it writes. Everything is under workspace: run.sexp (the run: target, assets, rules, stages, delegations), task/<NN>-<stage>/<D-00N>/ (each delegation's task.md and result.md, with its evidence beside them), and work/<NN>-<stage>/ (where pentester_exec runs). Nothing else on the machine is touched, and nothing leaves it.

A working session is reminded of where the run stands in one line at every request, once it has worked on that run, so a turn that drifts is told the stage and what is still uncovered.

Only test what you are authorized to test: the rules of engagement are yours to state, and the cell keeps them beside the run.

What the rewrite leaves out

The Docker and SSH runtimes (a command runs here, not in a Kali container), the skill pack the original downloads from its own releases, and its settings screens and MCP bindings. See NOTICE.

Add nc://pentester

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at e7e8b57.

    $ nodecode add nc://pentester

    Or tell the agent add the pentester cell.