Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
recon — Um poderoso framework de reconhecimento de alvos alimentado por teoria dos grafos. | Kitploit
Ferramentas/GitHubGitHub/pownjs/recon
OSINT (Inteligência de Fontes Abertas)ReconhecimentoMapeamento de RedeEscaneamento de PortasAnálise de VulnerabilidadesColeta de InformaçõesUtilitários e FrameworksInteligência de AmeaçasEnumeração de SubdomíniosAnálise de DNSArchived
42082há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
pownjs/recon

recon

Um poderoso framework de reconhecimento de alvos alimentado por teoria dos grafos.

Ver Repositório

O projeto foi movido para um monorepositório. Veja https://github.com/pownjs/pown para mais informações.

License Follow on Twitter NPM Fury default workflow SecApps

Recon

Recon é um framework de reconhecimento de alvos baseado em grafos de conhecimento. Usar grafos de conhecimento em vez de representação em tabela plana facilita encontrar as relações entre diferentes tipos de informação, o que é muito útil em muitas situações. Os algoritmos de grafos de conhecimento também ajudam na comparação (diffing), busca, encontrar o caminho mais curto e muitas outras tarefas úteis para auxiliar a descoberta de informações e coleta de inteligência.

Créditos

Esta ferramenta faz parte da iniciativa de código aberto do secapps.com.```


/ | / | /_\ | _ \ _ / | _ \ | ( / _ | / /_
|
/
__
// __| || |___/ https://secapps.com

root@kitploit:~
> **NB**: Recon é o resultado de uma cópia quase direta da excelente ferramenta [Recon](https://recon.secapps.com) da SecApps.

## Início Rápido

Esta ferramenta deve ser usada como parte do [Pown.js](https://github.com/pownjs/pown), mas pode ser invocada separadamente como uma ferramenta independente.

Instale o Pown primeiro como de costume:```sh
$ npm install -g pown@latest

Instalar recon:```sh $ pown modules install @pown/recon

root@kitploit:~
Invoque diretamente do Pown:```sh
$ pown recon

Uso Autônomo

Instale este módulo localmente a partir da raiz do seu projeto:```sh $ npm install @pown/recon --save

root@kitploit:~
Depois de concluído, invoque o pown cli:```sh
$ POWN_ROOT=. ./node_modules/.bin/pown-cli recon

Você também pode usar o pown global para invocar a ferramenta localmente:```sh $ POWN_ROOT=. pown recon

root@kitploit:~
## Uso como Biblioteca

O módulo também é uma biblioteca. Consulte o código e os exemplos para ideias de como usar. A documentação está a caminho.

## Uso

> **AVISO**: Este comando pown está atualmente em desenvolvimento e, como resultado, estará sujeito a alterações significativas.```
pown-cli recon <command>

Target recon

Commands:
  pown-cli recon transform <transform>          Perform inline transformation  [aliases: t]
  pown-cli recon template <command>             Recon template commands  [aliases: p, templates]
  pown-cli recon select <expressions...>        Select nodes  [aliases: s]
  pown-cli recon traverse <expressions...>      Traverse nodes  [aliases: v]
  pown-cli recon options <command>              Manage options  [aliases: option]
  pown-cli recon cache <command>                Manage cache
  pown-cli recon add <nodes...>                 Add nodes  [aliases: a]
  pown-cli recon remove <expressions...>        Remove nodes  [aliases: r]
  pown-cli recon edit <expressions...>          Edit nodes  [aliases: e]
  pown-cli recon merge <files...>               Perform a merge between at least two recon files  [aliases: m]
  pown-cli recon diff <fileA> <fileB>           Perform a diff between two recon files  [aliases: d]
  pown-cli recon group <name> <expressions...>  Group nodes  [aliases: g]
  pown-cli recon ungroup <expressions...>       Ungroup nodes  [aliases: u]
  pown-cli recon load <file>                    Load a file  [aliases: l]
  pown-cli recon save <file>                    Save to file  [aliases: o]
  pown-cli recon import <file>                  Import file  [aliases: i]
  pown-cli recon export <file>                  Export to file  [aliases: x]
  pown-cli recon remote <command>               Remote managment  [aliases: remotes, f]
  pown-cli recon layout <name>                  Layout the graph  [aliases: k]
  pown-cli recon summary [options]              Create a summary  [aliases: y]
  pown-cli recon exec <files...>                Execute js file  [aliases: c]

Options:
  --version  Show version number  [boolean]
  --help     Show help  [boolean]

pown-cli recon transform <transform>

Perform inline transformation

Commands:
  pown-cli recon transform bitbucketlistrepos [options] <nodes...>            List Bitbucket repositories  [aliases: bitbucket_list_repos, bblr]
  pown-cli recon transform bitbucketlistsnippets [options] <nodes...>         List Bitbucket snippets  [aliases: bitbucket_list_snippets, bbls]
  pown-cli recon transform bitbucketlistteamrepos [options] <nodes...>        List Bitbucket team repos  [aliases: bitbucket_list_team_repos, bbltr]
  pown-cli recon transform bitbucketlistteammembers [options] <nodes...>      List Bitbucket team members  [aliases: bitbucket_list_team_members, bbltm]
  pown-cli recon transform bufferoverrunsubdomainsearch [options] <nodes...>  Obtain a list of subdomains using bufferover.run DNS service  [aliases: bufferoverrun_subdomain_search, brss]
  pown-cli recon transform certspotterissuances [options] <nodes...>          Obtain issuances from Certspotter  [aliases: certspotter_issuances, csi]
  pown-cli recon transform cloudflarednsquery [options] <nodes...>            Query CloudFlare DNS API  [aliases: cloudflare_dns_query, cfdq]
  pown-cli recon transform crtshcndomainreport [options] <nodes...>           Obtain crt.sh domain report which helps enumerating potential target subdomains  [aliases: crtsh_cn_domain_report, crtshcdr]
  pown-cli recon transform crtshsandomainreport [options] <nodes...>          Obtain crt.sh domain report which helps enumerating potential target subdomains  [aliases: crtsh_san_domain_report, crtshsdr]
  pown-cli recon transform dnsresolve [options] <nodes...>                    Performs DNS resolution  [aliases: dns_resolve, dr, dns]
  pown-cli recon transform dockerhublistrepos [options] <nodes...>            List DockerHub repositories for a given member or org  [aliases: dockerhub_list_repos, dhlr]
  pown-cli recon transform gravatar [options] <nodes...>                      Get gravatar
  pown-cli recon transform hackertargetreverseiplookup [options] <nodes...>   Obtain reverse IP information from hackertarget.com  [aliases: hackertarget_reverse_ip_lookup, htril]
  pown-cli recon transform hackertargetonlineportscan [options] <nodes...>    Obtain port information from hackertarget.com  [aliases: hackertarget_online_port_scan, htps]
  pown-cli recon transform httpfingerprint [options] <nodes...>               Performs a fingerprint on the HTTP server and application  [aliases: http_fingerprint, hf]
  pown-cli recon transform ipinfoiowidgetsearch [options] <nodes...>          Obtain ipinfo.io whois report via the web widget  [aliases: ipinfoio_widget_search, iiiows]
  pown-cli recon transform omnisintsubdomainreport [options] <nodes...>       Obtain omnisint domain report which helps enumerating target subdomains  [aliases: omnisint_subdomain_report]
  pown-cli recon transform pkslookupkeys [options] <nodes...>                 Look the the PKS database at pool.sks-keyservers.net which pgp.mit.edu is part of  [aliases: pks_lookup_keys, pkslk]
  pown-cli recon transform pwndbsearch [options] <nodes...>                   Searching the PwnDB database  [aliases: pwndb_search, pds]
  pown-cli recon transform riddleripsearch [options] <nodes...>               Searches for IP references using F-Secure riddler.io  [aliases: riddler_ip_search, rdis]
  pown-cli recon transform riddlerdomainsearch [options] <nodes...>           Searches for Domain references using F-Secure riddler.io  [aliases: riddler_domain_search, rdds]
  pown-cli recon transform script [options] <nodes...>                        Perform transformation with external script  [aliases: script]
  pown-cli recon transform scyllasearch [options] <nodes...>                  Searching the Scylla database  [aliases: scylla_search, scys]
  pown-cli recon transform securitytrailssuggestions [options] <nodes...>     Get a list of domain suggestions from securitytrails.com  [aliases: securitytrails_domain_suggestions, stds]
  pown-cli recon transform shodanorgsearch [options] <nodes...>               Performs search using ORG filter  [aliases: shodan_org_search, sos]
  pown-cli recon transform shodansslsearch [options] <nodes...>               Performs search using SSL filter  [aliases: shodan_ssl_search, sss]
  pown-cli recon transform spysesubdomains [options] <nodes...>               Performs subdomain searching with Spyse  [aliases: spyse_subdomains, ssds]
  pown-cli recon transform tcpportscan [options] <nodes...>                   Simple, full-handshake TCP port scanner (very slow and sometimes inaccurate)  [aliases: tcp_port_scan, tps]
  pown-cli recon transform threatcrowddomainreport [options] <nodes...>       Obtain threatcrowd domain report which helps enumerating potential target subdomains and email addresses  [aliases: threatcrowd_domain_report, tcdr]
  pown-cli recon transform threatcrowdipreport [options] <nodes...>           Obtain threatcrowd ip report which helps enumerating virtual hosts  [aliases: threatcrowd_ip_report, tcir]
  pown-cli recon transform urlscanliveshot [options] <nodes...>               Generates a liveshot of any public site via urlscan  [aliases: urlscan_liveshot, usls]
  pown-cli recon transform urlscansubdomains [options] <nodes...>             Find subdomains via urlscan  [aliases: urlscan_subdomains, uss]
  pown-cli recon transform noop [options] <nodes...>                          Does not do anything  [aliases: nop]
  pown-cli recon transform sleep [options] <nodes...>                         Sleeps for predefined time  [aliases: sleep, wait]
  pown-cli recon transform duplicate [options] <nodes...>                     Duplicate node  [aliases: dup]
  pown-cli recon transform extract [options] <nodes...>                       Extract property  [aliases: excavate]
  pown-cli recon transform prefix [options] <nodes...>                        Creates a new node with a prefix  [aliases: prepand]
  pown-cli recon transform suffix [options] <nodes...>                        Creates a new node with a suffix  [aliases: append]
  pown-cli recon transform augment [options] <nodes...>                       Update node with prefix or suffix
  pown-cli recon transform splitemail [options] <nodes...>                    Split email at the @ sign  [aliases: split_email]
  pown-cli recon transform buildemail [options] <nodes...>                    Build email from node label  [aliases: build_email]
  pown-cli recon transform splitdomain [options] <nodes...>                   Split domain at the first dot  [aliases: split_domain]
  pown-cli recon transform builddomain [options] <nodes...>                   Build domain from node label  [aliases: build_domain]
  pown-cli recon transform splituri [options] <nodes...>                      Split URI to corresponding parts  [aliases: split_uri]
  pown-cli recon transform builduri [options] <nodes...>                      Build URI from node label  [aliases: build_uri]
  pown-cli recon transform bakeimages [options] <nodes...>                    Convert external image into data URIs for self-embedding purposes  [aliases: bake_images, bes]
  pown-cli recon transform virustotalsubdomains [options] <nodes...>          Obtain subdomains from Virustotal  [aliases: virustotal_subdomains, vtsd]
  pown-cli recon transform vulnerssearch [options] <nodes...>                 Obtain vulnerability information via vulners.com  [aliases: vulners_search, vs]
  pown-cli recon transform wappalyzerprofile [options] <nodes...>             Enumerate technologies with api.wappalyzer.com  [aliases: wappalyzer_profile, wzp]
  pown-cli recon transform worker [options] <nodes...>                        Perform transformation with external worker  [aliases: worker]
  pown-cli recon transform zonecrunchersubdomains [options] <nodes...>        Performs subdomain searching with Zonecruncher  [aliases: zonecruncher_subdomains, zcss]
  pown-cli recon transform auto [options] <nodes...>                          Select the most appropriate methods of transformation

Options:
      --version  Show version number  [boolean]
      --help     Show help  [boolean]
  -r, --read     Read file  [string]
  -w, --write    Write file  [string]

Pré-visualização

Os gráficos gerados podem ser pré-visualizados no SecApps Recon para conveniência, no qual esta ferramenta é baseada. Você pode acessar o SecApps Recon pelo seu navegador, mas também pode invocá-lo pela linha de comando.

Primeiro, você precisa ter @pown/apps instalado:```sh $ pown modules install @pown/apps

root@kitploit:~
Isto instalará o pacote de comandos de aplicativos opcionais.

Gere seu gráfico usando as opções de escrita:```sh
$ pown recon transform auto -w path/to/file.network --node-type brand target

Assim que o reconhecimento estiver completo, abra o gráfico para visualização no SecApps Recon:```sh $ pown apps recon < path/to/file.network

root@kitploit:~
## Scripts

Pown recon é projetado para ser scriptado através do seu ambiente de shell favorito, [Pown Script](https://github.com/pownjs/script), [Pown Engine Templates](https://github.com/pownjs/engine) e JavaScript. Os scripts se beneficiam do contexto preservado entre cada execução de comando. Isso significa que você pode construir um gráfico sem a necessidade de salvar e restaurar em arquivos intermediários.

Usando seu editor favorito, crie um arquivo chamado `example.pown` com o seguinte conteúdo:```sh
echo This is script
recon add --node-type brand target
recon t auto

Execute o script do pown:```sh $ pown script path/to/example.pown

root@kitploit:~
Para mais informações, veja o `./examples` para mais ideias de como usar scripts.

## Seletores

> Alguns comandos esperam seletores de grafo. O restante da documentação é uma cópia do manual de seletores do cytoscape.js com algumas pequenas diferenças.

Um seletor funciona de forma semelhante a um seletor CSS em elementos DOM, mas os seletores no Recon trabalham em coleções de elementos de grafo. Este mecanismo é fornecido pelo poderoso cytoscape.js.

Os seletores podem ser combinados para fazer consultas poderosas, por exemplo:```
pown select 'node[weight >= 50][height < 180]'

Os seletores podem ser unidos (efetivamente criando um OU lógico) por vírgulas:``` pown select 'node#j, edge[source = "j"]'

root@kitploit:~
É importante notar que strings precisam ser delimitadas por aspas:```
pown select 'node[type = "domain"]'

Note que os metacharacters ( ^ $ \ / ( ) | ? + * [ ] { } , . ) precisam ser escapados:

pown select '#some\$funky\@id'

Grupo, classe e ID

  • node, edge ou * (seletor de grupo) Corresponde a elementos com base no grupo (nó para nós, aresta para arestas, * para todos).
  • .className Corresponde a elementos que possuem a classe especificada (ex.: use .foo para uma classe chamada "foo").
  • O #id Corresponde a elemento com o ID correspondente (ex.: #foo é o mesmo que [id = 'foo'])

Dados

  • [name] Corresponde a elementos se eles tiverem o atributo de dados especificado definido, ou seja, não indefinido (ex.: [foo] para um atributo chamado "foo"). Aqui, null é considerado um valor definido.
  • [^name] Corresponde a elementos se o atributo de dados especificado não estiver definido, ou seja, indefinido (ex.: [^foo]). Aqui, null é considerado um valor definido.
  • [?name] Corresponde a elementos se o atributo de dados especificado for um valor truthy (ex.: [?foo]).
  • [!name] Corresponde a elementos se o atributo de dados especificado for um valor falsey (ex.: [!foo]).
  • [name = value] Corresponde a elementos se o atributo de dados deles corresponder a um valor especificado (ex.: [foo = 'bar'] ou [num = 2]).
  • [name != value] Corresponde a elementos se o atributo de dados deles não corresponder a um valor especificado (ex.: ou ).

Nós compostos

  • > (seletor de filho) Corresponde a filhos diretos do nó pai (ex.: node > node).
  • (seletor de descendente) Corresponde a descendentes do nó pai (ex.: node node).
  • $ (seletor de sujeito) Define o sujeito do seletor (ex.: $node > node para selecionar os nós pais em vez dos filhos).

Travessias

Um tipo complexo de seleção é conhecido como travessia.

Transformações

Aqui estão algumas das transformações disponíveis no Recon. Transformações adicionais estão disponíveis em módulos pown opcionais.

  • GitHub Search of Repos, Gists and Members (via @pown/github)
  • Bitbucket Search of Repos, Snippets and Members
  • CloudFlare 1.1.1.1 DNS API
  • CRTSH (CN & SAN)
  • DockerHub Repo Search
  • Gravatar URLs
  • Hacker Target Reverse IP Lookup
  • PKS Lookup
  • Bufferover.run
  • Urlscan
  • Threatcrowd
  • Wappalyzer
  • Riddler
  • Shodan
  • WhoAreThey(via @pown/whoarethey)
  • Certspotter
  • Virustotal
  • Security Trails
  • Utility Transforms
  • Auto Recon

Tutorial

Para demonstrar o poder do Recon e da OSINT baseada em grafos (Open Source Intelligence), vamos dar uma olhada no seguinte exemplo trivial.

Vamos começar consultando todos que são membros da equipe de engenharia do Google e contribuem para a sua conta no GitHub.```sh pown recon t -w google.network ghlm google

root@kitploit:~
Este comando gerará uma tabela semelhante a esta:```
   github:member
┌─────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────┐
│ uri                                                     │ login                                                   │ avatar                                                  │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/3rf                                  │ 3rf                                                     │ https://avatars1.githubusercontent.com/u/1242478?v=4    │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/aaroey                               │ aaroey                                                  │ https://avatars0.githubusercontent.com/u/31743510?v=4   │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/aarongable                           │ aarongable                                              │ https://avatars3.githubusercontent.com/u/2474926?v=4    │
...
...
...
│ https://github.com/alexpennace                          │ alexpennace                                             │ https://avatars1.githubusercontent.com/u/2506548?v=4    │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/alexv                                │ alexv                                                   │ https://avatars0.githubusercontent.com/u/30807372?v=4   │
├─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────┤
│ https://github.com/alexwhouse                           │ alexwhouse                                              │ https://avatars3.githubusercontent.com/u/1448490?v=4    │
└─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┘

Você acabou de criar sua primeira rede!

A representação é tabular por conveniência, mas por baixo temos um modelo que consiste em nós conectados por arestas.

Se você está se perguntando como isso se parece, você pode usar o SecApps Recon. A linha de comando não tem o nível necessário de interatividade para apresentar a complexidade dos grafos.

A opção de linha de comando -w google.network exportou a rede para um arquivo. Você pode carregar o arquivo diretamente no SecApps Recon com o recurso de abrir arquivo. O resultado será semelhante a este:

Agora imagine que queremos consultar em quais repositórios esses engenheiros do Google estão trabalhando. Isso é fácil. Primeiro, precisamos selecionar os nós no grafo e então transformá-los com a transformação "GitHub List Repositories". É assim que fazemos a partir da linha de comando:```sh pown recon t ghlr -r google.network -w google2.nework -s 'node[type="github:member"]'

root@kitploit:~
Se você não exceder os limites de taxa da API do GitHub, você será apresentado a isto:```
   github:repo
┌──────────────────────────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────┐
│ uri                                                                                  │ fullName                                                                             │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/3rf/2015-talks                                                    │ 3rf/2015-talks                                                                       │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/3rf/codecoroner                                                   │ 3rf/codecoroner                                                                      │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/3rf/DefinitelyTyped                                               │ 3rf/DefinitelyTyped                                                                  │
...
...
...
│ https://github.com/agau4779/ultimate-tic-tac-toe                                     │ agau4779/ultimate-tic-tac-toe                                                        │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/agau4779/worm_scraper                                             │ agau4779/worm_scraper                                                                │
├──────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────┤
│ https://github.com/agau4779/zsearch                                                  │ agau4779/zsearch                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────┘

Agora que temos dois arquivos google.network e google2.network, você pode estar se perguntando qual é a diferença entre eles. Bem, temos uma ferramenta para fazer exatamente isso.```sh pown recon diff google.network google2.network

root@kitploit:~
Agora sabemos! Este recurso é bastante útil se você está construindo grandes mapas de reconhecimento e gostaria de saber quais são as principais diferenças. Imagine que seu cron job realiza o mesmo reconhecimento todos os dias e você gostaria de saber se algo novo apareceu que vale a pena explorar mais. Olá, caçadores de bug bounty!
Baixar ferramenta
[foo != 'bar']
[num != 2]
  • [name > value] Corresponde a elementos se o atributo de dados deles for maior que um valor especificado (ex.: [foo > 'bar'] ou [num > 2]).
  • [name >= value] Corresponde a elementos se o atributo de dados deles for maior ou igual a um valor especificado (ex.: [foo >= 'bar'] ou [num >= 2]).
  • [name < value] Corresponde a elementos se o atributo de dados deles for menor que um valor especificado (ex.: [foo < 'bar'] ou [num < 2]).
  • [name <= value] Corresponde a elementos se o atributo de dados deles for menor ou igual a um valor especificado (ex.: [foo <= 'bar'] ou [num <= 2]).
  • [name *= value] Corresponde a elementos se o atributo de dados deles contiver o valor especificado como substring (ex.: [foo *= 'bar']).
  • [name ^= value] Corresponde a elementos se o atributo de dados deles começar com o valor especificado (ex.: [foo ^= 'bar']).
  • [name $= value] Corresponde a elementos se o atributo de dados deles terminar com o valor especificado (ex.: [foo $= 'bar']).
  • @ (modificador de operador de atributo de dados) Anteposto a um operador para que seja insensível a maiúsculas/minúsculas (ex.: [foo @$= 'ar'], [foo @>= 'a'], [foo @= 'bar'])
  • ! (modificador de operador de atributo de dados) Anteposto a um operador para que seja negado (ex.: [foo !$= 'ar'], [foo !>= 'a'])
  • [[]] (colchetes de metadados) Use colchetes duplos no lugar dos simples para corresponder a metadados em vez de dados (ex.: [[degree > 2]] corresponde a elementos com grau maior que 2). As propriedades suportadas incluem degree, indegree e outdegree.