Active testing only with written authorisation
~/tholim_
Independent Purple-Team Consultancy

Test what attackers see first.

Offensive testing + defensive hardening, by signed engagement.

  • Manual web pentests, scoped per project
  • Continuous attack-surface monitoring
  • Findings your team can ship the same sprint
Engagement model
Boutique, by referral
Authorisation gate
Signed only
Reporting standard
PTES + OWASP WSTG
Open-source tools
Maintained in public
§01 · The category, in plain language

What "purple-team" actually means.

Two halves, one room. The same engineers do the offensive review and hand the fix back to the team that owns the code — no translation layer between attack and remediation. You get a finding with a working curl, a stack-specific patch, and a re-test ran by the people who broke it. That's the whole pitch.

Red team

Break it like an attacker

Manual offensive review against your live perimeter. Auth bypass, IDOR, injection chains, SSRF, business-logic flaws — reproduced with the request that proves them.

Blue team

Fix it with the engineers

Remediation scoped to the stack we found. Where it's mechanical we open the PR, where it's architectural we pair until it's right. Re-test runs against the patched build before the finding closes.

Purple team
= both, in a single signed engagement, with the same eng owner from finding to sign-off.
§02 · Services

Five practice areas. One operating standard.

Engagements scope and price per project — not retainer-locked, not seat-based. Every report is reviewed by a second pair of eyes before it leaves the practice. Smallest engagement we accept is roughly one calendar week of work.

Manual offensive review of web applications and HTTP / GraphQL APIs against OWASP WSTG and ASVS. Authenticated session testing, business-logic flaws, IDOR, injection chains, SSRF, deserialisation. Findings reproduced with proof-of-concept where impact requires it.

OWASP WSTGASVS L2/L3Burp Suitemanual
from €4,800 · fixed-fee Service detail →

Recurring passive surveillance of your public surface: new subdomains, certificate issuance, exposed services, secret leaks in JS bundles, retired-but-still-online assets, third-party dependency drift. Diff alerts to Slack or email when something changes.

passivesubfindernuclei templatesdiff alerts
from €1,200 / month · retainer Service detail →

AWS / GCP / Azure configuration audit against CIS Benchmarks. IAM misconfigurations, public buckets, exposed metadata, security group sprawl, KMS key hygiene. Walk-through of remediation with the team that owns each control.

CIS BenchmarksProwlerScoutSuiteremediation
from €4,800 · fixed-fee Service detail →

SPF, DKIM, DMARC, MTA-STS, TLS-RPT, BIMI configuration. Anti-spoofing posture review with active spoofing demonstration where authorised. The class of finding that can liquidate a customer base — and the cheapest to close.

SPF / DKIM / DMARCMTA-STSBIMIactive spoofing demo
from €1,800 · fixed-fee Service detail →

On-call assistance when something looks wrong: log triage, scope estimation, containment guidance, evidence preservation. Hand-off to law-enforcement-grade forensics partners when the scope demands it.

log triagescope estimationevidence chainpartner referral
from €150/hr · retainer from €1,500/mo Service detail →
§03 · Approach

Four operating principles that decide what we ship and what we refuse.

A purple-team practice should produce evidence the engineering team can act on within the same sprint. The four principles below are how we keep deliverables grounded in that constraint.

  1. 01

    Reproducible evidence

    Every finding ships with the exact request, response, or capture that proves it. No screenshot-only claims, no "trust the consultant" reports.

  2. 02

    Remediation-grade output

    Findings include a fix path scoped to the stack we found in the audit — not generic OWASP boilerplate. Where appropriate, we open the pull request.

  3. 03

    Reference tools, not reinvention

    We orchestrate Mozilla Observatory, sslyze, RetireJS, ProjectDiscovery's nuclei and subfinder, plus our own native checks. The same tools the public security community already audits.

  4. 04

    Authorisation discipline

    Active testing begins only after we hold a signed authorisation and a verified domain-ownership proof. The authorisation file is timestamped and retained for the engagement lifecycle.

§04 · Research & tooling

What we maintain in the open.

We give back what we use day to day. Our internal tools eventually become public — partly to improve them under outside review, partly because the field works better when the floor is shared.

Open tool · Featured

Tholim Surface Audit

A passive web reconnaissance tool. Eighteen checks orchestrated across Mozilla Observatory, sslyze, RetireJS, ProjectDiscovery's nuclei and subfinder, certificate-transparency logs, OTX, Shodan InternetDB. Signed report, reproducible evidence, twenty-five-second median runtime.

Free · email required for delivery · single HTTPS GET to your origin · everything else queried from public services
In development

Tholim Mobile Audit

APK / IPA static analysis on top of MobSF — same orchestration model as the web surface audit, hooked into our reporting format.

Internal · planned open-source

Continuous monitor agent

Daemon that re-runs the surface audit on a schedule, diffs against a baseline, and pushes deltas to Slack or email. Currently powering our retainer monitoring engagements.

Notes & write-ups

Field journal

Anonymised case write-ups, vulnerability classes we keep finding, and tooling notes. Published when the engagement permits.

§05 · Engagements ledger

A few recent engagements, redacted to the bone.

Client names withheld under engagement terms. Findings categorised here only after remediation; the line below the date confirms when the post-fix verification ran clean. Case-study write-ups available on request.

2026-05-02
remediated
Sector
Crypto-payments / soloplayer
Scope
Surface + email posture
Findings

DMARC absent · TLS 1.0 negotiable · Mozilla F

→ fixed inside 90 min via Cloudflare panel + DNS TXT

2026-04-18
remediated
Sector
B2B SaaS · seed stage
Scope
Web pentest + cloud review
Findings

IDOR on user-export endpoint · public S3 bucket with logs · MFA bypass via OAuth flow

→ patched in two sprints, post-fix scan clean

2026-03-30
remediated
Sector
EU fintech · regulated
Scope
Email & domain hardening
Findings

DKIM key 1024-bit · MTA-STS absent · subdomain takeover candidate on legacy host

→ rotated keys, deployed MTA-STS, decommissioned host

2026-03-12
remediated
Sector
Healthcare / SMB
Scope
Continuous attack-surface monitoring (90-day)
Findings

8 deltas surfaced over the period · most material: exposed staging admin

→ ACL'd within 4 hours of alert

2026-02-21
remediated
Sector
EdTech · series A
Scope
Web pentest + API review
Findings

Mass-assignment on enrollment API · CORS reflection · stored XSS in markdown rendering

→ fixed and re-tested, no regressions

§06 · Get in touch

Tell us what you're shipping. We'll tell you whether we can help.

We reply within two working days with a scoping note, a rough timeline, and a fixed-fee estimate. If the work isn't a fit, we'll say so and refer you to a practice that is.

PGP
key on /.well-known/security.txt
Signal
on request
Locale
EU · remote first · on-site by arrangement

We read everything. Two-working-day reply.

Ready to talk?
2-day reply, fixed-fee scoping
Contact