ASD

Recon A Domain Passively

Reconocimiento pasivo de extremo a extremo de un dominio, sitio o IP: construye un inventario de registro, DNS, subdominios, infraestructura, stack tecnológico, historial y propietario sin enviar un solo paquete al objetivo.

Estrellas
13

en todo el repo

Actividad
61

0–100, la ruta de este skill

Actualizado
hace 11 días

último commit aquí

Commits
3

últimos 90 días

Contexto
3.4k tok

152 tok en reposo

Paquete
2 archivos

20 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add useosint/osint-skills --skill recon-a-domain-passively --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Orquesta una recon pasiva completa de un dominio: registro/DNS, subdominios, resolución, infraestructura, contenido/stack y atribución del propietario
  • Construye un inventario de activos con timestamps, fuentes y grados de confianza por fila
  • Define reglas de parada y de escalamiento entre etapas para evitar drift activo
  • Enruta selectores de propietario a otras skills (x-ray-a-company, who-really-owns-it, etc.)

Úsalo cuando

  • Investigar o perfilar un dominio o sitio web
  • Mapear qué infraestructura opera una organización
  • Investigar un sitio sospechoso sin alertar a su operador
  • Due diligence técnica en M&A, evaluación de riesgo de terceros o scoping previo a un engagement

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Haz un recon pasivo del dominio meridian-freight.test antes de la adquisición
    • Mapea toda la infraestructura de esta empresa sin tocar sus servidores
    • Investiga este sitio de phishing sin que el operador se entere

    SKILL.md

    En inglés

    Recon a domain passively

    Turn one domain into a defensible map of an organization's internet-facing estate plus the owner behind it. The techniques live in other skills; what this workflow contributes is the order, the inventory, and the stopping rule. Two failure modes to avoid from the start: enumerating for hours and producing 400 hostnames with no attribution, dates or priority, which is not a map; and drifting active without noticing, because one probe "just to check if it's up" ends the passive claim. Decide the passive boundary before step 2, not during it.

    Ordering logic

    Each stage feeds the next, and the sequence is cheapest-and-quietest first:

    Order Stage Why here
    1 Registration and DNS Defines the perimeter. Without the apex set and the registrant you do not know what is in scope
    2 Name expansion Archival sources only. Costs nothing, touches nothing, produces the candidate list everything else consumes
    3 Resolution and inventory Converts names to addresses, which is what infrastructure lookups take as input
    4 Infrastructure and services Needs stage 3's addresses. Third-party scan data only
    5 Content, history, code, tech stack Needs hostnames and org names from earlier stages as search terms, and reuses artifacts already collected
    6 Owner attribution The registrant, tenant and organization names surfaced above are the input

    Run stages 1–5 as a loop, not a line. Every stage produces new selectors that belong back at stage 1 or 2. Stop looping when the stopping rule in step 7 is met.

    Step 1 — Authorized scope

    State in writing: the subject (which domains and netblocks, and which adjacent ones are explicitly excluded), the objective, the jurisdictions involved, and the passive boundary — specifically whether DNS resolution, wordlist brute-forcing and any HTTP contact with the target are permitted. Read ../../ETHICS.md. If being noticed matters, set up attribution hygiene with investigate-without-getting-made before querying anything.

    Done when subject, objective, out-of-bounds list, jurisdiction and passive boundary are written down, and you know which of the three grey activities you may perform.

    Step 2 — Registration and DNS baseline

    Run who-owns-this-domain on every in-scope apex. You want registrar, dates and status, nameservers, the full record set, and the mail and SaaS fingerprints TXT, MX, DKIM and CAA give up. Where registration is redacted, pull historical WHOIS in the same pass.

    Done when every apex has a registration record with a retrieval timestamp, a complete record set, and a list of named third-party vendors extracted from its DNS.

    Step 3 — Expand the name space

    Run find-hidden-subdomains. Certificate Transparency and passive DNS first, because they are free, historical and invisible. Feed it the organization names from step 2 as well as the domains — a certificate-subject search finds sibling and acquired domains nobody put in the brief.

    Done when you have a deduplicated candidate hostname list with the source and first-seen date recorded per name, and any newly discovered apex domains have been pushed back through step 2.

    Step 4 — Resolve and start the inventory

    Classify each candidate: resolves to an address, resolves to a third-party CNAME, or does not resolve. Build the inventory now rather than at the end — retrofitting provenance onto a list you already collected is how findings lose their timestamps. The schema and per-row fields are in reference/asset-inventory.md.

    Done when every candidate is in one of the three buckets with a resolution timestamp, every resolving host has an IP and an ASN, and every third-party CNAME is attributed to a named vendor.

    Step 5 — Infrastructure and services

    Run find-exposed-servers over the addresses and netblocks from step 4. Query scan platforms only — no port scanning, no service probing. Use the certificate and favicon pivots to catch hosts that share the target's infrastructure without sharing its DNS, and note anything that looks unintentionally exposed.

    Done when each in-scope IP has its observed ports and services with scan dates, each netblock has an owner from its RIR record, and any infrastructure found only through cert or favicon pivots has been added to the inventory and attribution-graded.

    Step 6 — Content, history, code and tech stack

    Three sources, in this order:

    • read-deleted-pages for the estate as it used to be: retired hostnames, old staff pages, exposed paths, pre-CDN infrastructure references.
    • google-like-a-spy for what is indexed now on the hosts you found — documents, directory listings, configs, forgotten portals.
    • secrets-in-git-history for the org names, GitHub organization slugs, cloud tenant labels and project IDs surfaced in steps 2 to 5.

    If imagery matters — a logo reused across a network of sites, a stock photo posing as an office — run find-the-original-image. Shared images tie sites together when DNS and registration do not.

    Then assemble the tech stack from what you now hold: headers and cookies in archived copies and scan records, certificate issuers, CNAME targets, JavaScript and asset paths, CSP directives, favicon hashes, and the SaaS fingerprints from step 2. Where you need a live page, read a third-party scan of it instead of fetching it.

    Done when archived and indexed content is reviewed for the top-priority hostnames, code exposure is documented or ruled out, new hostnames have gone back through step 4, and the stack is documented per host with the artifact each conclusion rests on and versions marked claimed rather than verified.

    Step 7 — Decide whether the map is done

    Completeness is a judgement, so make it against criteria:

    • Two consecutive new sources produced no new assets. Saturation, not exhaustion, is the signal.
    • Every discovered name is resolved or classified, and every resolving host has an owner and an attribution grade.
    • Naming conventions have no unexplained gaps: if web01 and web03 are in the inventory, you have accounted for web02.
    • Every named vendor and tenant from step 2 has yielded assets or been ruled out.
    • The objective from step 1 can be answered from the inventory.

    A failing criterion tells you exactly which stage to re-enter.

    Done when all five pass, or the remaining gaps are written up as stated limitations rather than left implicit.

    Step 8 — Hand off the owner

    If the registrant, certificate subject, RIR reassignment or tenant label resolves to a legal entity rather than an individual, the domain work is finished and a corporate investigation starts: hand the entity name and jurisdiction to x-ray-a-company, take registry and beneficial-ownership questions to who-really-owns-it, and send recovered emails to what-an-email-reveals. Do not attempt corporate structure from DNS artifacts — DNS shows operators, not shareholders.

    Done when every owner-side selector is routed to the right skill or recorded as a dead end with the reason.

    Step 9 — Report

    Run write-the-intel-brief. Lead with the asset inventory, then the attribution chain, then anything that appears unintentionally exposed, then the limitations from step 7. Done when every claim traces to an inventory row with a source and timestamp, and every finding carries a confidence grade.

    Where this goes wrong

    • Scope creep through pivots. Enumeration produces sibling domains endlessly and each looks like the next target. If it is not in the step 1 subject list it is a finding to report, not a workstream to start.
    • Silent drift into active. Resolution, brute-forcing and HTTP probing sit on a spectrum, and tools blur it — passive collectors have active modes one flag away, and one careless flag ends the passive claim for the engagement.
    • Inventory without attribution. Shared hosting, CDN addresses and bundled certs attach assets to your target that are not the target's, and an ungraded inventory row is a liability. Relatedly, a vulnerable SaaS tenant the target merely uses is a supply-chain finding and must be phrased as one.
    • Stale data presented as current. Archives, CT and scan records are all historical, and undated findings are not findings.
    • Stopping at the first quiet moment. No new results usually means one source saturated, not the estate mapped — which is what step 7 catches.
    • Over-collection. Staff names from archived pages and SNMP contacts are personal data. Collect what the objective needs, nothing more.

    Confidence grading

    Grade the inventory and the attribution separately. A host can be a confirmed live service and an unconfirmed asset of your target at once, and conflating the two is the most common reporting error in domain recon.

    • Confirmed asset — under a domain whose registration you verified, or on a netblock reassigned to the target by name, or serving a certificate the target demonstrably controls, and corroborated by a second independent source.
    • Probable asset — one strong infrastructure fingerprint (shared DKIM key, same mail tenant label, same provider-assigned nameserver pair, distinctive favicon or body string) with nothing contradicting it.
    • Unconfirmed — shared-hosting or CDN addresses, bundled-certificate names, org:-only attribution, or an aggregator result whose underlying record you have not seen.

    Per-technique criteria in the technique skills override these where more specific.

    Worked example

    Engagement: a client is acquiring meridian-freight.test and wants its internet-facing estate before signing. Scope: the apex plus any domain the registrant demonstrably controls. Boundary: resolution allowed, no brute-forcing, no HTTP contact.

    Step 2: five-year-old registration, registrant redacted but country NL, a Microsoft 365 tenant, and TXT tokens for a support desk, an identity provider and a GitHub organization. That GitHub org name is the highest-value item in the entire record set and it cost one lookup.

    Step 3 returns 74 candidates, and a certificate-subject search surfaces meridian-logistics-group.test, which is not in the brief. Back through step 2: same M365 tenant label in its MX, so same operator. Included, client notified.

    Step 4: 31 resolve, nine of those to third-party CNAMEs — relationships, not assets. uat-portal sits in a small Dutch hosting netblock distinct from everything else, which makes it the lead of the engagement.

    Step 5: that UAT host had 443 and 3306 observed open five weeks earlier. Also eleven hosts sharing a favicon hash, which looked like a hidden estate until the hash turned out to belong to a stock CMS theme — the dead end, and exactly the kind that inflates a report if you skip the check.

    Step 6: a public repo in the GitHub org holds a CI config naming two internal hostnames absent from DNS. They do not resolve; they still matter, because the acquirer inherits those systems.

    Step 7: third consecutive source adds nothing, web02 accounted for, every vendor chased. Complete, with one stated gap — the apex wildcard cert means subdomains issued after it are invisible to CT. Step 8: Dutch registrant country plus the sibling domain plus the group name in the cert subject point at a holding structure, so it goes to x-ray-a-company.

    Pivots out

    Selector Goes to
    Legal entity, group name, jurisdiction x-ray-a-company, who-really-owns-it
    Emails and phone numbers what-an-email-reveals, whose-number-is-this
    Named employees from archives or metadata find-anyone
    Developer handles from repositories hunt-a-handle
    Documents pulled from the estate secrets-in-file-metadata
    Breach exposure for the domain's mailboxes what-leaked-about-you
    The whole asset and entity set, for structure graph-the-network

    Legal and ToS notes

    Passive collection from third-party datasets is lawful research in most jurisdictions; the boundary is traffic to the target and access to non-public systems. Registrant data recovered from historical WHOIS is personal data under GDPR even though it was once public, so you need a lawful basis and must minimize. Scan-platform and archive terms restrict bulk redistribution — cite findings, do not republish datasets. A discovered exposure authorizes a report to the operator or the relevant CERT and nothing else. And in due diligence, confirm you hold the client's written authority for the scope you are running: "our client is buying them" is not authorization from the target.

    Reproducido de useosint/osint-skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere leer ../../ETHICS.md y definir por escrito el alcance autorizado y el límite pasivo antes de empezar; usa varias skills OSINT satélite (who-owns-this-domain, find-hidden-subdomains, find-exposed-servers, etc.).

    Detalles

    Creador
    useosint
    Categoría
    Seguridad
    Licencia
    MIT
    Recursos incluidos
    Incluye scripts o referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de useosint/osint-skills

    Este repo incluye 29 skills. Si instalas uno, normalmente ya tienes los demás.

    Enumera subdominios y dominios hermanos de una organización a partir de logs de Certificate Transparency y DNS pasivo, sin enviar tráfico al objetivo. Cubre crt.sh, campos SAN, subfinder y amass.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    seguridad

    Geolocaliza y crono-localiza una foto o vídeo solo con evidencia visual —matrículas, señales, postes, arquitectura, vegetación y sombras con SunCalc— para verificar dónde y cuándo se tomó.

    Costo de contexto al activarse
    3.9k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    investigacion

    Rastrea aeronaves y buques a partir de emisiones públicas ADS-B y AIS usando ADS-B Exchange, Flightradar24, FlightAware, MarineTraffic, VesselFinder y Equasis.

    Costo de contexto al activarse
    3.6k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    investigacion

    Encuentra hosts, puertos, servicios y dispositivos expuestos en internet usando datos de escaneo de terceros como Shodan y Censys, sin tocar el objetivo.

    Costo de contexto al activarse
    3.3k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    seguridad

    Construye un grafo de análisis de vínculos de una investigación —nodos, aristas tipadas con fuente y confianza, alias, validez temporal— para exponer infraestructura compartida, nodos puente y al principal detrás de un testaferro.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    investigacion

    Verifica si una imagen o vídeo es auténtico, original y está bien titulado: provenance, error level analysis, ruido y compresión JPEG, clonación, sombras, C2PA y señales de IA/deepfake, con los límites reales de los detectores.

    Costo de contexto al activarse
    4k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    investigacion

    Skills relacionados

    Enumera subdominios y dominios hermanos de una organización a partir de logs de Certificate Transparency y DNS pasivo, sin enviar tráfico al objetivo. Cubre crt.sh, campos SAN, subfinder y amass.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    seguridad

    Encuentra hosts, puertos, servicios y dispositivos expuestos en internet usando datos de escaneo de terceros como Shodan y Censys, sin tocar el objetivo.

    Costo de contexto al activarse
    3.3k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    seguridad

    Encuentra selectores filtrados que circulan en pastes, foros de filtraciones, canales de Telegram y mercados de dumps, y evalúa si una filtración reclamada es genuina o una combolist reciclada.

    Costo de contexto al activarse
    3.5k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 11 días
    seguridad