Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
recon — Un potente framework di ricognizione dei target basato sulla teoria dei grafi. | Kitploit
Strumenti/GitHubGitHub/pownjs/recon
OSINT (Open Source Intelligence)RicognizioneMappatura della ReteScansione PorteAnalisi delle VulnerabilitàRaccolta InformazioniUtilità e FrameworkThreat IntelligenceEnumerazione SottodominiAnalisi DNSArchived
GitHub
4208273 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
pownjs/recon

recon

Un potente framework di ricognizione dei target basato sulla teoria dei grafi.

Vedi Repository

Il progetto è stato spostato su monorepo. Vedi https://github.com/pownjs/pown per maggiori informazioni.

License Follow on Twitter NPM Fury default workflow SecApps

Recon

Recon è un framework di ricognizione di target basato su grafi di conoscenza. Usare grafi di conoscenza invece di rappresentazioni tabellari piatte rende più facile trovare le relazioni tra diversi tipi di informazioni, il che è molto utile in molte situazioni. Gli algoritmi dei grafi di conoscenza aiutano anche con il diff, la ricerca, la ricerca del percorso più breve e molti altri compiti utili per agevolare la scoperta di informazioni e la raccolta di intelligence.

Crediti

Questo strumento fa parte dell'iniziativa open-source di secapps.com.```


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

root@kitploit:~
> **NB**: Recon è il risultato di una copia quasi diretta dell'eccellente tool [Recon](https://recon.secapps.com) di SecApps.

## Quickstart

Questo strumento è pensato per essere usato come parte di [Pown.js](https://github.com/pownjs/pown) ma può essere invocato separatamente come strumento indipendente.

Installa Pown prima come al solito:```sh
$ npm install -g pown@latest

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

root@kitploit:~
Invocare direttamente da Pown:```sh
$ pown recon

Uso autonomo

Installa questo modulo localmente dalla root del tuo progetto:```sh $ npm install @pown/recon --save

root@kitploit:~
Una volta terminato, invoca pown cli:```sh
$ POWN_ROOT=. ./node_modules/.bin/pown-cli recon

Puoi anche usare il pown globale per invocare lo strumento localmente:```sh $ POWN_ROOT=. pown recon

root@kitploit:~
## Utilizzo come libreria

Il modulo è anche una libreria. Dai un'occhiata al codice e agli esempi per avere un'idea su come usarlo. La documentazione è in arrivo.

## Utilizzo

> **ATTENZIONE**: Questo comando pown è attualmente in fase di sviluppo e di conseguenza sarà soggetto a modifiche sostanziali.```
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]

Anteprima

I grafici generati possono essere visualizzati in anteprima su SecApps Recon per comodità, su cui questo strumento si basa. Puoi accedere a SecApps Recon dal tuo browser ma puoi anche richiamarlo dalla riga di comando.

Per prima cosa devi avere installato @pown/apps:```sh $ pown modules install @pown/apps

root@kitploit:~
Questo installerà il pacchetto di comandi per app opzionali.

Genera il tuo grafico utilizzando le opzioni di scrittura:```sh
$ pown recon transform auto -w path/to/file.network --node-type brand target

Una volta completata la ricognizione, apri il grafico per l'anteprima in SecApps Recon:```sh $ pown apps recon < path/to/file.network

root@kitploit:~
## Scripting

Pown recon è progettato per essere scriptato tramite il tuo ambiente shell preferito, [Pown Script](https://github.com/pownjs/script), [Pown Engine Templates](https://github.com/pownjs/engine) e JavaScript. Gli script beneficiano del contesto preservato tra ogni esecuzione di comando. Ciò significa che puoi costruire un grafico senza dover salvare e ripristinare file intermedi.

Usando il tuo editor preferito, crea un file chiamato `example.pown` con il seguente contenuto:```sh
echo This is script
recon add --node-type brand target
recon t auto

Esegui lo script da pown:```sh $ pown script path/to/example.pown

root@kitploit:~
Per maggiori informazioni, consulta `./examples` per ulteriori idee su come utilizzare gli script.

## Selettori

> Alcuni comandi si aspettano selettori di grafo. Il resto della documentazione è copia del manuale dei selettori di cytoscape.js con alcune differenze minori.

Un selettore funziona in modo simile a un selettore CSS su elementi DOM, ma i selettori in Recon lavorano invece su collezioni di elementi del grafo. Questo meccanismo è fornito dal potente cytoscape.js.

I selettori possono essere combinati insieme per eseguire potenti query, per esempio:```
pown select 'node[weight >= 50][height < 180]'

I selettori possono essere uniti insieme (creando di fatto un OR logico) con le virgole:``` pown select 'node#j, edge[source = "j"]'

root@kitploit:~
È importante notare che le stringhe devono essere racchiuse tra virgolette:```
pown select 'node[type = "domain"]'

Nota che i metacaratteri ( ^ $ \ / ( ) | ? + * [ ] { } , . ) devono essere eseguiti con escape:

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

Gruppo, classe e ID

  • node, edge o * (selettore di gruppo) Corrisponde agli elementi in base al gruppo (node per i nodi, edge per gli archi, * per tutti).
  • .className Corrisponde agli elementi che hanno la classe specificata (es. usa .foo per una classe chiamata "foo").
  • #id Corrisponde all'elemento con l'ID corrispondente (es. #foo è uguale a [id = 'foo'])

Dati

  • [name] Corrisponde agli elementi se hanno l'attributo dati specificato definito, cioè non undefined (es. [foo] per un attributo chiamato "foo"). Qui, null è considerato un valore definito.
  • [^name] Corrisponde agli elementi se l'attributo dati specificato non è definito, cioè undefined (es. [^foo]). Qui, null è considerato un valore definito.
  • [?name] Corrisponde agli elementi se l'attributo dati specificato è un valore truthy (es. [?foo]).
  • [!name] Corrisponde agli elementi se l'attributo dati specificato è un valore falsey (es. [!foo]).
  • [name = value] Corrisponde agli elementi se il loro attributo dati corrisponde a un valore specificato (es. [foo = 'bar'] o [num = 2]).
  • [name != value] Corrisponde agli elementi se il loro attributo dati non corrisponde a un valore specificato (es. o ).

Nodi composti

  • > (selettore figlio) Corrisponde ai figli diretti del nodo genitore (es. node > node).
  • (selettore discendente) Corrisponde ai discendenti del nodo genitore (es. node node).
  • $ (selettore soggetto) Imposta il soggetto del selettore (es. $node > node per selezionare i nodi genitori invece dei figli).

Attraversamenti

Un tipo complesso di selezione è noto come attraversamento.

Trasformazioni

Ecco alcune delle trasformazioni disponibili in Recon. Trasformazioni aggiuntive sono disponibili in moduli pown opzionali.

  • 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

Per dimostrare la potenza di Recon e dell'OSINT (Open Source Intelligence) basato su grafi, diamo un'occhiata al seguente esempio banale.

Iniziamo interrogando tutti coloro che fanno parte del team di ingegneria di Google e contribuiscono al loro account GitHub.```sh pown recon t -w google.network ghlm google

root@kitploit:~
Questo comando genererà una tabella simile a questa:```
   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    │
└─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────┘

Hai appena creato la tua prima rete!

La rappresentazione è tabellare per comodità, ma in realtà abbiamo un modello composto da nodi collegati da archi.

Se sei curioso di vedere come appare, puoi usare SecApps Recon. La riga di comando non ha il livello di interattività necessario per presentare la complessità dei grafi.

L'opzione della riga di comando -w google.network ha esportato la rete in un file. Puoi caricare il file direttamente in SecApps Recon con la funzione di apertura file. Il risultato sarà simile a questo:

Ora immagina di voler interrogare su quali repository stanno lavorando questi ingegneri Google. È semplice. Per prima cosa, dobbiamo selezionare i nodi nel grafo e poi trasformarli con la trasformazione "GitHub List Repositories". Ecco come farlo dalla riga di comando:```sh pown recon t ghlr -r google.network -w google2.nework -s 'node[type="github:member"]'

root@kitploit:~
Se non si superano i limiti di velocità dell'API di GitHub, ti verrà presentato questo:```
   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                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────┘

Dato che ora abbiamo due file google.network e google2.network potresti chiederti quale sia la differenza tra di loro. Bene, abbiamo uno strumento per fare proprio questo.```sh pown recon diff google.network google2.network

root@kitploit:~
Ora lo sappiamo! Questa funzionalità è molto utile se stai costruendo mappe di ricognizione ampie e vorresti sapere quali sono le differenze chiave. Immagina che il tuo cron job esegua la stessa ricognizione ogni giorno e vorresti sapere se è apparsa qualcosa di nuovo che potrebbe valere la pena esplorare ulteriormente. Ciao, cacciatori di bug bounty!
Scarica lo strumento
[foo != 'bar']
[num != 2]
  • [name > value] Corrisponde agli elementi se il loro attributo dati è maggiore di un valore specificato (es. [foo > 'bar'] o [num > 2]).
  • [name >= value] Corrisponde agli elementi se il loro attributo dati è maggiore o uguale a un valore specificato (es. [foo >= 'bar'] o [num >= 2]).
  • [name < value] Corrisponde agli elementi se il loro attributo dati è minore di un valore specificato (es. [foo < 'bar'] o [num < 2]).
  • [name <= value] Corrisponde agli elementi se il loro attributo dati è minore o uguale a un valore specificato (es. [foo <= 'bar'] o [num <= 2]).
  • [name *= value] Corrisponde agli elementi se il loro attributo dati contiene il valore specificato come sottostringa (es. [foo *= 'bar']).
  • [name ^= value] Corrisponde agli elementi se il loro attributo dati inizia con il valore specificato (es. [foo ^= 'bar']).
  • [name $= value] Corrisponde agli elementi se il loro attributo dati termina con il valore specificato (es. [foo $= 'bar']).
  • @ (modificatore dell'operatore dell'attributo dati) Anteposto a un operatore per renderlo case insensitive (es. [foo @$= 'ar'], [foo @>= 'a'], [foo @= 'bar'])
  • ! (modificatore dell'operatore dell'attributo dati) Anteposto a un operatore per negarlo (es. [foo !$= 'ar'], [foo !>= 'a'])
  • [[]] (parentesi quadre per metadati) Usa doppie parentesi quadre al posto di quelle singole per fare matching sui metadati invece che sui dati (es. [[degree > 2]] corrisponde a elementi con grado maggiore di 2). Le proprietà supportate includono degree, indegree e outdegree.