Skip to content

Human-led, AI-assisted penetration testing

Penetration testing for the grey zone.

Between a clean scan and a breach sits the weakness nobody has proved yet. A GreySurface tester finds it, exploits it inside the rules you agree and hands your engineers the fix.

Certifications held by members of the testing team

  • OSCP, issued by OffSec
  • OSWE, issued by OffSec
  • OSWP, issued by OffSec
  • OSEP, issued by OffSec
  • GXPN, issued by GIAC
  • GWAPT, issued by GIAC
  • eCPPT, issued by INE
  • eMAPT, issued by INE
  • eWPT, issued by INE
  • CPSA, issued by CREST
  • CRTP, issued by Altered Security
  • CRTE, issued by Altered Security
  • AZ-500, issued by Microsoft
  • SC-200, issued by Microsoft
  • Security+, issued by CompTIA
  • CySA+, issued by CompTIA

Certification names and badges belong to their issuers. GreySurface is not affiliated with or endorsed by them.

Terms you can hold us to.

Three things every GreySurface test includes, whatever its size. Scope sets the effort and the price. It never changes these.

  • Every finding, proved.

    A finding reaches your report only when a working exploit shows what it reaches. Dead ends are closed and left out.

    Proof of exploit
    The request and response
    Business risk
    In your board's terms
    The fix
    For the engineer who ships it
    Proof of exploitSampleSample: Acme Corp
    GET /api/invoices/10482Cookie: session=<customer B>200 OK "account": "Customer A"
  • Reply time

    Send what you run, even before the scope is settled. We reply from info@greysurface.com.

    1 business day

    Reply logSampleSample: Acme Corp

    Received FriReplied Mon

  • The retest window

    One retest of the findings we reported, within 30 days of the report.

    30 days

    Retest windowSampleSample: Acme Corp

    Sample: the report, then one retest within 30 days of the report.

A scan lists what might be wrong. A test proves what is.

Automated tools are good at breadth. GreySurface works the other half: access rules, business logic and the small flaws that chain into one path in.

Worked by hand, or dropped.

A tester works each lead until it holds or goes. What reaches your report carries the request and response your team can replay.

See a sample finding
SampleSample: Acme Corp

People decide. AI does the groundwork.

AI speeds up recon, triage and reporting. A tester chooses every lead worth chasing, and a person reviews every finding before it reaches you.

See who does what in a test
SampleSample: Acme Corp

Fixed means retested.

Once your fix is live, a tester reruns the original exploit. The record shows the response before and after, so fixed is something you can show.

See a retest record
SampleSample: Acme Corp

One finding, from first map to verified fix.

Five steps on one sample finding at Acme Corp, a fictional client. Each step names who does the work.

  1. Recon

    We map the surface in scope and AI sorts the leads. A tester decides which are worth the time.

    Recon notesSample: Acme Corp
    • app.acme-corp.comCustomer web app, email sign-in
    • /api/invoices/{id}PickedNumeric ids, one per invoice
    • /api/exportsLeadBuilds a CSV of account data
    • /api/users/meProfile updates, JSON body
    • portal.acme-corp.comOut of scopeStaff portal, single sign-on

    AI sorted the surface. A tester chose which leads to work.

  2. Exploit

    A tester works each lead by hand until one holds. Dead ends never reach your report.

    Tester's noteSample: Acme Corp
    Signed in as customer B
    1. Invoice10481Customer B, their own
    2. Invoice10482Customer A, another customer

    Same session, the next number. Nothing checks who owns the invoice.


    Proved: customer B can read customer A's invoice.

  3. Prove

    We follow the exploit to the data it puts at risk. Only a working exploit makes a finding.

    Attack pathSample: Acme Corp
    1. StartAny customer account
    2. WeaknessNo ownership check
    3. ReachEvery customer's invoices
    4. At riskNames, addresses and amounts
  4. Report

    A person reviews the proof, the risk and the fix. Engineers get the change; leadership gets the risk.

    Sample findingSample: Acme Corp

    HighOWASP API1:2023, CWE-639

    Invoices readable across customer accounts

    Broken object level authorisation

    Request

    GET /api/invoices/10482 HTTP/2Host: app.acme-corp.comCookie: session=<customer B>

    Response

    HTTP/2 200 OK{ "id": 10482,  "account": "Customer A",  "amount_due": "[redacted]" }
    Business impact
    Any signed-in customer can read other customers' invoices by changing one number in the URL.
    Fix
    Check the invoice belongs to the caller's account on every read, in one shared check.
    Reviewed by a person
  5. Retest

    We rerun the original exploit against your fix, so the record shows the fix holds, not only that it shipped.

    Retest resultSample: Acme Corp

    The same request after your fix, as customer B

    Before the fix, statusOpen
    HTTP/2 200 OK{ "id": 10482,  "account": "Customer A",  "amount_due": "[redacted]" }
    After the fix, statusFixed, verified
    HTTP/2 404 Not Found

One report, read four ways.

Your engineers replay the proof and ship the fix. Your leadership reads the risk and the briefing.

Penetration test reportSampleSample: Acme Corp
Finding 1High

Invoices readable across customer accounts

CWE-639Broken object level authorisation
Proof of exploitReady to replay
Request
GET /api/invoices/10482 HTTP/2Host: app.acme-corp.comCookie: session=<customer B>
Response
HTTP/2 200 OK{ "id": 10482,  "account": "Customer A",  "amount_due": "[redacted]" }
Acme Corp, sample reportPage 6 of 12

Testing stays inside limits you agree.

Agreed scopeSample: Acme Corp

In scope

  • app.acme-corp.comCustomer web app
  • api.acme-corp.comPublic API
portal.acme-corp.comStaff portalOut of scope

Scope agreed. Your quote follows.

Live systems, tested safely.

We test live systems by default. Testing begins only after the scope is agreed with you in writing.

  • Agreed scope.Written down before testing starts. Anything outside it is left alone.

  • Your windows.We test only inside the testing windows you agree.

  • One named contact.A person on your side we can reach while testing runs.

  • No destructive actions.We show what a flaw reaches and stop there.

Planning a release or a change freeze? Tell us in the scoping conversation and the windows are agreed around it.

Seven tests. One method.

Each test is led by a tester and ends the same way: proof, the business risk and a fix for every finding.

Before testing starts.

Where does AI help, and where does it stop?

AI speeds up recon, triage and reporting. It never decides what counts as a finding. A tester does, and a person reviews every finding before it reaches you.

How long does a test take?

It depends on the scope. A single web app takes less time than a cloud account, so the timeline is agreed with the scope.

What do you need from us?

The agreed scope, the testing windows and an account for each user role you want covered.

How is a test priced?

On its scope, so there is no list price. A scoping conversation comes first, then the quote.

What does a clean result mean?

That the paths we tried did not work on the dates we tested. The report states what was in scope and what was not, because no test finds everything.

Testing aligned with

  • OWASP Top 10, The most critical web application risks
  • OWASP ASVS, Application Security Verification Standard
  • NIST SP 800-115, Technical guide to security testing and assessment
  • CWE Top 25, The most dangerous software weaknesses
  • MITRE ATT&CK, Adversary tactics and techniques

Aligned with, never certified by. Names belong to their owners; no endorsement implied.

What is sitting in your grey zone?

Start with a rough outline. No exact scope is needed.

Request a quote
  1. Tell us what you runThe systems you want tested.
  2. We reply within one business dayFrom info@greysurface.com.
  3. We agree the scope with youThen we send your quote.