Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
recon — Un potente framework de reconocimiento de objetivos impulsado por la teoría de grafos. | Kitploit
Herramientas/GitHubGitHub/pownjs/recon
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoMapeo de RedesEscaneo de PuertosAnálisis de VulnerabilidadesRecopilación de InformaciónUtilidades y FrameworksInteligencia de AmenazasEnumeración de SubdominiosAnálisis de DNSArchived
42082hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
pownjs/recon

recon

Un potente framework de reconocimiento de objetivos impulsado por la teoría de grafos.

Ver Repositorio

El proyecto se ha trasladado a monorepo. Consulte https://github.com/pownjs/pown para obtener más información.

Licencia Seguir en Twitter NPM Fury flujo de trabajo predeterminado SecApps

Recon

Recon es un framework de reconocimiento de objetivos impulsado por grafos de conocimiento. El uso de grafos de conocimiento en lugar de representaciones tabulares planas facilita encontrar relaciones entre diferentes tipos de información, lo cual resulta muy útil en muchas situaciones. Los algoritmos de grafos de conocimiento también ayudan con diferencias, búsqueda, encontrar la ruta más corta y muchas otras tareas útiles para ayudar al descubrimiento de información y la recopilación de inteligencia.

Créditos

Esta herramienta forma parte de la iniciativa de código abierto de secapps.com.```


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

root@kitploit:~
> **NB**: Recon es el resultado de una copia casi directa de la excelente herramienta [Recon](https://recon.secapps.com) de SecApps.

## Inicio rápido

Esta herramienta está diseñada para usarse como parte de [Pown.js](https://github.com/pownjs/pown), pero también se puede invocar de forma independiente como una herramienta autónoma.

Instale Pown primero como de costumbre:```sh
$ npm install -g pown@latest

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

root@kitploit:~
Invoca directamente desde Pown:```sh
$ pown recon

Uso independiente

Instala este módulo localmente desde la raíz de tu proyecto:```sh $ npm install @pown/recon --save

root@kitploit:~
Una vez terminado, ejecuta pown cli:```sh
$ POWN_ROOT=. ./node_modules/.bin/pown-cli recon

También puedes usar el pown global para invocar la herramienta localmente:```sh $ POWN_ROOT=. pown recon

root@kitploit:~
## Uso de la biblioteca

El módulo también es una biblioteca. Revisa el código y los ejemplos para tener una idea de cómo usarlo. La documentación está en camino.

## Uso

> **ADVERTENCIA**: Este comando pown se encuentra actualmente en desarrollo y, como resultado, estará sujeto a cambios importantes.```
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]

Vista previa

Los gráficos generados se pueden previsualizar en SecApps Recon por conveniencia, en el cual se basa esta herramienta. Puedes acceder a SecApps Recon desde tu navegador, pero también puedes invocarlo desde la línea de comandos.

Primero necesitas tener @pown/apps instalado:```sh $ pown modules install @pown/apps

root@kitploit:~
Esto instalará el paquete opcional de comandos de apps.

Genere su gráfico usando las opciones de escritura:```sh
$ pown recon transform auto -w path/to/file.network --node-type brand target

Una vez completado el reconocimiento, abre el gráfico para previsualizarlo en SecApps Recon:```sh $ pown apps recon < path/to/file.network

root@kitploit:~
## Scripting

Pown recon está diseñado para ser automatizado mediante scripts ya sea a través de su entorno de shell favorito, [Pown Script](https://github.com/pownjs/script), [Pown Engine Templates](https://github.com/pownjs/engine) y JavaScript. Los scripts se benefician del contexto preservado entre cada ejecución de comando. Esto significa que puedes construir un gráfico sin necesidad de guardar y restaurar en archivos intermedios.

Usando tu editor favorito, crea un archivo llamado `example.pown` con el siguiente contenido:```sh
echo This is script
recon add --node-type brand target
recon t auto

Ejecuta el script desde pown:```sh $ pown script path/to/example.pown

root@kitploit:~
For more information, see the `./examples` for more ideas how to use scripts.

## Selectors

> Some commands expect graph selectors. The rest of the documentation is copy of cytoscape.js selectors manual with some minor differences.

A selector functions similar to a CSS selector on DOM elements, but selectors in Recon instead work on collections of graph elements. This mechanism is provided by the powerful cytoscape.js.

The selectors can be combined together to make powerful queries, for example:```
pown select 'node[weight >= 50][height < 180]'

Los selectores se pueden unir (creando efectivamente un OR lógico) con comas:``` pown select 'node#j, edge[source = "j"]'

root@kitploit:~
Es importante tener en cuenta que las cadenas deben encerrarse entre comillas:```
pown select 'node[type = "domain"]'

Ten en cuenta que los metacaracteres ( ^ $ \ / ( ) | ? + * [ ] { } , . ) necesitan escaparse:

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

Grupo, clase e ID

  • node, edge, o * (selector de grupo) Coincide con elementos según el grupo (node para nodos, edge para aristas, * para todos).
  • .className Coincide con elementos que tienen la clase especificada (por ejemplo, usa .foo para una clase llamada "foo").
  • #id Coincide con el elemento con el ID correspondiente (por ejemplo, #foo es lo mismo que [id = 'foo'])

Datos

  • [name] Coincide con elementos si tienen definido el atributo de datos especificado, es decir, no undefined (por ejemplo, [foo] para un atributo llamado "foo"). Aquí, null se considera un valor definido.
  • [^name] Coincide con elementos si el atributo de datos especificado no está definido, es decir, undefined (por ejemplo, [^foo]). Aquí, null se considera un valor definido.
  • [?name] Coincide con elementos si el atributo de datos especificado es un valor truthy (por ejemplo, [?foo]).
  • [!name] Coincide con elementos si el atributo de datos especificado es un valor falsey (por ejemplo, [!foo]).
  • [name = value] Coincide con elementos si su atributo de datos coincide con un valor especificado (por ejemplo, [foo = 'bar'] o [num = 2]).
  • [name != value] Coincide con elementos si su atributo de datos no coincide con un valor especificado (por ejemplo, o ).

Nodos compuestos

  • > (selector de hijo) Coincide con hijos directos del nodo padre (por ejemplo, node > node).
  • (selector de descendiente) Coincide con descendientes del nodo padre (por ejemplo, node node).
  • $ (selector de sujeto) Establece el sujeto del selector (por ejemplo, $node > node para seleccionar los nodos padre en lugar de los hijos).

Traversals

Un tipo complejo de selección se conoce como recorrido (traversal).

Transformaciones

Aquí hay algunas de las transformaciones disponibles en Recon. Transformaciones adicionales están disponibles en módulos opcionales de pown.

  • 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 demostrar el poder de Recon y OSINT (Inteligencia de Fuentes Abiertas) basado en grafos, veamos el siguiente ejemplo trivial.

Comencemos consultando a todos los que son miembros del equipo de ingeniería de Google y contribuyen a su cuenta de GitHub.```sh pown recon t -w google.network ghlm google

root@kitploit:~
Este comando generará una tabla similar 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    │
└─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┘

¡Acabas de crear tu primera red!

La representación es tabular por conveniencia, pero debajo tenemos un modelo que consiste en nodos conectados por aristas.

Si te preguntas cómo se ve eso, puedes usar SecApps Recon. La línea de comandos no tiene el nivel de interactividad necesario para presentar la complejidad de los grafos.

La opción de línea de comandos -w google.network exportó la red a un archivo. Puedes cargar el archivo directamente en SecApps Recon con la función de abrir archivo. El resultado se verá así:

Ahora imagina que queremos consultar en qué repositorios están trabajando estos ingenieros de Google. Esto es fácil. Primero, necesitamos seleccionar los nodos en el grafo y luego transformarlos con la transformación "GitHub List Repositories". Así es como lo hacemos desde la línea de comandos:```sh pown recon t ghlr -r google.network -w google2.nework -s 'node[type="github:member"]'

root@kitploit:~
Si no superas los límites de tasa de la API de GitHub, se te presentará esto:```
   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                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────┘

Ahora que tenemos dos archivos google.network y google2.network quizá te preguntes cuál es la diferencia entre ellos. Bien, tenemos una herramienta para eso.```sh pown recon diff google.network google2.network

root@kitploit:~
¡Ahora lo sabemos! Esta característica es bastante útil si estás construyendo grandes mapas de reconocimiento y te gustaría saber cuáles son las diferencias clave. Imagina que tu tarea cron realiza el mismo reconocimiento todos los días y te gustaría saber si algo nuevo acaba de aparecer que valga la pena explorar más a fondo. ¡Hola, cazadores de bug bounty!
Descargar herramienta
[foo != 'bar']
[num != 2]
  • [name > value] Coincide con elementos si su atributo de datos es mayor que un valor especificado (por ejemplo, [foo > 'bar'] o [num > 2]).
  • [name >= value] Coincide con elementos si su atributo de datos es mayor o igual que un valor especificado (por ejemplo, [foo >= 'bar'] o [num >= 2]).
  • [name < value] Coincide con elementos si su atributo de datos es menor que un valor especificado (por ejemplo, [foo < 'bar'] o [num < 2]).
  • [name <= value] Coincide con elementos si su atributo de datos es menor o igual que un valor especificado (por ejemplo, [foo <= 'bar'] o [num <= 2]).
  • [name *= value] Coincide con elementos si su atributo de datos contiene el valor especificado como subcadena (por ejemplo, [foo *= 'bar']).
  • [name ^= value] Coincide con elementos si su atributo de datos comienza con el valor especificado (por ejemplo, [foo ^= 'bar']).
  • [name $= value] Coincide con elementos si su atributo de datos termina con el valor especificado (por ejemplo, [foo $= 'bar']).
  • @ (modificador de operador de atributo de datos) Se antepone a un operador para que no distinga entre mayúsculas y minúsculas (por ejemplo, [foo @$= 'ar'], [foo @>= 'a'], [foo @= 'bar'])
  • ! (modificador de operador de atributo de datos) Se antepone a un operador para que sea negado (por ejemplo, [foo !$= 'ar'], [foo !>= 'a'])
  • [[]] (corchetes de metadatos) Usa dobles corchetes en lugar de corchetes simples para coincidir con metadatos en lugar de datos (por ejemplo, [[degree > 2]] coincide con elementos de grado mayor que 2). Las propiedades compatibles incluyen degree, indegree y outdegree.