Skip to content

Your first penetration test

This walkthrough takes you from a working Cyberful installation to completing a first penetration test in the terminal interface.

Use Cyberful only against systems you are authorized to test. Before you begin, know the exact targets, exclusions, test window, and traffic limits for the engagement.

1. Confirm the installation

Complete Install Cyberful and confirm that Cyberful, its main provider, and Docker are ready:

cyberful --version
cyberful auth status
docker version

If a check fails, return to What you need before creating the engagement directory.

2. Create an engagement directory

Use a dedicated directory for the engagement. Cyberful will keep its workarea, evidence, logs, and reports below this directory.

mkdir -p ~/cyberful-engagements/acme-web
cd ~/cyberful-engagements/acme-web

You can place non-secret scope notes, API descriptions, sample requests, or architecture diagrams here and attach them from the TUI when writing the mission.

3. Launch the TUI

Start Cyberful from the engagement directory:

cyberful

Before opening the TUI, Cyberful validates settings.yaml, checks the selected Pi provider and credentials, verifies Docker, and prepares its container images. On the first launch it may also download the isolated Chromium browser. The first startup can therefore take longer than later ones.

If the provider is not authenticated or Docker is not running, Cyberful stops with an actionable message. Fix the reported dependency and launch it again.

4. Name the workarea

The home screen asks for a Workarea. Use a short, engagement-specific name:

acme-web-july-2026

The workarea is the durable memory shared by every phase. Cyberful creates it under:

work/acme-web-july-2026/

It will contain the mission, phase artifacts, evidence, proof-of-concept material, and final report. A workarea is a name, not a path, so do not use /, \, or ...

5. Select Pentest

Pentest is selected by default in a standard installation. Check the workflow shown in the composer before starting.

From the home screen, press Tab to cycle through the available workflows, or type /workflows and select Pentest.

The selection is locked when the session starts. A Pentest always begins with Brief and advances through this chain:

brief → recon → exploit → hacker → verify → report

6. Describe the engagement

The first message becomes the input for Brief. State the authorization and scope precisely. For example:

Perform an authorized penetration test for Acme Web.

Objective:
- Validate tenant isolation and authenticated account flows.

In scope:
- https://staging.example.test
- api.staging.example.test

Out of scope:
- Production systems
- Denial-of-service and social engineering

Rules of engagement:
- Test window: 2026-07-20, 08:00–18:00 UTC
- Maximum 5 requests per second
- Do not modify or delete customer data
- Ask before testing third-party integrations

Access:
- A standard test account and a tenant-administrator account are available.
- Credentials are supplied for both accounts; store them as session variables
  and complete ordinary login flows autonomously.

Deliverable:
- Technical findings, executive summary, and remediation guidance.

Include exact URLs, account roles, expected security boundaries, and any steps needed to reproduce the behavior you want tested. Type @ in the composer to attach an existing scope file or other engagement material.

Brief does not run security tests. When you declare one or more existing browser accounts, it makes one normal application visit per supplied profile to verify that the target session is authenticated, visibly distinct where promised, and routed through ZAP. When sufficient credentials were supplied, Brief stores them as session variables and completes the normal login autonomously through host-resolved {{var:name}} references. It opens a blocking OK, retry question only for a human-only challenge, missing second factor, rejected or locked access, unavailable profile, or degraded proxy. Brief rechecks only the failed readiness step and does not create the required MISSION.md or advance to Recon while declared access remains broken.

The same normal journey inventories application dependencies for downstream reasoning. Automatically contacted CDNs, backends, status services, and third parties do not block Recon, but they remain passive evidence rather than direct testing targets unless the supplied authorization independently covers them.

When the mission is clear, submit the message with Enter.

7. Follow the phases

Cyberful advances automatically after each phase writes its required artifact and completes a valid handoff:

Phase What it does
Brief Records scope, authorization, access, and rules of engagement
Recon Maps the surface and calibrates evidence-backed candidates
Exploit Confirms candidates with controlled, reproducible evidence
Hacker Investigates attack chains and higher-order hypotheses
Verify Independently retests every confirmed claim
Report Produces the final client-facing report

The activity feed shows the current phase, public reasoning updates, tool use, warnings, and saved evidence. If Cyberful needs a blocking decision, it opens a question panel in the TUI.

Independent approvals are presented separately. Each approval identifies the host, method, browser identity or credential, expected effect, risk, and traffic bound when applicable, so accepting or declining one request cannot decide an unrelated backend, OAuth, MCP, or credential action.

You can send a message while a phase is running to correct an endpoint, clarify an account state, or tighten a traffic constraint. Submitted input steers the active phase; it does not silently expand the authorized scope.

Press Ctrl+P whenever you need the context-aware list of actions available on the current screen.

8. Open the report

When Report finishes, Cyberful displays a completion card with the validated result. The primary Pentest deliverable is:

work/acme-web-july-2026/reports/security-report.pdf

The same workarea also contains the phase documents and supporting evidence:

MISSION.md
RECON.md
EXPLOIT.md
HACKER.md
VERIFY.md
REPORT.md
evidence/
poc/
reports/

After completion, the session switches to Ask. You can use it to explore a finding, locate evidence, discuss remediation, or plan a follow-up test without losing the completed workarea.

For the responsibilities and boundaries of all three security workflows, continue with Application security workflows.