Exercises › Module 02
Map It, Rank It, Report It
An AI-assisted exercise on attack surface mapping, risk prioritization, and recon reporting. Suggested time: about 55 minutes.
Goal
Use an AI assistant to turn a pile of raw reconnaissance findings into a ranked attack surface table and a short recon report. Then check the AI's work yourself. Evidence before rank, ownership before scope: an inferred finding is a lead to validate, not a top risk, and an asset you don't own isn't yours to test.
Safety rules
- Everything is fictional: Corvane Medical Supply Ltd (client), Ironbark Security Group (testing firm), and TessaraDesk (a SaaS help-desk vendor).
- Use only
.exampledomains and documentation IP ranges (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24). - No real scanning, no real companies or people, no exploit code, no tool commands.
- Never paste real client data into any AI tool.
1 Generate the recon findings
Paste this into your AI assistant. It creates the scope summary and about 15 raw findings. Save the output before moving on.
You are helping me build a fictional training case for an ethical hacking class. Everything must be invented: the client is 'Corvane Medical Supply Ltd', a fictional distributor of hospital supplies with an online ordering portal for clinics. The testing firm is 'Ironbark Security Group'. Use only .example domains (the client's main domain is corvane-medical.example) and documentation IP addresses (192.0.2.x, 198.51.100.x, 203.0.113.x). Do not include exploit code, tool commands, or real people, products, or companies. Create two items: 1) A short Scope Summary: in-scope domain corvane-medical.example and its subdomains hosted by Corvane, the in-scope IP range 203.0.113.0/26, and the statement 'Systems operated by third-party providers are out of scope unless the provider gives written authorization.' 2) A table of 15 raw reconnaissance findings, written as if collected by a junior analyst. Columns: ID (R-01 to R-15), Asset (hostname or IP), Finding (one line), Source type (OSINT, Scan, Enumeration, or Public Records), Evidence (a short description of what was actually observed, or 'none'), Confidence (High, Medium, Low). Mix internet presence, web apps and APIs, remote access, mail/DNS, cloud storage, and people/identity clues (e.g., an employee email naming convention). IMPORTANT, do not label or hint at these anywhere: - Include exactly ONE high-severity-sounding finding that has NO direct evidence. It must be based only on an inference (for example, a job posting mentions a remote-access product, so the analyst assumes an outdated, vulnerable version is exposed). Its Evidence column should describe only the indirect clue, and its Confidence should be Low. - Include exactly ONE asset that is a subdomain of corvane-medical.example but is a CNAME to a third-party SaaS help-desk provider called 'TessaraDesk' (e.g., pointing to corvane.tessaradesk.example), resolving to an IP outside 203.0.113.0/26. Give it a realistic-sounding finding. - All other findings should have real observed evidence with mixed confidence levels.
Tip: if the AI labels or flags either planted item, ask it to regenerate the table without labels, or swap tables with a partner.
2 Map and rank it with AI
Act as the lead analyst at Ironbark Security Group. Using only the scope summary and findings table above: A) Build an attack surface map as a table grouped by category (Internet presence, Web apps/APIs, Remote access, Mail/DNS, Cloud, People/identity). For each finding, mark the relationship as Confirmed or Inferred. B) Score each finding 1-5 for Likelihood (reachability + exploitability), 1-5 for Business Impact, and 1-3 for Confidence (Low=1, Medium=2, High=3). Risk score = Likelihood x Impact x Confidence. Rank all findings from highest to lowest and assign a priority (Critical, High, Medium, Low). C) Draft a one-page recon report: executive summary for non-technical leadership, the top 5 prioritized exposures with evidence, recommended next validation steps, and defensive recommendations.
Watch the #1 item and the asset owner column. The AI doesn't check evidence or ownership for you.
3 Review it yourself, then fix it
Do this review yourself before you ask the AI:
- For every finding, ask: what was actually observed? If the evidence is indirect or "none", it's Inferred, no matter how scary it sounds.
- Recalculate the score of the AI's #1 item using the real confidence. Does it still belong at the top?
- Check every asset against the scope: who operates it, and does it resolve inside 203.0.113.0/26? Watch for CNAMEs to other providers.
- Stretch goal: check that every Confirmed item has evidence a client could verify.
Then fill in the brackets and run:
Revise the attack surface table and recon report: 1) Finding [inferred finding ID] has no direct evidence. Re-label it Inferred, set Confidence to Low, recalculate its score, re-rank all findings, and move it to a 'Needs Validation' list with a safe, authorized validation step. 2) Asset [third-party asset] is operated by TessaraDesk, not Corvane. Remove it from the ranked findings and risk counts, and add an 'Ownership and Scope' note saying it is a third-party asset that needs written provider authorization before any testing, and that Corvane should review the vendor relationship. 3) Update the executive summary and top 5 so they match the new ranking.
Re-read the revision. The AI often leaves the old #1 in the executive summary or keeps the vendor asset in the counts.
Review checklist
- Every finding is marked Confirmed or Inferred, based on evidence, not on how severe it sounds.
- Scores use Likelihood × Impact × Confidence, and the ranking matches the scores.
- No inferred finding ranks above confirmed findings without being flagged for validation.
- Every ranked asset is owned and operated by the client and is inside the scope.
- The executive summary, top 5, and counts all agree with the final table.
Deliverables
- Corrected, ranked attack surface table (with Confirmed/Inferred and scores)
- One-page recon report
- Needs Validation list and Ownership and Scope note
- Two sentences: which finding was over-ranked and why, and which asset was out of scope and how you knew
Grading rubric (10 pts)
| Criterion | Pts |
|---|---|
| Over-ranked inferred finding identified and re-scored, with reasoning | 3 |
| Third-party SaaS asset identified (CNAME/IP evidence) and removed from scope | 3 |
| Confirmed vs. Inferred labels and scores applied consistently; ranking correct | 2 |
| Report is clear, consistent with the table, and has actionable recommendations | 2 |
Answer key (spoilers: finish the exercise first)
What a correct submission shows
- The inferred finding (e.g., "outdated VPN appliance exposed", based only on a job posting) is labeled Inferred with Low confidence, drops well below the top, and is moved to Needs Validation.
- The help-desk subdomain is identified as a CNAME to TessaraDesk, resolving outside 203.0.113.0/26, and is removed from the ranked findings and counts.
- An Ownership and Scope note recommends vendor review and says testing needs the provider's written authorization.
- The executive summary, top 5, and totals all match the corrected table.
Why it matters
- Evidence: Risk = Likelihood × Impact × Confidence. A finding with no evidence can't be a top priority. It's a lead. Reporting it as #1 sends the client after the wrong problem and damages your credibility.
- Ownership: Attack surface mapping includes verifying ownership. A client can't authorize testing of a vendor's platform, even under its own subdomain.
- Still useful: The vendor asset is still worth mentioning as third-party risk (data shared with the vendor, SSO setup, dangling CNAME risk if the account is ever closed). It just isn't a tested finding.
- AI lesson: AI is great at organizing and drafting, but evidence validation and scope decisions stay with the human.
Common mistakes
- Keeping the inferred item at #1 because "VPN = critical".
- Deleting the inferred item instead of moving it to Needs Validation.
- Missing the CNAME and treating every *.corvane-medical.example host as in scope.
- Leaving the vendor asset in the risk counts or executive summary.
- Asking the AI to find the issues before reviewing manually.
Instructor variant (same answer for everyone)
Add this line to the Step 1 prompt and hand out the table:
The inferred finding must be R-07: 'Outdated remote-access VPN appliance likely exposed on vpn.corvane-medical.example', with evidence only from a job posting asking for experience with that VPN product. The third-party asset must be R-12: support.corvane-medical.example, a CNAME to corvane.tessaradesk.example resolving to 198.51.100.77.
Answer: R-07 is inferred and over-ranked (move it to Needs Validation). R-12 belongs to TessaraDesk and is out of scope without the provider's written authorization.
