/Skill-SimpleReconSubdomain
Coleta o máximo de informação (recon/OSINT) sobre um ou mais domínios usando a ferramenta local SimpleReconSubdomain, entregando a saída em JSON por domínio. Use SEMPRE que o usuário quiser investigar um domínio do ponto de vista de segurança — mesmo que diga só "investiga o
$ npx -y skills add MrCl0wnLab/Skill-SimpleReconSubdomain --skill Skill-SimpleReconSubdomain --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/Skill-SimpleReconSubdomain
Context preview
The summary Claude sees to decide when to auto-load this skill.
Coleta o máximo de informação (recon/OSINT) sobre um ou mais domínios usando a ferramenta local SimpleReconSubdomain, entregando a saída em JSON por domínio. Use SEMPRE que o usuário quiser investigar um domínio do ponto de vista de segurança — mesmo que diga só "investiga o
SKILL.md
Skill-SimpleReconSubdomain.SKILL.mdname: srs-domain-recon
description: >-
Coleta o máximo de informação (recon/OSINT) sobre um ou mais domínios usando a
ferramenta local SimpleReconSubdomain, entregando a saída em JSON por domínio.
Use SEMPRE que o usuário quiser investigar um domínio do ponto de vista de
segurança — mesmo que diga só "investiga o domínio X" ou cole uma lista de
domínios. Triggers (PT/EN): "recon do domínio", "fazer recon de", "enumerar
subdomínios", "subdomain enumeration", "mapear superfície de ataque", "attack
surface", "descobrir ativos / asset discovery de um domínio", "OSINT de
domínio", "coletar informações sobre o(s) domínio(s)", "coletar/pegar/listar URLs
do domínio", "collect URLs", "spider URLs", "rodar
SimpleReconSubdomain / simplerecon", "usar/rodar via docker", "no container",
"sem instalar python". Não use para varredura de vulnerabilidade,
exploração, ou scan de porta — isso é outra etapa.
Domain Recon (SimpleReconSubdomain)
Roda a ferramenta local **SimpleReconSubdomain** contra um ou mais domínios. Para cada domínio coleta um **JSON** (subdomínios, hosts vivos, IPs, cloud provider, SANs de certificado, possíveis subdomain takeovers e mapa de rede), converte esse JSON num **relatório Markdown** que é o output da coleta, e ao final **anexa os arquivos `.db`** (além do `.md` e do `.json`) para o usuário baixar.
Subcomando: configurar caminho de instalação
Quando o usuário disser algo como:
> `/srs-domain-recon setar pwd /home/osint/Documentos/SimpleReconSubdomain` > `srs-domain-recon set path C:\Users\user\Documents\SimpleReconSubdomain` > `setar o caminho do simplerecon para …`
Execute **apenas** isso (não rode recon) — use o helper, que grava o caminho (exatamente como digitado) em `settings.json` preservando outras chaves e **não** valida existência (o usuário pode estar configurando antes de instalar):
python3 "<SKILL_DIR>/scripts/resolve_install.py" --set "<caminho fornecido>"
Ele confirma com `Caminho salvo em …: <caminho>`. `<SKILL_DIR>` é o diretório que contém este SKILL.md.
Pré-requisitos (não validar além do necessário)
- O usuário cuida do próprio ambiente: **não** instale dependências, **não** rode
`pip install`, **não** cheque/valide `config/api_keys.json`. Assuma que está pronto.
- A ferramenta acha seu próprio `config/`/`system.db`/`tlds.txt` via `__file__` (independe
do cwd), **mas** os caminhos relativos que você passa (`--outfile`, `--db`, `--brute wordlists/...`, `--resolvers config/resolvers.txt`) são relativos ao cwd → sempre `cd` para o diretório de instalação antes de rodar (ou use caminhos absolutos).
- Interpretador: prefira **`python3.12+`** (recomendado pelo README do tool); cai para
`python3` se não houver. O `requirements.txt` aceita 3.10+. Veja `$PY` no workflow.
Resolução do diretório de instalação
**A cada execução da skill**, resolva `INSTALL` chamando o helper — ele faz toda a precedência e sai com erro (exit 1) se nada servir:
INSTALL="$(python3 "<SKILL_DIR>/scripts/resolve_install.py")" || exit 1
Precedência aplicada pelo helper: 1. `<SKILL_DIR>/settings.json` → `simplerecon_install`, se não-vazio. 2. Senão, padrão por plataforma: Linux `~/Documentos/...` (depois `~/Documents/...`), macOS `~/Documents/...`, Windows `%USERPROFILE%\Documents\SimpleReconSubdomain`. 3. Valida que o diretório existe **e contém `simplerecon.py`**.
Se falhar, ele já imprime no stderr o caminho tentado e a dica de `--set` — basta abortar (o `|| exit 1`). Em PowerShell: `$INSTALL = python3 "<SKILL_DIR>/scripts/resolve_install.py"; if ($LASTEXITCODE) { exit 1 }`.
Entrada
A entrada é um domínio ou vários. Antes de rodar:
- Normalize cada alvo para o domínio nu: remova `http(s)://`, `www.`, caminho, porta e
barra final (ex.: `https://www.exemplo.com/login` → `exemplo.com`).
- Trate uma lista (vírgula, espaço, quebras de linha, ou um arquivo colado) como N alvos.
Workflow
Rode **um processo por domínio** em loop. Isso mantém cada JSON isolado e dá a cada domínio o seu próprio `--db` persistente — atendendo a "diferenciar os domínios e processos". (Para uma run única consolidada, dá pra usar `-l lista.txt`; veja o final.)
# SKILL_DIR = diretório onde está este SKILL.md (resolvido pelo agente antes de rodar)
SKILL_DIR="<caminho desta skill>"
# Interpretador: prefere python3.12 (README do tool), cai para python3.
PY="$(command -v python3.12 || command -v python3.13 || command -v python3)"
[ -n "$PY" ] || { echo "[!] Python 3.12+ não encontrado"; exit 1; }
# INSTALL via helper (settings.json → padrão de plataforma → valida simplerecon.py).
INSTALL="$("$PY" "$SKILL_DIR/scripts/resolve_install.py")" || exit 1
cd "$INSTALL" || { echo "[!] Instalação não encontrada em $INSTALL"; exit 1; }
mkdir -p results/json results/db results/md results/html
STAMP="$(date +%Y%m%d-%H%M%S)"
for DOMAIN in exemplo1.com exemplo2.com; do
echo "[*] Recon: $DOMAIN"
# Monta o comando num array e roda — assim o mesmo comando vai pro relatório (--cmd).
CMD=( "$PY" simplerecon.py
-d "$DOMAIN" --profile full --verify-live --network-map --timeout 60 -v 3
-o json
--outfile "results/json/${DOMAIN}_${STAMP}.json"
--db "results/db/${DOMAIN}.db" )
"${CMD[@]}"
# JSON → Markdown (o "output da coleta", legível). O --db é linkado no topo do
# relatório (junto do JSON e, se gerado, do HTML) — só entra se o arquivo existir.
# O --cmd registra o comando exato da run na seção "Comandos executados".
"$PY" "$SKILL_DIR/scripts/json_to_md.py" \
"results/json/${DOMAIN}_${STAMP}.json" \
-o "results/md/${DOMAIN}_${STAMP}.md" \
--db "results/db/${DOMAIN}.db" \
--cmd "${CMD[*]}"
doneDefina `SKILL_DIR` com o caminho real desta skill (onde estão `scripts/json_to_md.py` e `scripts/resolve_install.py`).
Por que cada flag, no modo "máximo de informação" (default):
- `--profile full` → **todas** as fontes passivas **e ativas** (cobertura máxima).
- `--
Read more
name: srs-domain-recon description: >- Coleta o máximo de informação (recon/OSINT) sobre um ou mais domínios usando a ferramenta local SimpleReconSubdomain, entregando a saída em JSON por domínio. Use SEMPRE que o usuário quiser investigar um domínio do ponto de vista de segurança — mesmo que diga só "investiga o domínio X" ou cole uma lista de domínios. Triggers (PT/EN): "recon do domínio", "fazer recon de", "enumerar subdomínios", "subdomain enumeration", "mapear superfície de ataque", "attack surface", "descobrir ativos / asset discovery de um domínio", "OSINT de domínio", "coletar informações sobre o(s) domínio(s)", "coletar/pegar/listar URLs do domínio", "collect URLs", "spider URLs", "rodar SimpleReconSubdomain / simplerecon", "usar/rodar via docker", "no container", "sem instalar python". Não use para varredura de vulnerabilidade, exploração, ou scan de porta — isso é outra etapa.
Domain Recon (SimpleReconSubdomain)
Roda a ferramenta local **SimpleReconSubdomain** contra um ou mais domínios. Para cada domínio coleta um **JSON** (subdomínios, hosts vivos, IPs, cloud provider, SANs de certificado, possíveis subdomain takeovers e mapa de rede), converte esse JSON num **relatório Markdown** que é o output da coleta, e ao final **anexa os arquivos `.db`** (além do `.md` e do `.json`) para o usuário baixar.
Subcomando: configurar caminho de instalação
Quando o usuário disser algo como:
> `/srs-domain-recon setar pwd /home/osint/Documentos/SimpleReconSubdomain` > `srs-domain-recon set path C:\Users\user\Documents\SimpleReconSubdomain` > `setar o caminho do simplerecon para …`
Execute **apenas** isso (não rode recon) — use o helper, que grava o caminho (exatamente como digitado) em `settings.json` preservando outras chaves e **não** valida existência (o usuário pode estar configurando antes de instalar):
python3 "<SKILL_DIR>/scripts/resolve_install.py" --set "<caminho fornecido>"
Ele confirma com `Caminho salvo em …: <caminho>`. `<SKILL_DIR>` é o diretório que contém este SKILL.md.
Pré-requisitos (não validar além do necessário)
- O usuário cuida do próprio ambiente: **não** instale dependências, **não** rode
`pip install`, **não** cheque/valide `config/api_keys.json`. Assuma que está pronto.
- A ferramenta acha seu próprio `config/`/`system.db`/`tlds.txt` via `__file__` (independe
do cwd), **mas** os caminhos relativos que você passa (`--outfile`, `--db`, `--brute wordlists/...`, `--resolvers config/resolvers.txt`) são relativos ao cwd → sempre `cd` para o diretório de instalação antes de rodar (ou use caminhos absolutos).
- Interpretador: prefira **`python3.12+`** (recomendado pelo README do tool); cai para
`python3` se não houver. O `requirements.txt` aceita 3.10+. Veja `$PY` no workflow.
Resolução do diretório de instalação
**A cada execução da skill**, resolva `INSTALL` chamando o helper — ele faz toda a precedência e sai com erro (exit 1) se nada servir:
INSTALL="$(python3 "<SKILL_DIR>/scripts/resolve_install.py")" || exit 1
Precedência aplicada pelo helper: 1. `<SKILL_DIR>/settings.json` → `simplerecon_install`, se não-vazio. 2. Senão, padrão por plataforma: Linux `~/Documentos/...` (depois `~/Documents/...`), macOS `~/Documents/...`, Windows `%USERPROFILE%\Documents\SimpleReconSubdomain`. 3. Valida que o diretório existe **e contém `simplerecon.py`**.
Se falhar, ele já imprime no stderr o caminho tentado e a dica de `--set` — basta abortar (o `|| exit 1`). Em PowerShell: `$INSTALL = python3 "<SKILL_DIR>/scripts/resolve_install.py"; if ($LASTEXITCODE) { exit 1 }`.
Entrada
A entrada é um domínio ou vários. Antes de rodar:
- Normalize cada alvo para o domínio nu: remova `http(s)://`, `www.`, caminho, porta e
barra final (ex.: `https://www.exemplo.com/login` → `exemplo.com`).
- Trate uma lista (vírgula, espaço, quebras de linha, ou um arquivo colado) como N alvos.
Workflow
Rode **um processo por domínio** em loop. Isso mantém cada JSON isolado e dá a cada domínio o seu próprio `--db` persistente — atendendo a "diferenciar os domínios e processos". (Para uma run única consolidada, dá pra usar `-l lista.txt`; veja o final.)
# SKILL_DIR = diretório onde está este SKILL.md (resolvido pelo agente antes de rodar)
SKILL_DIR="<caminho desta skill>"
# Interpretador: prefere python3.12 (README do tool), cai para python3.
PY="$(command -v python3.12 || command -v python3.13 || command -v python3)"
[ -n "$PY" ] || { echo "[!] Python 3.12+ não encontrado"; exit 1; }
# INSTALL via helper (settings.json → padrão de plataforma → valida simplerecon.py).
INSTALL="$("$PY" "$SKILL_DIR/scripts/resolve_install.py")" || exit 1
cd "$INSTALL" || { echo "[!] Instalação não encontrada em $INSTALL"; exit 1; }
mkdir -p results/json results/db results/md results/html
STAMP="$(date +%Y%m%d-%H%M%S)"
for DOMAIN in exemplo1.com exemplo2.com; do
echo "[*] Recon: $DOMAIN"
# Monta o comando num array e roda — assim o mesmo comando vai pro relatório (--cmd).
CMD=( "$PY" simplerecon.py
-d "$DOMAIN" --profile full --verify-live --network-map --timeout 60 -v 3
-o json
--outfile "results/json/${DOMAIN}_${STAMP}.json"
--db "results/db/${DOMAIN}.db" )
"${CMD[@]}"
# JSON → Markdown (o "output da coleta", legível). O --db é linkado no topo do
# relatório (junto do JSON e, se gerado, do HTML) — só entra se o arquivo existir.
# O --cmd registra o comando exato da run na seção "Comandos executados".
"$PY" "$SKILL_DIR/scripts/json_to_md.py" \
"results/json/${DOMAIN}_${STAMP}.json" \
-o "results/md/${DOMAIN}_${STAMP}.md" \
--db "results/db/${DOMAIN}.db" \
--cmd "${CMD[*]}"
doneDefina `SKILL_DIR` com o caminho real desta skill (onde estão `scripts/json_to_md.py` e `scripts/resolve_install.py`).
Por que cada flag, no modo "máximo de informação" (default):
- `--profile full` → **todas** as fontes passivas **e ativas** (cobertura máxima).
- `--
Pacote de skill do Claude Code que ensina o Claude a rodar a ferramenta SimpleReconSubdomain contra um ou mais domínios e entregar a coleta como um **relatório Markdown** legível (além do JSON bruto e da base SQLite).

