Skip to content
Skillpedia
Misc48k · #3976

recon-scope-triage

Lets your agent organize and prioritize security testing results. It helps decide who is responsible for each item before testing.

What it does

This tool helps verify if discovered resources (like websites or code repositories) truly belong to the company you're investigating, before performing security tests. It prevents you from testing things that aren't theirs or accidentally attacking innocent companies.

When to use it

  • ✓When the company name is a common word (e.g., 'Alpha', 'Beta').
  • ✓When receiving lists of potential resources (websites, code, etc.) to investigate.
  • ✓When the number of 'critical' issues seems too high for the company's size.

Example of what to ask your AI

“I need to check if this GitHub repository named 'alpha-api' belongs to Alpha Corp. I have written authorization to test the alpha.com domain.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/recon-scope-triage/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/recon-scope-triage/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool compares the found information against the company's official domain and other trusted sources. If there's a clear, confirmed match, the resource is considered owned by the company. Otherwise, it's flagged as questionable or belonging to someone else.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add sickn33/agentic-awesome-skills --skill recon-scope-triage

Or download just the file:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/recon-scope-triage/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

⚠️ AUTHORIZED USE ONLY This skill is for educational purposes or authorized security assessments only. You must have explicit, written permission from the system owner before using this tool. Misuse of this tool is illegal and strictly prohibited.

Mandatory confirmation gate Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:

  1. Ask the user to state the exact target URL, IP, account, or resource.
  2. Ask the user to confirm written authorization and the permitted scope.
  3. Show the exact command(s) and explain their expected effect.
  4. Wait for explicit confirmation in the current conversation.

Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.

When to use this skill

Trigger when:

  • The target brand is a common/dictionary word or shared term (e.g. apex, summit, vertex, nova, core, orbit, pulse, unity…)
  • You receive an ASM report, recon export, breach combo, repo list, bucket list, or mobile-app list to act on
  • A "Critical" count looks implausibly high (hundreds) for the org's size
  • Any asset's ownership is asserted by the tool but not proven

The two failure modes this skill prevents:

  1. Wasting the engagement testing/triaging assets that aren't the target's.
  2. Attacking an innocent third party that merely shares the name — out of scope, and real harm.

Rule: ownership is guilty-until-proven. An asset is the target's only when a concrete ownership signal ties it to the target — never because a scanner's keyword matched.


The collision sources (where keyword-matching lies)

Recon source How it collides Verify ownership by
GitHub repos Search matched the brand word in repo name / topic / a string Repo owner is the org's GH org; commits from org emails; code references the org's real domains/infra. A repo named <word>-backend by a random user = noise.
Cloud buckets (S3/GCS) Bucket names are a global namespace; <word>-static, <word>-data, <word>-public exist for someone Bucket content references the target; bucket name correlates with a confirmed target subdomain (x.target.com ↔ x-public) AND content matches; ACL/owner metadata. Generic content (other-language, other-industry) = not theirs.
Mobile apps Store search matched the brand word in app name / package Publisher account = the org; package reverse-DNS = an owned domain (com.<owneddomain>.app); dev cert; app calls owned API hosts. Mature ASM tools emit an "apps_accepted=0" / ownership-confidence field — read it.
Breach corpora / combos Email local-or-domain contains the brand word Exact owned-domain match only (@target.com), not @<word>group.com / @something<word>.com. A different domain that contains the word is a different org.
Typosquats Generated permutations of the name These are defensive/brand-protection findings, not offensive scope — note and move on.
Stack/forum/paste hits Brand word in body Body references the target's real domain/subdomain/employee/secret. Ownership-confidence < threshold = drop.

Web "Critical" triage — the soft-404 control

Automated .env / .git / actuator / admin-panel "Criticals" are overwhelmingly soft-404s: SPA/framework catch-alls returning HTTP 200 (or 403) for every path. Verify EACH before believing it:

# the "finding"
curl -s -o /tmp/a -w "%{http_code} %{size_download}\n" https://host.target.com/.env
# a junk control on the same host
curl -s -o /tmp/b -w "%{http_code} %{size_download}\n" https://host.target.com/zzz-nonsense-$RANDOM
# identical byte length / body  →  FALSE POSITIVE (catch-all), discard
cmp -s /tmp/a /tmp/b && echo "SOFT-404 false positive" || echo "differs — investigate"

Real exposures have a content-type + signature that differs from the catch-all (.git/config starts [core]; .env has KEY=value; phpinfo has the XHTML-transitional doctype + PHP Version). A physical .php/phpinfo.php that returns a bigger/different body than the junk control is the real-vs-soft-404 tell.


The triage workflow

  1. Confirm the canonical owned-domain set first (the SOW/program domain + its verified subdomains + the verified Entra/Okta/Google tenant brand name). This is your ownership anchor.

…

FAQ

What are 'soft-404s'?

These are pages that seem to contain information but are actually generic website responses. The tool helps identify if a critical page is real or just a default reply.

What are 'typosquats'?

These are websites or names very similar to the company's, created to trick people. This tool doesn't treat them as targets but rather as something to note for brand defense.

Why is verifying ownership important?

To ensure you are testing the correct company systems, avoiding wasted time on third-party resources, and preventing accidental attacks on other organizations.

Details

Original description by the author

Triage ASM/recon output for ownership before testing

repo: sickn33/agentic-awesome-skills

Popularity

GitHub stars
48k
Ranking position
#3976
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills