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
netlas-cookbook — L'obiettivo di questa guida è molto semplice - insegnare a chiunque sia interessato alla sicurezza informatica, indipendentemente dal proprio livello di conoscenza, come sfruttare al meglio Netlas.io. | Kitploit
Strumenti/GitHubGitHub/netlas-io/netlas-cookbook
OSINT (Open Source Intelligence)RicognizioneSicurezza IoTAnalisi delle VulnerabilitàRaccolta InformazioniSicurezza WebDigital ForensicsPenetration TestingThreat IntelligenceApprendimento e FormazioneRisorse CuratePercorsi e Corsi
88810561 anno 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
GitHubnetlas-io/netlas-cookbook

netlas-cookbook

L'obiettivo di questa guida è molto semplice - insegnare a chiunque sia interessato alla sicurezza informatica, indipendentemente dal proprio livello di conoscenza, come sfruttare al meglio Netlas.io.

Vedi Repository

Netlas CookBook

GitHub stars GitHub forks


L'obiettivo di questa guida è insegnare a chiunque sia interessato alla cybersecurity, indipendentemente dal proprio livello di conoscenza, come sfruttare al meglio gli strumenti di ricerca di Netlas. È una lunga lettura. Abbiamo raccolto quanti più casi d'uso semplici possibile e mostrato come automatizzarli.

⭐️ Dacci una stella per mostrare il tuo apprezzamento
👁️ Iscriviti per aggiornamenti

Netlas è un motore di ricerca progettato per trovare e analizzare informazioni su tutti gli indirizzi IP e domini disponibili su Internet. Netlas ha alcune funzionalità di gestione della superficie d'attacco, ma questa guida si concentra principalmente sugli strumenti di ricerca di Netlas e su come utilizzarli nelle automazioni.

Indice

  • Semplici Esempi di Utilizzo
    • Ottenere Informazioni su IP o Dominio
    • Cerca Domini Non Latini
    • Cercare Siti Web che Contengono una Certa Parola nel Titolo
  • Sintassi delle Query di Ricerca
    • Filtri (Campi)
    • Operatori Logici
    • Intervalli
    • Wildcard
    • Fuzziness
    • Espressioni Regolari
    • Altre Funzionalità di Ricerca di Netlas.io
  • Richieste API
    • Come Trovare la Chiave API?
    • Strumenti per il Debug delle Richieste API
    • Struttura della Risposta JSON dell'API Netlas
    • Strumenti per Lavorare con i Dati in Formato JSON
    • Libreria Python Netlas
    • Esempi di Chiavi di Risposta per Ottenere Dati Utili
    • Tipi di Dati della Risposta Python Netlas
    • Strumenti CLI Netlas
    • Metodi Search vs Download vs Host
    • Parametri Aggiuntivi della Richiesta
    • Effettuare Richieste con Python (senza la Libreria Python Netlas)
    • Esempi per Altri Linguaggi di Programmazione
    • Utilità JQ
    • Strumenti AI per Scrivere Codice
    • Controllori di Codice
  • Usare Netlas.io per OSINT (Open Source Intelligence)
    • Cercare il Nickname o l'Email di una Persona nei Contatti WHOIS
    • Cercare il Nickname o l'Email di una Persona nel Titolo e nel Corpo della Pagina Web
    • Cercare File "Juicy Info" sui Sottodomini del Sito Aziendale
    • Ricerca di Menzioni di Numeri di Telefono
    • Ricerca di Menzioni di File (Cercare Contenuti che Potrebbero Violare il Copyright)
    • Raccolta di Informazioni WHOIS del Dominio
    • Cercare la Posizione nel Tag <address>
    • Cercare il Nome dell'Autore nei Meta Tag
    • Cos'altro di Interessante si Può Trovare nei Meta Tag di un Documento HTML?
    • Cercare per il Testo dei Banner dei Server FTP
    • Cercare Informazioni di Contatto nei Certificati SSL
    • Usare Netlas come Alternativa alla WayBack Machine
    • 9 Modi per Cercare Siti Web Correlati
  • Scraping (Estrarre Dati dal Corpo della Pagina Web)
    • Pacchetto Beautifulsoup
    • Pacchetto Re
    • Altri Pacchetti Python per lo Scraping
  • Usare Netlas.io per Indagini Crypto
    • Cercare Mining Farm
    • Cercare Siti Web Infettati da Cryptominer
    • Cercare Nodi Bitcoin Vulnerabili
  • Usare Netlas per il Pentest
    • Ricerca di Sottodomini
    • Cercare Siti con Vulnerabilità Specifiche
    • Cercare Siti con Vulnerabilità che Contengono una Certa Parola nella loro Descrizione
    • Cercare per Intestazione HTTP del Server
    • Cercare Server Vulnerabili tramite Hash del Favicon
    • Cercare Server Vulnerabili per Nome del Tag
    • Cercare Server e Dispositivi Vulnerabili Vicino a Te (o in Qualsiasi Altra Località)
    • Cercare Pannelli di Login/Admin
    • Cercare Pannelli di Amministrazione di Database Vulnerabili
    • Cercare Siti Vulnerabili a SQL Injection
  • Ricerca IoT: 9 Modi Fondamentali
    • Cercare per Titolo
    • Cercare all'Interno del Corpo
    • Cercare per Numero di Porta
    • Cercare per Banner
    • Cercare per Favicon
    • Cercare per Intestazioni del Server
    • Cercare per Cookie
    • Cercare per Tag
    • Filtri di Ricerca Aggiuntivi
  • Usare Netlas.io per Ricerche nel Darknet
    • Ricerca di Nodi di Uscita Tor
    • Raccogliere Link a Siti .onion
  • Ricerca di Directory di File, Backup e Log
  • Usare Netlas.io per la Digital Forensics e la Risposta agli Incidenti
    • Raccolta di Informazioni sui Server SMTP
    • Cercare Domini che Potrebbero Essere Utilizzati per Phishing
    • Ricerca per Favicon
    • Cercare Domini Associati a una Sottorete Specifica
    • Cercare Server con Software Maligno
  • Cercare Tecnologie ed Esempi di Codice
  • Usare Netlas.io per Divertimento o Netstalking
  • Problemi Comuni
    • Errore 429 - Richieste Troppo Frequenti
    • KeyError
    • Automazione del Lavoro con l'Elenco di Richieste
    • Salvare Dati in Formato CSV
    • Salvare Dati in Altri Formati
    • Decodificare Domini Punycode
    • Cosa Fare Se le Query di Ricerca Non Restituiscono Risultati?
    • Rimuovere Tag HTML dal Corpo HTTP
  • Gestione della Superficie d'Attacco
  • Lavorare con Grandissime Quantità di Dati
  • Ringraziamenti

Semplici Esempi di Utilizzo

Netlas include diversi strumenti di ricerca:

  • Info IP/Dominio →
  • Ricerca risposte →
  • Ricerca DNS →
  • Ricerca WHOIS IP →
  • Ricerca WHOIS Domini →
  • Ricerca Certificati →

Utilizzeremo principalmente la ricerca delle risposte (risultati della scansione internet), ma tutti gli strumenti funzionano allo stesso modo. Se capisci come usare lo strumento di ricerca delle risposte, puoi gestire qualsiasi altro.

Prima di entrare nei dettagli tecnici, vediamo come funziona Netlas.io con alcuni semplici esempi.

Ottenere Informazioni su IP o Dominio

Raccolta di informazioni sul dominio

Apri Netlas.io IP/Dominio info e inserisci il nome del dominio o l'IP. Verranno visualizzate le seguenti informazioni come risultato:

  • dati whois (registrant, località, email, telefoni)
  • domini correlati
  • record MX e NS
  • porte esposte e software (a volte mostra anche informazioni sulle vulnerabilità)

Cerca Domini Non Latini

Conversione Punycode

Se hai bisogno di trovare domini cinesi o altri nomi di dominio internazionalizzati, convertili in Punycode. Per esempio:``` domain:*.xn--fiqs8s

root@kitploit:~
Puoi farlo con l'aiuto di strumenti online speciali. Ad esempio - [Charset.org](https://www.charset.org/punycode)

### Cercare Siti Web che Contengono una Determinata Parola nel Titolo

![Ricerca per titolo http](https://assets.kitploit.com/production/public/readmes/6659/9da0445843c6567eefba0f415852126719123c24992f7b85d1e2eee96110d64e.png)

Apri [Netlas.io response search](https://app.netlas.io/responses/) e inserisci:```
http.title:g*thub

Prova in Netlas

In questo modo verranno individuati tutti i server i cui titoli HTTP contengono una parola che inizia con "g" e termina con "thub". Scopri di più sull'uso degli asterischi qui sotto.

Sintassi delle query di ricerca

Ora impariamo di più su come funzionano le query di ricerca in Netlas.io.

Netlas.io si basa su Elasticsearch, un motore di ricerca gratuito, open source, distribuito e RESTful. I metodi di ricerca in Netlas.io sono molto simili a quelli di altri database basati su Elasticsearch.

Filtri (Campi)

Filtri di ricerca

Le ricerche in Response, DNS, IP e Certificati consentono di utilizzare filtri (campi) nelle query di ricerca. Ad esempio:``` http.body:netlas

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.body%3Anetlas&page=1&indices=)

Puoi utilizzare questa query per trovare pagine che contengono la parola "netlas" all'interno del tag <body> html.

Un elenco dei filtri disponibili per ogni tipo di ricerca viene visualizzato sul lato destro della pagina.

![Immagine di mappatura dei filtri](https://assets.kitploit.com/production/public/readmes/6659/00c8d6c829ff1de74f4fbdc26df13f8db07114a5830d9f6a8d9ad0011e817045.png)

I filtri ti consentono di cercare server in base a molti parametri diversi. Ad esempio:

* `domain`
* `ip`
* `protocol`
* `certificate`
* `cve`
* `geolocation` (`città`, `continente`, `paese`)

e molti altri.

### Operatori Logici

Puoi utilizzare più filtri in una singola query e combinarli usando gli operatori logici `AND`, `OR`, `NOT`. Ad esempio:```
http.title:netlas NOT port:443

Prova su Netlas

Se vuoi combinare più condizioni nella tua query, usa le parentesi:``` http.title:(netlas OR shodan) NOT port:443

root@kitploit:~
[Prova in Netlas](https://nt.ls/OrFOY)


### Intervalli

Se utilizzi un valore numerico come valore di un campo, puoi designarlo come un valore da e a (limiti estremi dell'intervallo di valori):```
ip:[173.194.222.0 TO 173.194.222.255] 

Try in Netlas

Oppure segna solo il limite superiore o solo il limite inferiore del valore:``` host:"1.1.1.1" port:<=1000

root@kitploit:~
[Prova su Netlas](https://app.netlas.io/responses/?q=host%3A%221.1.1.1%22%20port%3A%3C%3D1000&page=1&indices=)

### Wildcard

Se non conosci la descrizione esatta di un certo carattere nella tua query (ad esempio, non conosci la zona esatta per un dominio o la grafia di un nome), puoi sostituirlo con un asterisco:```
domain:google.*

Prova in Netlas

Puoi anche usare il punto interrogativo:``` domain:google.?

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=domain%3Agoogle.%3F&page=1&indices=)

`*` - molti simboli, `?` - un simbolo.

Puoi anche usare gli asterischi nei filtri. Per esempio:```
\*.banner:database

Questa query esegue una ricerca su tutti i tipi di banner contemporaneamente e sostituisce diversi filtri: amqp.banner:, ftp.banner:, dns.banner:, telnet.banner:, etc.

Fuzziness

Fuzzines

Se hai bisogno di cercare non per valore esatto, ma per valore approssimativo di un campo (ad esempio, pagine i cui titoli contengono tutti i nomi consonanti con Joseph), basta aggiungere ~ alla query:``` http.title:Joseph~

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=http.title%3AJoseph~&page=1&indices=)

### Espressioni regolari

L'espressione regolare è una sequenza di caratteri che consente di cercare, recuperare e sostituire parti di testo in un documento sorgente che corrispondono a determinati schemi. Ad esempio:

* Qualsiasi indirizzo email:  ```text
  ([a-zA-Z0–9+._-]+@[a-zA-Z0–9._-]+\.[a-zA-Z0–9_-]+)
  • Qualsiasi tag HTML: ```text <.*?>
    root@kitploit:~
  • Qualsiasi numero di telefono: ```text ^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$
    root@kitploit:~
  • Qualsiasi indirizzo Bitcoin: ```text ^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$
    root@kitploit:~

Per maggiori informazioni sull'uso delle espressioni regolari, consulta gli esempi nel Netlas Cookbook (quello che stai leggendo) e i link qui di seguito:

Manuale di sintassi regex nella documentazione di Elasticsearch

Come le espressioni regolari possono essere utili in OSINT. Teoria e un po' di pratica utilizzando Google Fogli

Altre funzionalità di ricerca di Netlas.io

Scarica i risultati

Scarica risultati

Puoi salvare i tuoi risultati (tutti o campi selezionati) in formato JSON e CSV per visualizzarli in un formato che preferisci o analizzarli automaticamente con diversi strumenti.

Raggruppa risultati

Raggruppa risultati

Puoi raggruppare i risultati per diversi valori di campo per velocizzare il tempo di ricerca. Ad esempio, per nome di dominio o geolocalizzazione.

Condividi risultati

Condividi risultati

Puoi condividere liberamente i link ai risultati di ricerca (non è richiesta registrazione per aprirli, a meno che l'utente non abbia superato il limite gratuito di 50 richieste).

Cronologia di ricerca

Cronologia richieste

Ricorda anche che tutte le query che hai effettuato possono essere visualizzate nella tua pagina del profilo (link nell'angolo in alto a destra).

Richieste API

La funzione più importante di Netlas.io è aiutare le persone a condurre ricerche sulla cybersecurity più velocemente ed efficientemente. Il servizio dispone di un'API (interfaccia di programmazione delle applicazioni) che consente di automatizzare l'esecuzione di varie richieste.

Può essere implementata sia in semplici script Python o Bash di poche righe, sia in applicazioni complesse multifunzionali.

Puoi leggere ulteriori informazioni sull'utilizzo dell'API di Netlas nel Netlas Cookbook (quello che stai leggendo) o nella documentazione ufficiale:

Documentazione API →

Come trovare la chiave API?

Questo è il primissimo punto da cui iniziare con l'API. Non devi nemmeno pagare un abbonamento (50 richieste al giorno sono gratuite). Basta andare alla pagina del profilo.

Pagina del profilo

Strumenti per il debug delle richieste API

Non devi scrivere script o creare applicazioni per iniziare a utilizzare l'API di Netlas. Puoi semplicemente testarla usando il tuo client API preferito. Consulta le istruzioni qui.

Struttura della risposta JSON dell'API di Netlas

Risposta API JSON

Simile ad altre API, la risposta dell'API Netlas è composta da intestazioni e un corpo di risposta in formato JSON (JavaScript Object Notation). I file JSON contengono dati in formato chiave-valore e possono essere analizzati utilizzando quasi tutti i linguaggi di programmazione.

Se usi Swagger, puoi copiare o scaricare il corpo della risposta e visualizzarlo in qualsiasi editor di testo o analizzatore JSON.

Strumenti per lavorare con i dati in formato JSON

JSON Eveluator

Un piccolo consiglio che tornerà utile quando si scrive codice utilizzando l'API di Netlas. Per comprendere più velocemente la struttura di un file JSON e trovare il percorso per ottenere un determinato valore, utilizza strumenti speciali come:

  • JSON Path Online Evaluator
  • JSON Path Finder

Libreria Python di Netlas

Il modo più semplice per automatizzare le richieste all'API di Netlas è utilizzare una libreria Python (pacchetto) appositamente progettata.

Repo Github della libreria Netlas-Python

Vediamo come funziona con un semplice esempio. Tutti gli esempi di codice del Netlas Cookbook si trovano nella cartella scripts. Puoi clonare questo repository ed eseguirli sul tuo dispositivo:```shell git clone https://github.com/netlas-io/netlas-cookbook

root@kitploit:~
Se non hai mai eseguito uno script Python prima d'ora e non sai come fare, puoi iniziare aprendo il repository Netlas CookBook in Gitpod.
Gitpod è un ambiente di sviluppo cloud basato su Ubuntu (distribuzione Linux). Apri questo link nel tuo browser (accedi con il tuo account Github):

[Run Netlas Cookbook in Gitpod](https://gitpod.io#https://github.com/netlas-io/netlas-cookbook)

![Netlas Github](https://assets.kitploit.com/production/public/readmes/6659/20c7d3841932ff04a4f4dc7b9ca2ae667e23e9d0af7b034342bd7db6d7efccfe.png)


Installa la libreria Python di Netlas usando pip (gestore di pacchetti per Python). Digita nella riga di comando:```shell
pip install netlas

Controlla l'installazione. Inserisci nella riga di comando:```shell netlas --help

root@kitploit:~
Esegui netlas_python_example.py:```shell
python3 scripts/netlas_python_example.py

E, naturalmente, puoi semplicemente copiare il codice e salvarlo nei file. Ecco il codice del primo esempio:```python import netlas

apikey = "YOUR API KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query port:7001

netlas_query = netlas_connection.query(query="port:7001")

iterate over data and print: IP address, port, path and protocol

for response in netlas_query['items']: print(f"{response['data']['ip']}:{response['data']['port']}{response['data']['path']} [{response['data']['protocol']}]")

root@kitploit:~
### Esempi di chiavi di risposta per ottenere dati utili

È stato menzionato sopra che per trovare le patch JSON delle risposte API per ottenere i dati necessari, è possibile utilizzare applicazioni online speciali (valutatori JSON). Per rendere la tua vita ancora più facile, ecco una piccola lista di esempi di chiavi di risposta della libreria Python che sono più spesso necessarie.```python
# Main domain/ip info
response['data']['uri']
response['data']['ip']
response['data']['http']['title']
response['data']['http']['meta']
response['data']['http']['body']

# Geo info
response['data']['geo']['continent']
response['data']['geo']['country']
response['data']['geo']['city']
response['data']['geo']['location']['lat']
response['data']['geo']['location']['long']

# Whois geo info
response['data']['whois']['net']['country']
response['data']['whois']['net']['address']
response['data']['whois']['net']['city']
response['data']['whois']['net']['contacts']['emails']
response['data']['whois']['net']['contacts']['phones']

# Http status and favicon ico info
response['data']['port']
response['data']['http']['status_code']
response['data']['http']['status_line']
response['data']['http']['favicon']['image']
response['data']['http']['favicon']['path']

# Basic CVE info
response['data']['cve'][0]['name']
response['data']['cve'][0]['description']
response['data']['cve'][0]['base_score']
response['data']['cve'][0]['has_exploit']
response['data']['cve'][0]['exploit_links']

Tipi di dati di risposta di Netlas Python

Tipi di dati di Netlas Python

Quando si lavora con la libreria Netlas Python, è molto importante specificare correttamente il tipo di dati che si desidera recuperare. Per impostazione predefinita, viene restituito il tipo response e molti esempi di Netlas CookBook lo utilizzano.

Ma per alcune attività, come ottenere informazioni whoois su un dominio o cercare domini in una sottorete, è necessario utilizzare un tipo di dati diverso. Ad esempio:```python netlas_query = netlas_connection.query(query='a:"163.114.132.0/24"',datatype="domain")

root@kitploit:~
Se pensi che una query non restituisca risultati quando dovrebbe - prova semplicemente a cambiare il valore del parametro **datatype**. È molto probabile che questo aiuti.

Datatype disponibili:

- **datatype="response"** corrisponde ai risultati ottenibili in [Netlas Responses Search](https://app.netlas.io/responses/).
- **datatype="domain"** corrisponde ai risultati ottenibili in [Netlas DNS search](https://app.netlas.io/domains/)
- **datatype="domain-whois"** corrisponde ai risultati ottenibili in [Netlas Domain Whois Search](https://app.netlas.io/whois_domains/).
- **datatype="ip-whois"** corrisponde ai risultati ottenibili in [Netlas IP Whois Search](https://app.netlas.io/whois_ip/).
- **datatype="cert"** corrisponde ai risultati ottenibili in [Netlas Certificates Search](https://app.netlas.io/certs/).


### Netlas CLI Tools

![Netlas CLI Tools](https://assets.kitploit.com/production/public/readmes/6659/88c2402f9da5a3ece87a4459de9b967691428d60df86f828d83722c50bde9d44.png)

Puoi anche utilizzare la libreria Python di Netlas direttamente dalla riga di comando. Ad esempio:```bash
netlas search "http.title:johnsmith" -f json >results.json

Questo semplice comando cerca tutti i server che hanno la parola johnsmith nell'header, restituisce i risultati in formato JSON e li salva nel file resutls.json.

Tutte le altre funzionalità dell'API Netlas possono essere utilizzate allo stesso modo. Puoi saperne di più tramite l'aiuto (comando -h) e gli esempi nel Netlas Cookbook (quello che stai leggendo ora).``` Usage: netlas [OPTIONS] COMMAND [ARGS]...

Options: -h, --help Show this message and exit.

Commands: count Calculate count of query results. download Download data. host Host (ip or domain) information. indices Get available data indices. profile Get user profile data. savekey Save API key to the local system. search (query) Search query. stat Get statistics for query.

root@kitploit:~
Prima di eseguire diversi comandi di Netlas CLI Tools, salva la chiave API nelle impostazioni:```bash
netlas savekey YOUR_API_KEY

Abbiamo anche un repository Github con alcuni esempi di automazione di varie attività utilizzando script bash e gli strumenti CLI di Netlas:

Netlas Scripts

Metodi di Ricerca, Download e Host

L'API di Netlas ha molti metodi, ma i più comunemente utilizzati sono i metodi search e download. Sono molto simili tra loro, ma presentano comunque alcune differenze.

Il metodo search carica una pagina di risultati (20 elementi) alla volta e consente di caricare un massimo di 200 pagine (20*200=4000 elementi). Il metodo download scarica tutti i risultati (ma richiede più risorse per l'esecuzione).

Esiste anche un metodo host che restituisce semplicemente le informazioni più basilari su un particolare dominio o IP (il datatype (come per altri metodi) non è necessario specificare):```bash netlas host "51.159.153.170"

root@kitploit:~
### Parametri aggiuntivi della richiesta

L'API Netlas ti consente di regolare flessibilmente i dati restituiti dalle richieste con parametri aggiuntivi. Ad esempio:

* indices - id che corrisponde a una data di indicizzazione specifica. Per trovare l'id per una data specifica, apri app.netlas.io, clicca sul calendario a destra della barra di inserimento della query di ricerca, seleziona la data che ti interessa e osserva come cambia il parametro indices nell'URL nella barra degli indirizzi del browser.
* start - numero di pagina dei risultati (default 0)
* fields - nomi dei campi da includere nei risultati (tutti i campi di default). Sarà utile per velocizzare e ottimizzare il codice con un gran numero di richieste.


### Effettuare richieste con Python (senza la libreria Python Netlas)


Potresti trovare più facile in alcuni casi non utilizzare la Netlas Python Library, ma usare il pacchetto standard requests di Python, familiare a molti sviluppatori:

Inserisci nella riga di comando:```bash
python scripts/python_example.py

Codice sorgente di python_example.py:```python import requests

response = requests.get("https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*",{'X-API-Key': 'YOUR API KEY'})

print(response.json())

root@kitploit:~
Ma la libreria Python di Netlas è comunque preferibile poiché progettata per gestire diversi problemi con l'elaborazione delle query (errori, lunghe attese, ecc.).


### Esempi per altri linguaggi di programmazione

Sebbene raccomandiamo l'uso della nostra libreria Python per automatizzare la ricerca in Netlas, vale la pena notare che l'API Netlas può essere integrata nella maggior parte delle applicazioni con un'ampia varietà di stack tecnologici. La cosa principale è che sia in grado di effettuare **richieste REST** e **analizzare dati JSON**.

Ecco alcuni esempi in diversi linguaggi di programmazione popolari.


#### NodeJS <!-- omit in toc -->

![Node JS Netlas](https://assets.kitploit.com/production/public/readmes/6659/b4dd5d1eb33fafddfe44c22062b6e7e9b4e1471123ef6410a9fc3a5a8bc34a78.png)

Inserisci nella riga di comando:```bash
node scripts/node_example.js

Se non stai utilizzando Gitpod, dovresti avere NodeJS installato sul tuo dispositivo.

Codice sorgente di nodejs_example.js:```javascript fetch('https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*', { headers: { "X-API-Key": "YOUR_API_KEY", }, }) .then((response) => response.text()) .then((body) => { var jsonArray = JSON.parse(body); console.log(jsonArray['items'][0]); });

root@kitploit:~
#### Ruby <!-- omit in toc -->

![Ruby Netlas](https://assets.kitploit.com/production/public/readmes/6659/7237511c7ee0f39e270569af8b0ae12974684ad3087b8ea373a2df2719a03cdf.png)

Inserisci nella riga di comando:```bash
ruby scripts/ruby_example.rb

Se non stai usando Gitpod, dovresti avere Ruby installato sul tuo dispositivo.

Codice sorgente di ruby_example.rb:```ruby require 'net/http' require 'uri' require 'json'

uri = URI("https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*") req = Net::HTTP::Get.new(uri) req['X-API-Key'] = "YOUR_API_KEY"

res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') { |http| http.request(req) }

jsonArray = JSON.parse(res.body)

puts jsonArray['items'][0]['data']['domain']

root@kitploit:~
#### Bash <!-- omit in toc -->

![Bash Netlas](https://assets.kitploit.com/production/public/readmes/6659/c2f52fa6cb554433ae4b234636cd4b06702691d45b23a7d0e0ebc951ab3c6b06.png)

Inserisci nella riga di comando:```bash
bash scripts/bash_example.sh

Codice sorgente di bash_example.sh:``` curl -X 'GET'
'https://app.netlas.io/api/domains/?q=ivanov.com&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[0].data.last_updated

root@kitploit:~
### Utilità JQ

Nota che nell'esempio precedente, l'utilità JQ è stata utilizzata per estrarre campi da dati JSON. 

Viene talvolta definita "come sed per dati JSON". È uno strumento sorprendentemente utile per lavorare con qualsiasi dato JSON. Ecco alcuni esempi di sintassi.

Stampa il primo elemento dell'array JSON:```
.items[0] 

Stampa tutti gli elementi dell'array JSON:``` .items[]

root@kitploit:~
Stampa tutti i sottoelementi 'data' del primo elemento dell'array JSON:```
.['items'][0]['data'][]

Stampa tutti i sub-subitem per ogni elemento dell'array JSON:``` .items[].data.technical[]

root@kitploit:~
Puoi leggere di più su JQ qui (ti consiglio di prestare particolare attenzione al filtraggio dei dati): [documentazione dell'utilità JQ](https://jqlang.github.io/jq/)


### Strumenti AI per Scrivere Codice

![You.com](https://assets.kitploit.com/production/public/readmes/6659/6d2992d2f27d7aeb930c9b970363604d510c46b2cda53cc2f87d25bb0ab757e7.png)

Se incontri problemi durante la personalizzazione degli esempi del Netlas Cookbook, ti consigliamo di cercare aiuto da strumenti AI per migliorare e scrivere codice. Per esempio:

[ChatGPT](https://chatgpt.com)  
[Code Llama](https://huggingface.co/spaces/codellama/codellama-playground)  
[You.com](https://you.com/)  

Quando lavori con tali servizi, devi solo descrivere a parole il compito che vuoi risolvere con l'aiuto del codice.


### Verificatori di Codice
![Python code check](https://assets.kitploit.com/production/public/readmes/6659/6622b278b508349c7921d1208ce2267fcc77090c17189613c87f690200a07119.png)

Quando rielabori gli esempi del Netlas Cookbook per adattarli ai tuoi scopi, potresti scoprire che il codice non verrà eseguito a causa di alcuni errori. Strumenti online speciali possono aiutarti a trovarli e correggerli:  

[ExtendsClass Python Tester](https://extendsclass.com/python-tester.html)
[Snyk](https://snyk.io/code-checker/python/)

Se non vuoi copiare il tuo codice su servizi di terze parti, puoi verificarlo per errori sul tuo dispositivo utilizzando Pylint (analizzatore statico del codice):

[Pylint Python Package](https://pypi.org/project/pylint/)



## Utilizzo di Netlas.io per OSINT (Open Source Intelligence)

![OSINT Flowchart](https://assets.kitploit.com/production/public/readmes/6659/b433d1e7a92497c03bf05b19f663f7fa8643480533b961801bfc93ad6bad4927.png)

Netlas.io può aiutarti a raccogliere dati su un dominio o un'azienda, oltre a trovare menzioni di una persona (o chiunque) su Internet. 

Può anche essere utilizzato per trovare versioni vecchie di pagine web (come analogo della Wayback Machine).

### Cerca Nickname o Email di una Persona nei Contatti WHOIS

Spesso i dati WHOIS contengono solo le informazioni di contatto dell'azienda che registra i domini. Ma a volte possono esserci contatti personali di persone di interesse. Questa query ti aiuterà a trovarli.  

*Questo metodo potrebbe richiedere un abbonamento a pagamento.* [Vedi i prezzi](https://netlas.io/pricing/)

**Esempio di query di ricerca**  

![Whois email search example](https://assets.kitploit.com/production/public/readmes/6659/43eb2a871fe128cecbee6cb6b4164a1876053d8e12699c72a53e36c229f266f7.png)```
whois.related_nets.contacts.emails:sweetwater

Prova su Netlas

Esempio di richiesta API

Strumenti CLI Netlas:```bash netlas search "whois.related_nets.contacts.emails:sweetwater*" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=whois.related_nets.contacts.emails%3Asweetwater*&fields=' \
  -H 'accept: application/json' \
  -H 'X-API-Key: aqkd8L4MR93Tkcaz2UXDXrRleV8Vlvbv' | jq .items[].data.uri

Esempio di codice (Libreria Python Netlas)

Whois email search example Python

Esegui nella riga di comando:```bash python scripts/osint/whois_email_search.py

root@kitploit:~
Codice sorgente di scripts/osint/whois_email_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `whois.related_nets.contacts.emails:sweetwater`
netlas_query = netlas_connection.query(query="whois.related_nets.contacts.emails:sweetwater*")


# iterate over data and print: URL, Country, Related nets data
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['geo']['country'])
    print (response['data']['whois']['related_nets'])

Cerca soprannome o email di una persona nel titolo e nel corpo di una pagina web

Netlas ti permette di cercare menzioni di determinate parole nelle intestazioni e nel codice html delle pagine web. Puoi cercare parole per corrispondenza esatta, per corrispondenza approssimativa (vedi la sezione query fuzzy) e sostituire con asterischi i caratteri di cui non sei sicuro.

Esempio di query di ricerca

Esempio di ricerca nel titolo/corpo``` http.title:sweetwater OR http.body:sweetwater

root@kitploit:~
[Prova in Netlas](https://app.netlas.io/responses/?q=http.title%3Asweetwater%20OR%20http.body%3Asweetwater&page=1&indices=)

**Esempio di richiesta API**

Strumenti CLI di Netlas:```bash
netlas search "http.title:sweetwater OR http.body:sweetwater" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=whois.related_nets.contacts.emails%3Asweetwater*&fields='
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Esempio di codice (libreria Python Netlas)**

![Esempio di ricerca Whois email in Python](https://assets.kitploit.com/production/public/readmes/6659/8678cf14e22a1a44cc2c44c846b86ec2ad24b1eadef130a4eade7696ff88b061.png)

Esegui nella riga di comando:```bash
python scripts/osint/title_body_search.py

Codice sorgente di scripts/osint/title_body_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.title:sweetwater OR http.body:sweetwater

netlas_query = netlas_connection.query(query="http.title:sweetwater OR http.body:sweetwater*")

iterate over data and print: IP,URL,web page title

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['http']['title'])

root@kitploit:~
### Ricerca di "Juicy Info Files" nei sottodomini del sito web dell'azienda

![Ricerca di Juicy Info Files](https://assets.kitploit.com/production/public/readmes/6659/c14d7be4acd47fb0ede930eb0ecbb06f3f362179fd4bca46747f0ce7d0caeb7d.png)

Metagoofil è stato uno strumento popolare tra i practitioner di OSINT per molti anni. Cerca su Google file di documenti sul sito web di un'azienda (pdf, xlsx, docx, ecc.) e analizza i loro metadati.

E ciò che non è indicizzato da Google può essere trovato con Netlas e poi scaricato sul tuo computer e analizzato con lo strumento [MetaDetective](https://github.com/franckferman/MetaDetective).```
uri:*lidl.* AND http.body:pdf

Try in Netlas

Puoi sostituire il filtro uri: con domain: e host: (ti consiglio di confrontare sempre i risultati quando usi questi tre filtri).

Puoi anche cercare un'ampia varietà di estensioni di file, a seconda di cosa vuoi trovare. Ad esempio:``` http.body:xls http.body:xlsx http.body:doc http.body:docx http.body:ppt http.body:pptx http.body:mdb http.body:csv http.body:sql http.body:sqlite

root@kitploit:~
**Esempio di richiesta API**

Netlas CLI Tools:```bash
netlas search "uri:*lidl.* AND http.body:pdf"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=uri%3A*lidl.*%20AND%20http.body%3Apdf&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Ricerca di informazioni interessanti](https://assets.kitploit.com/production/public/readmes/6659/faec884f54484c0cc6dd5ef76a79b9ca2e5ef372078289e8f3c3cf2cf4af9fac.png)

Esegui nella riga di comando:```bash
python scripts/osint/juicyinfo_search.py

Codice sorgente di scripts/osint/juicyinfo_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query uri:*lidl.* AND http.body:pdf

netlas_query = netlas_connection.query(query='uri:lidl. AND http.body:pdf')

iterate over data and print: uri, body

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['body'])

root@kitploit:~
Per automatizzare i collegamenti a documenti PDF dal corpo della pagina web puoi utilizzare il pacchetto Python [Re](https://docs.python.org/3/library/re.html).


### Ricerca di menzioni di numeri di telefono

Come per nickname ed email, puoi anche cercare menzioni di un numero di telefono nel codice delle pagine web o nelle informazioni di contatto WHOIS. 

Isoliamo questo compito come esempio separato, perché la ricerca di un numero di telefono è complicata dal fatto che può essere scritto in diversi formati.

**Esempio di query di ricerca**  

![Phone number search example](https://assets.kitploit.com/production/public/readmes/6659/92872d57f9ac03e90323f35d9d8303364050f36aa748a26eadb8996d10ce66b9.png)```
http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999

Try in Netlas

Quando effettui una richiesta, devi tenere conto del formato di registrazione del numero di telefono accettato nel paese a cui appartiene il numero che ti interessa.

Esempio di richiesta API

Netlas CLI Tools:```bash netlas search "http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999" -f json

root@kitploit:~
Non dimenticare che puoi cercare i numeri di telefono non solo nel corpo della pagina, ma anche nelle informazioni di contatto WHOIS. Questo può essere fatto utilizzando il filtro **whois.related_nets.contacts.phones:**

Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.body%3A1%3F234%3F567%3F89%3F99%20OR%20http.body%3A12345678999%20OR%20http.body%3A1234%3F5678%3F999&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Esempio di codice (Netlas Python Library)

Phone number search example Python

Esegui nella riga di comando:```bash python scripts/osint/phonenumber_search.py

root@kitploit:~
Codice sorgente di scripts/osint/phonenumber_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999`
netlas_query = netlas_connection.query(query="http.body:1?234?567?89?99 OR http.body:12345678999 OR http.body:1234?5678?999")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])

Ricerca di menzioni di file (Alla ricerca di contenuti che potrebbero violare i diritti d'autore)

Immaginiamo che tu sia un musicista e desideri trovare tutti i siti in cui sono pubblicati i tuoi brani. Puoi farlo cercando pagine che menzionano il tuo nome e contengono link a file con estensione .mp3.

Esempio di query di ricerca

Esempio di ricerca nel titolo/corpo``` (http.title:alla OR http.body:alla) AND http.body:*.mp3

root@kitploit:~
[Prova in Netlas](https://nt.ls/HEhJj)

**Esempio di richiesta API**

Strumenti CLI Netlas:```bash
netlas search "(http.title:alla OR http.body:alla) AND http.body:*.mp3" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=(http.title%3Aalla%20OR%20http.body%3Aalla)%20AND%20http.body%3A*.mp3&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.http.title

root@kitploit:~
**Esempio di codice (libreria Python Netlas)**

![File mentions search example Python](https://assets.kitploit.com/production/public/readmes/6659/919f820c21d9cda328524722b820783c3941447f3d447f9a72f5224d4cfd9ac1.png)

Esegui nella riga di comando:```bash
python scripts/osint/file_mentions_search.py

Codice sorgente di scripts/osint/file_mentions_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query (http.title:alla OR http.body:alla) AND http.body:*.mp3

netlas_query = netlas_connection.query(query="(http.title:alla OR http.body:alla) AND http.body:*.mp3")

iterate over data and print: IP, URL,web page title

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['http']['title'])

root@kitploit:~
### Raccolta di informazioni WHOIS sui domini

WHOIS è un database pubblico mondiale che memorizza informazioni su tutti i domini registrati nel mondo.

**Esempio di query di ricerca**  

![Title/body search example](https://assets.kitploit.com/production/public/readmes/6659/88c9654440e88b387d2422ac397334793daa8600d434d99d457b908e8abe154b.png)

Utilizza [la ricerca WHOIS sui domini](https://app.netlas.io/whois_domains/)```
github.com

Esempio di richiesta API

Netlas CLI Tools:```bash netlas host github.com -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/whois_domains/?q=github.com&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' |  jq .items[].data.technical.street

Esempio di codice (Netlas Python Library)

WHOIS example Python

Esegui nella riga di comando:```bash python scripts/osint/whois_search.py

root@kitploit:~
Codice sorgente di scripts/osint/whois_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from whois for google.com domain
netlas_query = netlas_connection.query(query="google.com",datatype="whois-domain")


# iterate over data and print: owner name
for response in netlas_query['items']:
    print (response['data']['technical']['name'])  

Cerca posizione nel tag <address>

Il tag <address> si trova all'interno del tag <head> di una pagina web e può contenere indirizzi fisici. Con una ricerca che utilizza questo tag, puoi trovare siti associati a una particolare via e talvolta anche a un edificio specifico.

Esempio di query di ricerca

Author meta search``` http.contacts.address:kirby

root@kitploit:~
[Prova in Netlas](https://app.netlas.io/responses/?q=http.contacts.address%3Akirby&page=1&indices=)

Puoi anche usare http.contacts.email: per la ricerca email.

**Esempio di richiesta API**

Netlas CLI Tools:```bash
netlas search "http.contacts.address:kirby" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.contacts.address%3Akirby&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.http.contacts

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Contacts address search Python](https://assets.kitploit.com/production/public/readmes/6659/aa659130f38a0287850a28fc0e37e93bd89939346049e855652cebb8ed7fcba3.png)

Esegui nella riga di comando:```bash
python scripts/osint/contacts_search.py

Codice sorgente di scripts/osint/contacts_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.contacts.address:kirby

netlas_query = netlas_connection.query(query="http.contacts.address:kirby")

iterate over data and print: URL, Contacts

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['contacts'])

root@kitploit:~
###  Cerca il nome dell'autore nei Meta Tag

I tag `<meta>` si trovano all'interno del tag `<head>` di una pagina web e contengono le parole chiave più importanti, la descrizione, informazioni di servizio varie e il nome dell'autore.

Cercare nickname e nome/cognome tramite meta tag (http.meta) consente di trovare siti associati a una persona specifica più velocemente rispetto alla ricerca dell'intero codice html (http.body).

**Esempio di query di ricerca**  

![Author meta search](https://assets.kitploit.com/production/public/readmes/6659/059e767c5fa7d63af4548d77c1ac1b01c4f3a79cef1c1d91320f86f6e11a1ba9.png)```
http.meta:nazar

Prova in Netlas

Esempio di richiesta API

Netlas CLI Tools:```bash netlas search "http.meta:nazar" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.meta%3Anazar&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.http.meta

Esempio di codice (Netlas Python Library)

Ricerca metadati autore Python

Esegui nella riga di comando:```bash python scripts/osint/author_meta_search.py

root@kitploit:~
Codice sorgente di scripts/osint/author_meta_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.meta:nazar`
netlas_query = netlas_connection.query(query="http.meta:nazar")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['http']['title'])
    print (response['data']['http']['meta'])

Quali Altre Cose Interessanti Si Possono Trovare nei Meta Tag di un Documento HTML?

Oltre al nome dell'autore, i meta tag possono contenere una varietà di informazioni: codifica, lingua, autorizzazione all'indicizzazione della pagina da parte dei robot dei motori di ricerca, testo per le schede di collegamento nei social network, metadati OpenGraph e molto altro. Ecco alcuni ulteriori esempi di meta tag che possono contenere informazioni utili per le indagini:

  • <meta name="description"> - descrizione del contenuto della pagina web.
  • <meta name="keywords"> - parole chiave che descrivono il contenuto della pagina web.
  • <meta name="generator"> - nome dello strumento utilizzato per generare il contenuto della pagina (utile per la ricerca di CMS e piattaforme di hosting).
  • <meta name="copyright"> - nome della persona o dell'azienda che detiene i diritti d'autore sul contenuto della pagina web.

Ricerca tramite il Testo dei Banner dei Server FTP

Un altro passo importante per trovare informazioni su una persona o un'azienda è cercare la sua menzione nel testo dei banner dei server FTP. È possibile che l'indirizzo IP dei server trovati sia la chiave per individuare altri siti correlati alla persona o all'azienda che ti interessa. E, in caso di grande fortuna, trovare qualcosa di interessante nei file lì pubblicati (se il server FTP è aperto).

Esempio di query di ricerca

Ricerca CVE per nome tag``` ftp.banner:"Collado"

root@kitploit:~
Se hai bisogno di cercare server FTP tramite un altro parametro (come città o intervallo di indirizzi IP), utilizza il filtro prot7:ftp.

[Prova su Netlas](https://app.netlas.io/responses/?q=ftp.banner%3A%22Collado%22%20&page=1&indices=)

**Esempio di richiesta API**

Netlas CLI Tools:```bash
netlas search 'ftp.banner:"Collado"' -f json

Nota che quando vengono usati doppi apici nelle query, la query stessa è scritta tra apici singoli.

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=ftp.banner%3A%22Collado%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Ricerca hash favicon Python](https://assets.kitploit.com/production/public/readmes/6659/099cc2e0a7ca8c242476fe9e27e8c9441e0c95ce82ae143a7f66289a13c21588.png)

Esegui nella riga di comando:```bash
python scripts/osint/ftp_banner_search.py

Source code of scripts/osint/ftp_banner_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query ftp.banner:"Collado"

netlas_query = netlas_connection.query(query='ftp.banner:"Collado"')

iterate over data and print: IP, URL, ftp banner text

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri']) print (response['data']['ftp']['banner'])

root@kitploit:~
### Ricerca di Informazioni di Contatto nei Certificati SSL

![Ricerca di certificati](https://assets.kitploit.com/production/public/readmes/6659/5f3d32db37a70b5a8f9f08efe11c978b950e00c2841d44f63f4e709c711e909a.png)

Un certificato SSL è un certificato digitale che autentica un sito web e consente l'uso di una connessione crittografata. Può contenere informazioni sul suo proprietario: nome della persona di contatto, nome dell'organizzazione, paese e talvolta anche l'indirizzo e il codice postale. Puoi cercare queste informazioni utilizzando i seguenti filtri (e molti altri):

- `certificate.issuer.email_address`
- `certificate.issuer.given_name`
- `certificate.issuer.organization`
- `certificate.issuer.postal_code`
- `certificate.issuer.street_address`
- `certificate.issuer.surname`

Proviamo a trovare indirizzi IP che hanno una certa parola nell'indirizzo stradale nel loro certificato:```
certificate.issuer.street_address:*mcgill*

Prova in Netlas

Esempio di richiesta API

Strumenti CLI Netlas:```bash netlas search "certificate.issuer.street_address:mcgill" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=certificate.issuer.street_address%3A*mcgill*&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Esempio di codice (Libreria Python Netlas)

Ricerca certificati Python

Esegui nella riga di comando:```bash python scripts/osint/certificates_search.py

root@kitploit:~
Codice sorgente di scripts/osint/certificates_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `certificate.issuer.street_address:*mcgill*`
netlas_query = netlas_connection.query(query="certificate.issuer.street_address:*mcgill*")


print (type(netlas_query))

# iterate over data and print: ip, url, cetificate issuer 
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['certificate']['issuer'])  

Utilizzare Netlas come alternativa alla Wayback Machine

Archive.org è stato utilizzato dagli specialisti OSINT per cercare vecchie versioni di siti web e pagine di profili di social media al fine di trovare informazioni di contatto e altri dati ormai cancellati.

Ma, sfortunatamente, archive.org non salva copie di tutti i siti e non lo fa molto spesso (per alcuni siti solo un paio di volte all'anno o meno).

Tuttavia, Netlas salva vecchie versioni dei siti anche dal 2021!

I seguenti filtri sono più spesso utilizzati per cercare siti:``` http.title:"github.com"

root@kitploit:~

domain:github.com

root@kitploit:~

host:github.com

root@kitploit:~
![Seleziona scansione](https://assets.kitploit.com/production/public/readmes/6659/6fb8d1ed55265153faebb6ed93a9a5a184d8a6b54f0cf9fa12b92a304939f062.png)

Se fai clic sull'icona più a destra accanto al campo per inserire le query di ricerca, vedrai un menu per selezionare una data di scansione. Puoi usarlo per filtrare i codici html dei siti salvati in una data specifica.

![Copia corpo della risposta](https://assets.kitploit.com/production/public/readmes/6659/b59544af96ce2c341761eb5cd6f4b36ed2e271c14957a6ecb373a2b972fbeff6.png)

Per vedere l'aspetto del sito, copia il contenuto del campo "body" (scheda response) in un qualsiasi editor di testo e cancella i caratteri \t\r\n dal codice html.

![Visualizzatore HTML](https://assets.kitploit.com/production/public/readmes/6659/f1b8a6983795f5b608b8d2ec37f5069c588749655a361d70b250ca8c0df24967.png)

Dopodiché, copia il codice in uno dei visualizzatori html online, come [Code beautify](https://codebeautify.org/htmlviewer). Oppure salva il file in formato html e poi aprilo nel browser.

### 9 Modi per Cercare Siti Web Correlati

![Cerca siti web correlati](https://assets.kitploit.com/production/public/readmes/6659/354bf2e8695fd9255ce513dba2685cc7c6595e8cb06d1c6f9e4d48bd3dcccb72.png)

Quando si raccolgono informazioni su una persona o un'azienda, può essere importante trovare quanti più siti possibile che possano essere in qualche modo correlati ad essi. Ci sono almeno 5 modi per farlo con Netlas.

1. ID per vari servizi (analytics, sistemi pubblicitari, applicazioni per l'integrazione con social network e sistemi di pubblicazione). La loro sovrapposizione può indicare che è stata coinvolta una persona o un team. Alcuni esempi:

Google Analytics:```
http.tracker.google_analytics:"G-X82FSVSMTV"

Google Tag Manager:``` http.tracker.google_analytics:"GTM-N6462KFQ"

root@kitploit:~
AddThis:```
http.body:"AT-ra-500bcd681b192302"

Facebook Pixel:``` http.tracker.facebook_pixel:317853189093681

root@kitploit:~
Yandex Metrika```
http.tracker.yandex_metrica:89723437

Amazon Publisher Servies:``` http.body:APS-XXXX

root@kitploit:~
Sì, tutto si trova nel codice su alcuni siti.

E una serie di altri identificatori che si trovano più spesso in cima al codice HTML (ma a volte in tutto il codice).

[Try in Netlas](https://nt.ls/BCrw9)

2. ID dei programmi di affiliazione (usa anche http.body per cercarli). Puoi trovarli nei link di affiliazione che una persona pubblica su altri siti o nei social network. Possono essere i seguenti parametri URL (e simili):```
aff_fcid=
user_id=
partner_id=
ref_id=
  1. Cerca per nome dell'organizzazione nella ricerca Domain Whois Netlas

Cerca organizzazione nel WHOIS``` "GitHub, Inc."

root@kitploit:~
[Prova su Netlas](https://app.netlas.io/whois_domains/?q=%22GitHub%2C%20Inc.%22&page=1&indices=)

4. Cerca per server di posta nella ricerca DNS di Netlas

![Cerca server di posta in DNS](https://assets.kitploit.com/production/public/readmes/6659/28cbe86f74bbf0959803083816d8da4819e41aed6b8cd56a58fadc479e1fab34.png)```
mx:*.parklogic.com

Try in Netlas

  1. Cerca per name server nella ricerca DNS di Netlas

Cerca name server in DNS``` ns:ns?.parklogic.com

root@kitploit:~
[Try in Netlas](https://app.netlas.io/domains/?q=mx%3A*.parklogic.com&page=1&indices=)

6. Ricerca menzioni di file (principalmente loghi e avatar degli utenti) [->](https://github.com/netlas-io/netlas-cookbook#search-file-mentions-looking-for-content-that-may-be-infringing-on-copyrights)

7. Ricerca sottodomini [->](https://github.com/netlas-io/netlas-cookbook#search-subdomains)

8. Ricerca contatti Whois (nella ricerca delle risposte Netlas) [->](https://github.com/netlas-io/netlas-cookbook#search-persons-nickname-or-email-in-whois-contacts)

9. Ricerca favicon [->](https://github.com/netlas-io/netlas-cookbook#favicon-search)

## Scraping (Estrarre dati dal corpo della pagina web)

L'API di Netlas è un ottimo strumento per raccogliere contatti e altri dati di siti web. In primo luogo, permette di farlo rapidamente. In secondo luogo, non richiede l'uso di proxy. In terzo luogo, permette di raccogliere dati da siti attualmente non disponibili.

Tuttavia, ci sono alcuni svantaggi: Netlas scansiona solo le pagine principali dei siti e alcuni siti rari non sono inclusi nel suo database a causa della protezione. Ma può comunque essere di grande utilità.

Esistono tre approcci principali allo scraping: raccogliere informazioni da tag HTML e selettori CSS, estrarre dati usando espressioni regolari e scraping basato su AI. Diamo un'occhiata più da vicino ai primi due.

### Pacchetto Beatifulsoup

[Beatifulsoup](https://pypi.org/project/beautifulsoup4/) è uno dei pacchetti Python più popolari al mondo per il parsing di codice HTML e file XML. Proviamo a usarlo per estrarre i titoli delle pagine (dai tag \<h1>, NON dai tag \<title> tages).

Prima, installa il pacchetto:```bash
pip install beautifulsoup4

Ed esegui scripts/osint/scraping_beatifulsoup.py:```bash python scripts/osint/scraping_beatifulsoup.py

root@kitploit:~
![Scraping con Beautiful Soup](https://assets.kitploit.com/production/public/readmes/6659/2a56f2848aeac7180d0257067b18148c4ba13cf9dfdc3916a39a0247ee07a584.png)

Codice sorgente di scripts/osint/scraping_beatifulsoup.py:```python
import netlas
from bs4 import BeautifulSoup

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:shop`
netlas_query = netlas_connection.query(query="http.body:shop")

# iterate over data and print: URL, h1 tags from body
for response in netlas_query['items']:
    print (response['data']['uri'])
    soup = BeautifulSoup(response['data']['http']['body'], "html.parser")
    try:
        print(soup.find("h1").get_text())
    except Exception:
        print("no h1 tags")
pass

Puoi estrarre dati da altri elementi delle pagine web in modo simile:``` soup.find("h3").get_text() soup.find("id='loginform'").get_text() soup.find("class='forms'").get_text() soup.find("href='https://example.com'").get_text()

root@kitploit:~
If you want to find all elements of a certain type use the find_all() method.


### Pacchetto Re

[Re](https://docs.python.org/3/library/re.html) è un pacchetto Python preinstallato per cercare e recuperare dati usando espressioni regolari. È utile per estrarre informazioni di contatto da pagine web e molti altri compiti. Vediamo un esempio di come funziona.

Esegui scripts/osint/scraping_re.py:```bash
python scripts/osint/scraping_re.py

Ri-scraping

Codice sorgente di scripts/osint/scraping_re.py:```python import netlas import re

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.body:shop

netlas_query = netlas_connection.query(query="http.body:shop")

iterate over data and print: URL, emails from body

for response in netlas_query['items']: print (response['data']['uri']) emails = re.findall("[a-zA-Z0-9-.]+@[a-zA-Z0-9-.]+", response['data']['http']['body']) try: print(emails) except Exception: print("no emails") pass

root@kitploit:~
Allo stesso modo, puoi estrarre link, numeri di telefono, indirizzi di portafogli di criptovalute e altro ancora. I pattern pronti possono essere trovati nelle librerie di espressioni regolari:

[Regex Lib](https://regexlib.com/)
[UI Bakery Regex Library](https://uibakery.io/regex-library)
[Regex 101](https://regex101.com/)


### Altri pacchetti Python per lo scraping

I pacchetti Beautiful Soup e Re sono solo uno dei tanti strumenti per estrarre dati da pagine web usando Python. Ecco alcuni altri esempi di tali pacchetti:


* [Scrapy](https://pypi.org/project/Scrapy/): È principalmente un crawler (uno strumento per attraversare le pagine del sito web utilizzando i link trovati su altre pagine) e, inoltre, ha ampie capacità per estrarre dati dalle pagine web.
* [Selenium](https://pypi.org/project/selenium/): Uno strumento per automatizzare l'esperienza del browser. Permette di estrarre dati da contenuti generati da JavaScript.
* [Lxml](https://pypi.org/project/lxml/): Strumento per estrarre e validare file XML. 
* [PDFtoText](https://pypi.org/project/pdftotext/) - strumento per estrarre contenuto testuale da file PDF.
* [pyChatGPT](https://pypi.org/project/pyChatGPT/) - pacchetto non ufficiale per l'interazione con CHATGPT (non richiede la chiave API di OpenAI), che permette di analizzare informazioni testuali con l'IA.


## Usare Netlas.io per le indagini sulle criptovalute

Netlas offre una grande opportunità per i ricercatori specializzati in crimini legati alle criptovalute. In primo luogo, può essere usato per cercare riferimenti a indirizzi di portafogli e numeri di transazione.  In secondo luogo, può essere usato per cercare fattorie di mining vulnerabili, nodi e altri server associati all'infrastruttura delle criptovalute.


### Cerca fattorie di mining

![Search mining farms](https://assets.kitploit.com/production/public/readmes/6659/77f381d83fa1d1d482941093c638ccc1620adb14365831ef7d74efa51913b2ec.png)

Le fattorie di mining Antminer, rilasciate per la prima volta da Bitmain nel 2013, sono una delle linee di modelli di fattorie di mining più popolari al mondo. Puoi trovarle dalla presenza della parola "antMiner" nell'header www_authenticate.```
http.headers.www_authenticate:antMiner

Try in Netlas

Puoi anche cercare altri tipi di fattorie di mining. Ad esempio:``` http.headers.www_authenticate:XMR-Stak-Miner

root@kitploit:~
Sperimenta combinando diversi filtri, le parole 'miner/mining' e i nomi delle criptovalute.

**Esempio di richiesta API**

Strumenti CLI Netlas:```bash
netlas search "http.headers.www_authenticate:antMiner"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.headers.www_authenticate%3AantMiner&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Maining farms search Python](https://assets.kitploit.com/production/public/readmes/6659/9b033acf5bc227191a51e0b969716bdda2540fe8a9f17373248f1494e1812164.png)

Esegui nella riga di comando:```bash
python scripts/crypto/mining_farms_search.py

Codice sorgente di scripts/crypto/mining_farms_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.headers.www_authenticate:antMiner

netlas_query = netlas_connection.query(query='http.headers.www_authenticate:antMiner')

iterate over data and print: uri, http headers

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['http']['headers'])

root@kitploit:~
### Cerca Siti Web Infettati da Cryptominer

![Search website injected with miners](https://assets.kitploit.com/production/public/readmes/6659/0163afad4013a8a92217f48e4bb628666a6a61822a0a14f6e6cd7ab0c29138f9.png)

Coinhive, un servizio che permette ai siti web (per lo più hackerati) di utilizzare i computer dei loro visitatori per minare criptovalute, chiuderà nel 2019. Ma nonostante ciò, i suoi link sono ancora incorporati in molti siti in tutto il mondo. Proviamo a trovarli:```
http.body:coinhive.min.js domain:*

Nota che utilizziamo il filtro domain:* per trovare specificamente i siti, non tutti i dispositivi.

Allo stesso modo, puoi cercare siti infettati da altri cryptominer (così come altri codici malevoli che vengono eseguiti sul lato dell'utente).

Esempio di richiesta API

Netlas CLI Tools:```bash netlas search "http.body:coinhive.min.js domain:*"

root@kitploit:~
Curl:```bash
curl -X 'GET' \
   'https://app.netlas.io/api/responses/?q=http.body%3Acoinhive.min.js%20domain%3A*&source_type=include&start=0&fields=*' \
   -H 'accept: application/json' \
   -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

Esempio di codice (libreria Python Netlas)

Ricerca farm di mining Python

Esegui nella riga di comando:```bash python scripts/crypto/search_sites_injected_with_miners.py

root@kitploit:~
Codice sorgente:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:coinhive.min.js domain:*`
netlas_query = netlas_connection.query(query='http.body:coinhive.min.js domain:*')


# iterate over data and print: uri
for response in netlas_query['items']: 
    print (response['data']['uri'])

Cerca nodi Bitcoin vulnerabili

Cerca nodi bitcoin

I nodi Bitcoin utilizzano la porta 8333 per la connessione TCP. Pertanto, è facile trovarli usando il filtro di ricerca "port:".``` port:8333 cve:*

root@kitploit:~
Nota che usiamo il filtro "cve:*" per cercare server con vulnerabilità.

**Esempio di richiesta API**

Netlas CLI Tools:```bash
netlas search "port:8333 cve:*"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=port%3A8333%20cve%3A*&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Search bitcoin nodes Python](https://assets.kitploit.com/production/public/readmes/6659/057eebb8a7790208aeb3cea45714a5699c9c31abd83d1eb703ceee4f578986f8.png)

Esegui in riga di comando:```bash
python scripts/crypto/search_bitcoin_nodes.py

Codice sorgente di scripts/crypto/search_bitcoin_nodes.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query port:8333 cve:*

netlas_query = netlas_connection.query(query='port:8333 cve:*')

iterate over data and print: uri, CVE name and description

for response in netlas_query['items']: print (response['data']['uri']) print (response['data']['cve'][0]['name']) print (response['data']['cve'][0]['description'])

root@kitploit:~
## Usare Neltas per il Pentest

Netlas.io ti permette di cercare siti con molti diversi tipi di vulnerabilità. Questo può essere fatto tramite il numero di vulnerabilità (CVE-...), il nome del software installato sul server, certe parole negli header delle pagine, e altri parametri.

Puoi monitorare le CVE (Common Vulnerabilities and Exposures) pubblicate più di recente su questi siti:

* [CVE Details](https://www.cvedetails.com/)
* [VulDB](https://vuldb.com/)
* [OpenCVE](https://www.opencve.io/)

Pubbliciamo regolarmente anche le query più rilevanti per cercare dispositivi e software vulnerabili sui nostri feed [Twitter](https://twitter.com/Netlas_io), [Telegram](https://t.me/netlas) e [Discord](https://nt.ls/discord), così come nel repository Github di [Netlas Dorks](https://github.com/netlas-io/netlas-dorks).

In questa sezione, tratteremo semplicemente i principi generali della ricerca di siti e server con vulnerabilità.

### Ricerca dei Sottodomini

Usando gli asterischi nelle query di ricerca, puoi trovare tutti i sottodomini di diversi livelli (il cui nome termina con il nome di un particolare dominio di primo livello (.com) o di secondo livello (google.com)).

**Esempio di query di ricerca**  

![Esempio di ricerca di sottodomini](https://assets.kitploit.com/production/public/readmes/6659/2ec8112759c93d396d8bf622ad7988833d4262aa8add2a2da46fdfe01f5aa717.png)```
domain:*.github.com OR host:*.github.com

Prova in Netlas

Esempio di richiesta API

Strumenti Netlas CLI:```bash netlas search "domain:.github.com OR host:.github.com" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=domain%3A*.github.com%20OR%20host%3A*.github.com&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

Codice di esempio (Libreria Python Netlas)

Esempio di ricerca di sottodomini Python

Esegui da riga di comando:```bash python scripts/pentest/subdomain_search.py

root@kitploit:~
Codice sorgente di scripts/pentest/subdomain_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `domain:*.github.com OR host:*.github.com`
netlas_query = netlas_connection.query(query="domain:*.github.com OR host:*.github.com")


# iterate over data and print: ip, url
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])

Cerca siti con vulnerabilità specifiche

Esempio di query di ricerca

CVE search``` cve.name:CVE-2022-22965

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=cve.name%3ACVE-2022-22965&page=1&indices=)

**Esempio di richiesta API**

Strumenti CLI di Netlas:```bash
netlas search "cve.name:CVE-2022-22965" -f json

CVE-2022-22965 - L'applicazione Spring MVC o Spring WebFlux in esecuzione su JDK 9+ può essere vulnerabile all'esecuzione remota di codice (RCE) tramite data binding. Dettagli

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.body%3A1%3F234%3F567%3F89%3F99%20OR%20http.body%3A12345678999%20OR%20http.body%3A1234%3F5678%3F999&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Esempio di ricerca CVE Python](https://assets.kitploit.com/production/public/readmes/6659/56e2afbc833f063d53d416a1aa8145a8af62e8183d4367dfa365285078789eba.png)

Esegui nella riga di comando:```bash
python scripts/pentest/cve_search.py

Codice sorgente di scripts/pentest/cve_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query cve.name:CVE-2022-22965

netlas_query = netlas_connection.query(query="cve.name:CVE-2022-22965")

iterate over data and print: ip, url

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri'])

root@kitploit:~
### Cerca siti con vulnerabilità che contengono una certa parola nella loro descrizione

Se non hai bisogno di investigare server con un tipo specifico di vulnerabilità, ma vuoi semplicemente vedere server vulnerabili in un gruppo specifico (come Oracle WebLogic Server o siti WordPress), puoi cercarli utilizzando parole chiave e il filtro cve.description:. 

Per filtrare i siti che hanno exploit pubblicati per le vulnerabilità, usa cve.has_exploit:true.

**Esempio di query di ricerca**  

![Ricerca per descrizione CVE](https://assets.kitploit.com/production/public/readmes/6659/03f621bed9ea16357222f19930d309b2d8d576761726cfa1a43f3f06d0f68353.png)```
cve.description:weblogic AND cve.has_exploit:true

Prova su Netlas

Esempio di richiesta API

Netlas CLI Tools:```bash netlas search "cve.description:weblogic AND cve.has_exploit:true" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=cve.description%3Aweblogic%20AND%20cve.has_exploit%3Atrue&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY | jq .items[].data.uri

Esempio di codice (Netlas Python Library)

Ricerca di descrizioni CVE Python

Esegui nella riga di comando:```bash python scripts/pentest/cve_description_search.py

root@kitploit:~
Codice sorgente di scripts/pentest/cve_description_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `cve.description:weblogic AND cve.has_exploit:true`
netlas_query = netlas_connection.query(query="cve.description:weblogic AND cve.has_exploit:true")

# iterate over data and print:  url, first CVE name first CVE description
for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['cve'][0]['description'])

Ricerca per intestazione HTTP del server

Questo metodo permette di trovare dispositivi prodotti da un'azienda specifica.

Esempio di query di ricerca

Ricerca per software del server``` http.headers.server:"yawcam"

root@kitploit:~
Cerca webcam YawCam.

[Prova su Netlas](https://app.netlas.io/responses/?q=http.headers.server%3A%22yawcam%22&page=1&indices=)

**Esempio di richiesta API**

Strumenti CLI di Netlas:```bash
netlas search 'http.headers.server:"yawcam"' -f json

Nota che quando si usano le virgolette doppie nelle query, la query stessa è scritta tra virgolette singole.

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.headers.server%3A%22yawcam%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Ricerca server intestazioni HTTP Python](https://assets.kitploit.com/production/public/readmes/6659/87261dd31bfd191d1eae9fe1b9f76537ae2ebfde6c44ed40dc7b67c3fa215249.png)

Esegui nella riga di comando:```bash
python scripts/pentest/server_name_search.py

Codice sorgente di scripts/pentest/server_name_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.headers.server:"yawcam"

netlas_query = netlas_connection.query(query='http.headers.server:"yawcam"')

iterate over data and print: IP, URL, server name

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['http']['headers']['server'])

root@kitploit:~
#### Login e Password Predefiniti <!-- omit in toc -->

Un'applicazione pratica della ricerca per nome del software negli header del server è la ricerca di dispositivi di un particolare fornitore. Ciò può essere necessario sia quando si cercano dispositivi con vulnerabilità specifiche, sia per dispositivi con login e password standard.

![Default passwords](https://assets.kitploit.com/production/public/readmes/6659/1aad3e67d42397a0dd3ecf3e29e16fbc964401c962ab7482ba353578112ebe8c.png)

Login e password standard per diversi modelli di dispositivi possono essere trovati in elenchi speciali. Per esempio:

* [Login e Password predefiniti del Router per i migliori modelli (Elenco 2023)](https://www.softwaretestinghelp.com/default-router-username-and-password-list/)
* [Nome utente – Password – Indirizzo IP predefiniti per telecamere di sicurezza](https://www.a1securitycameras.com/blog/default-username-passwords-ip-addresses-for-surveillance-cameras/)
* [Le Password Predefinite di Quasi Ogni Telecamera IP](https://www.hackers-arise.com/post/the-default-passwords-of-nearly-every-ip-camera)
* [Elenco delle password predefinite da Datarecovery](https://datarecovery.com/rd/default-passwords/)

Ricorda che l'uso di login e password standard per accedere a sistemi altrui viola le regole etiche e potrebbe essere illegale nel tuo paese.

### Ricerca di Server Vulnerabili tramite l'Hash del Favicon

Un modo per trovare server web esposti a una particolare vulnerabilità è cercare il favicon ico di un particolare software del server web.

**Esempio di query di ricerca**

![Search CVE by favicon hash](https://assets.kitploit.com/production/public/readmes/6659/b0a93463790400a640c81c171f5a361de66eb6e6674a8cd993128c08c8199ae9.png)```
http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e

Questa query cerca il favicon di SecurePoint (CVE-2023-22620).

Prova in Netlas

Esempio di richiesta API

Strumenti CLI di Netlas:```bash netlas search "http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
   'https://app.netlas.io/api/responses/?q=http.favicon.hash_sha256%3Aebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

Esempio di codice (Netlas Python Library)

Favicon hash search Python

Esegui nella riga di comando:```bash python scripts/pentest/favicon_hash_search.py

root@kitploit:~
Codice sorgente di scripts/pentest/favicon_hash_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e`
netlas_query = netlas_connection.query(query="http.favicon.hash_sha256:ebaaed8ab7c21856f888117edaf342f6bc10335106ed907f95787b69878d9d9e")


# iterate over data and print: IP,URL,web page title
for response in netlas_query['items']:
    print (response['data']['ip'])
    print (response['data']['uri'])
    print (response['data']['http']['title'])

Ricerca di server vulnerabili per nome del tag

Per semplificare la ricerca tra server che eseguono software diversi, Netlas aggiunge automaticamente tag specifici ai risultati di ricerca.

Esempi di tag:

  • Blogs - medium, wordpress, tumblr
  • CDN - google_cloud, cloudflare, keycdn
  • CMS - ucoz, joomla, pyrocms
  • Ecommerce - opencart, magento, wix

Puoi cercare per tag usando il filtro "tag.name:". Puoi anche cercare per categoria di tag usando il filtro "tag.category:". Un elenco di tutti i tag e le categorie disponibili viene visualizzato quando clicchi sull'icona a destra della casella di inserimento della query di ricerca nella home page di Netlas.

Nota: Non tutti i piani tariffari supportano l'uso dei tag.

Esempio di query di ricerca

Search CVE by tag name``` tag.name:"adobe_coldfusion"

root@kitploit:~
Questa query cerca Adobe ColdFusion (CVE-2023-26359).

[Try in Netlas](https://app.netlas.io/responses/?q=tag.name%3A%22adobe_coldfusion%22&page=1&indices=)

**Esempio di richiesta API**

Netlas CLI Tools:```bash
netlas search 'tag.name:"adobe_coldfusion"' -f json

Nota che quando si usano le virgolette doppie nelle query, la query stessa è scritta tra virgolette singole.

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=tag.name%3A%22adobe_coldfusion%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' | jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Libreria Python Netlas)**

![Ricerca per hash del favicon Python](https://assets.kitploit.com/production/public/readmes/6659/df06bcb4bb2b0cd939656534bc1c2c5c94897cf699309ebf130d0fb26931c630.png)

Esegui nella riga di comando:```bash
python scripts/pentest/search_tag_name.py

Codice sorgente di scripts/pentest/search_tag_name.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query tag.name:"adobe_coldfusion"

netlas_query = netlas_connection.query(query='tag.name:"adobe_coldfusion"')

iterate over data and print: IP,URL

for response in netlas_query['items']: print (response['data']['ip']) print (response['data']['uri'])

root@kitploit:~
### Cerca server e dispositivi vulnerabili vicino a te (o in qualsiasi altra località)

![Ricerca per posizione delle CVE](https://assets.kitploit.com/production/public/readmes/6659/1cc7069b697b4c21a266b05804238fe541962e7baacb2cb0c98c10128cf6b126.png)

Vuoi sapere quanti siti e dispositivi vulnerabili ci sono intorno a te? Basta cercare tutti gli indirizzi IP che hanno il campo CVE compilato in una geolocalizzazione specifica.```
geo.city:London AND cve:*

Prova in Netlas

Puoi anche usare altri filtri di geolocalizzazione.

  • geo.continent
  • geo.country
  • geo.location

Esempio di richiesta API

Strumenti CLI Netlas:``` geo.city:London AND cve:*

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=geo.city%3ALondon%20AND%20cve%3A*&source_type=include&start=0&fields=*' \
   -H 'accept: application/json' \
   -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

Esempio di codice (Netlas Python Library)

Location CVE search Python

Esegui nella riga di comando:```bash python scripts/pentest/cve_location_search.py

root@kitploit:~
Codice sorgente di scripts/pentest/cve_location_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `geo.city:London AND cve:*`
netlas_query = netlas_connection.query(query='geo.city:London AND cve:*')


# iterate over data and print: uri, cve name, location
for response in netlas_query['items']: 
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['geo']['city'])

Ricerca di pannelli di login/amministrazione

Ricerca pannelli admin

Molti siti e server hanno pagine web di login e password che possono essere utilizzate per ottenere l'accesso al controllo completo del sito o del server (tramite l'uso di password predefinite, brute force o sfruttamento di vulnerabilità).

È possibile trovarli utilizzando il filtro uri: o/e http.title:``` uri:login.php uri:login.aspx uri:user http.title:login uri:admin http.title:login http.title:admin http.title:panel

root@kitploit:~
Ci sono così tante combinazioni. Per trovare solo pannelli di server vulnerabili usa il filtro `cve:*`. Inoltre, non dimenticare che puoi filtrare i server per software installato usando i tag. Ad esempio:```
tag.1c_bitrix:*
tag.Cisco:
tag.amazon_s3:*
tag.drupal:*
tag.wordpress:*

Ricerca di pannelli di amministrazione database vulnerabili

Database admin panels search

Proviamo a cercare il pannello di amministrazione vulnerabile di phpMyAdmin (uno dei software più popolari per l'amministrazione di database MySQL):``` http.title:phpMyAdmin cve:*

root@kitploit:~
Ed ecco alcuni esempi per altri popolari strumenti di amministrazione di database:

[Adminer](https://www.adminer.org/):```
http.title:adminer http.title:login cve:*

PostgreSQL``` http.title:(phpPgAdmin OR pgadmin) cve:*

root@kitploit:~
Puoi anche cercare server che hanno installato software per diversi database utilizzando i tag o filtri speciali:```
tag.adminer:*
tag.phpMyAdmin:*
tag.elastic:*
mongodb:*
mssql:*
mysql:*
django:*

Cercare pannelli di amministrazione per i server trovati in questo modo potrebbe non essere la cosa più facile da fare, poiché gli amministratori del sito spesso cambiano i link standard con altri più sicuri.

Ricerca di Siti Vulnerabili a SQL Injection

Ricerca SQL Injection

L'SQL injection è un tipo di vulnerabilità che consente di effettuare query al database manipolando i parametri dell'URL (ciò può essere possibile a causa di configurazioni errate e codice di scarsa qualità).

Una delle tecniche più antiche per trovare pagine potenzialmente vulnerabili a SQL Injection è cercare pagine che hanno abilitato la visualizzazione dei messaggi di errore nelle query MySQL utilizzando Google Dorks.

Una ricerca simile può essere effettuata in Netlas:``` http.body:mysql_fetch_array http.body:warning

root@kitploit:~
[Prova in Netlas](https://app.netlas.io/responses/?q=http.body%3Amysql_fetch_array%20http.body%3Awarning&page=1&indices=)

Alcuni altri esempi:```
http.body:mysql_num_rows http.body:warning
http.body:mysql_connect http.body:denied
http.body:mysql_query http.body:warning
http.body:pg_connect http.body:fatal

Esempio di richiesta API

Netlas CLI Tools:```bash netlas search "http.body:mysql_fetch_array http.body:warning" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=http.body%3Amysql_fetch_array%20http.body%3Awarning&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

Esempio di codice (Netlas Python Library)

SQL Injection search Python

Esegui nella riga di comando:```bash python scripts/pentest/sql_injection_search.py

root@kitploit:~
Codice sorgente di scripts/pentest/sql_injection_search.py:```python
import netlas

apikey = "YOUR_API_KEY"
 
# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# search in Netlas "http.body:mysql_fetch_array http.body:warning"
netlas_query = netlas_connection.query(query="http.body:mysql_fetch_array http.body:warning")

# iterate over data and print: uri, web page body
for response in netlas_query['items']:
    print (response['data']['uri'])  
    print (response['data']['http']['body'])    

Puoi anche utilizzare i seguenti filtri per cercare server MySQL vulnerabili:

  • mysql.error_code
  • mysql.error_id
  • mysql.error_message

Ricerca IoT: 9 Modi Fondamentali

Netlas non cerca solo siti web e server, ma tutti i dispositivi connessi a Internet: elettrodomestici smart, telecamere di sorveglianza, stampanti, router, semafori, apparecchiature mediche e altro ancora.

Ci sono quattro modi principali per trovare questi dispositivi.

Ricerca per Titolo

Iot Title Search

Il modo più semplice è cercare il nome del fornitore o il tipo di dispositivo nel titolo http della risposta.

Prova a cercare i dispositivi di domotica Jeedom:``` http.title:Jeedom

root@kitploit:~
[Prova in Netlas](https://app.netlas.io/responses/?q=http.title%3AJeedom&page=1&indices=)

Oppure webcam Avigilon:```
http.title:"Avigilon"

Prova su Netlas

Ci sono due svantaggi in questo metodo. Il primo è l'elevato numero di risultati inappropriati (semplicemente siti web con parole pertinenti nel titolo). Ma quando si usano virgolette e filtri di ricerca aggiuntivi come port:, ce ne sono meno.

Il secondo è che molti dispositivi IoT non hanno informazioni nel titolo http attraverso cui possano essere identificati. Quindi, anche altri filtri di ricerca possono essere utili.

Ricerca nel Corpo

Iot Body Search

Allo stesso modo, puoi provare a cercare parole chiave nel corpo della risposta http. Per filtrare almeno alcuni dei siti web comuni, usa il filtro NOT domain:. Proviamo a cercare telecamere Reolink:``` http.body:(clip-status) NOT domain:

root@kitploit:~
L'esempio non è del tutto corretto, quindi queste telecamere possono essere trovate usando i tag (maggiori informazioni di seguito).

### Ricerca per Numero di Porta

![Ricerca per porta IoT](https://assets.kitploit.com/production/public/readmes/6659/c7e51e69a0d102a1617d1eb5ed71fcfac72aa8289ef40e3da9097aa1f82155cc.png)

Dispositivi IoT diversi usano porte diverse per la comunicazione. E dal numero di porta aperta, puoi ipotizzare che l'indirizzo IP appartenga a un certo tipo di dispositivo (**spesso l'ipotesi è corretta, ma possono esserci imprecisioni e coincidenze**).

Prova a cercare una radio Internet (porta 8000):```
port:8000 http.title:radio

Prova in Netlas

Oppure tutti i dispositivi con porta 7547 aperta (è usata per gestire i router da remoto tramite CWMP):``` port:7547

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=port%3A7547&page=1&indices=)

### Ricerca per banner

![Iot banner search](https://assets.kitploit.com/production/public/readmes/6659/fb8cf3ee79c9baf3469693d364d38eb8c636e171d98523d0920cc1feb948cc9b.png)

Cerchiamo router che utilizzano il protocollo Telnet (puoi anche filtrarli con port:23):```
telnet.banner:router

Try in Netlas

Oppure cerca i banner per tutti i protocolli:``` *.banner:router

root@kitploit:~
[Prova su Netlas](https://app.netlas.io/responses/?q=%5C*.banner%3Arouter&page=1&indices=)

### Ricerca per favicon

![Ricerca favicon IoT](https://assets.kitploit.com/production/public/readmes/6659/dde45b8e6a3dcaea41ff21dc27a5eee558c3a5e046963f1ebaeb67397314a03b.png)

Uno dei modi più semplici per trovare dispositivi che hanno installato determinati software è cercare tramite favicon. Proviamo a trovare dove vengono utilizzati diversi prodotti Cisco:```
http.favicon.hash_sha256:62a8461e328d5bace3780ff738d0b58f6502592c04afa564e0a8a792583a7bfb

Try in Netlas

Ci sono tre modi principali per cercare tramite favicon in Netlas:

  1. Clicca sull'icona a sinistra del risultato della ricerca.
  2. Clicca sul pulsante di ricerca favicon a destra della barra di ricerca e incolla il link del favicon nella finestra pop-up.
  3. Clicca sul pulsante di ricerca favicon a destra della barra di ricerca e carica il file del favicon.

Ricerca per Header del Server

Ricerca header IoT

A volte capita che non ci siano informazioni identificative del dispositivo nel titolo http, ma potrebbero essere presenti in altri header. Ad esempio, in http.server.header:``` http.headers.server:"i-Catcher Console"

root@kitploit:~
[Prova in Netlas](https://app.netlas.io/responses/?q=http.headers.server%3A%22i-Catcher%20Console%22&page=1&indices=)

Netlas supporta la ricerca attraverso diverse dozzine di tipi di header. Prova diverse varianti.


### Ricerca per Cookie

![Ricerca cookie IoT](https://assets.kitploit.com/production/public/readmes/6659/8ca9d08b8f1b835c8fd2a0c62908e20102b439b90aeb49a718619f125daa6b61.png)

Cerca parcheggi Eco JS:```
http.headers.set_cookie:(regist_carNo=)

Prova in Netlas

Search by Tag

Iot tag search

Questo metodo potrebbe richiedere un abbonamento a pagamento. Vedi i prezzi

Puoi anche provare a cercare dispositivi per tag (categorie).``` tag.category:"IoT" tag.category:"Web cameras"

root@kitploit:~
[Try in Netlas](https://app.netlas.io/responses/?q=tag.category%3A%22Web%20cameras%22&page=1&indices=)

Ricorda che i tag vengono assegnati automaticamente e alcuni dispositivi idonei potrebbero non essere inclusi nella categoria corrispondente.


### Filtri di ricerca aggiuntivi

Può cercare dispositivi IoT situati in geolocalizzazioni specifiche:

- `geo.city`
- `geo.country`
- `geo.continent`

Filtra i dispositivi per intervallo di indirizzi IP:```
ip:[162.245.241.131 TO 162.245.241.133]

O dispositivi con vulnerabilità "fresche":``` cve.name:2023

root@kitploit:~
Altri esempi di query per cercare dispositivi IoT sono disponibili qui:

[Netlas Dorks](https://github.com/netlas-io/netlas-dorks)


## Usare Netlas.io per la Ricerca nel Darknet

Uno dei principali vantaggi di Netlas è che puoi usarlo per cercare cose che non sono indicizzate da Google. Questo è ciò che può essere convenzionalmente chiamato DeepWeb. Ad esempio, server FTP o server Telnet:```
ftp.banner:*
root@kitploit:~
telnet.banner:*

Ma sfortunatamente Netlas non indicizza il Darknet (.onion, .i2p, ecc.) poiché esegue la scansione solo di indirizzi IP globali. Tuttavia può ancora essere utilizzato per esplorare infrastrutture di rete alternative e trovare collegamenti a siti .onion.

Ricerca dei nodi di uscita Tor

Il nodo di uscita Tor è il punto in cui il traffico web lascia la rete Tor e viene inoltrato a destinazione. Un elenco aggiornato degli indirizzi IP dei nodi di ingresso Tor attivi è sempre disponibile sul sito web di TorProject:

Elenco dei nodi di uscita del Tor Project

Vediamo come puoi raccogliere informazioni su tutti i nodi di uscita Tor attivi contemporaneamente usando Netlas. Questo esempio sarà utile per tutte le altre attività per cui devi raccogliere informazioni su un elenco di domini o indirizzi IP.

Run scripts/darknet/tor_nodes.py:```bash python scripts/darknet/tor_nodes.py

root@kitploit:~
![Raccolta di informazioni sui nodi di uscita Tor](https://assets.kitploit.com/production/public/readmes/6659/c1d2c2e9542694adbe3a8f1b1332e803b4ad2e39d1ae46f4a8c32a80ef5a133f.png)

Codice sorgente di scripts/darknet/tor_nodes.py:```python
import netlas
import urllib
import time

apikey = 'YOUR_API_KEY'

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# read file with Tor Exit Nodes IPs line by line
response = urllib.request.urlopen('https://check.torproject.org/torbulkexitlist?ip=1.1.1.1')
ip_lines = response.readlines()

# save each line to ip variable
for ip in ip_lines:
     # wait one second
     time.sleep(1)
     # conver byte string to text
     ip=ip.decode("utf-8")
     # retrieve data from responses by query `ip: + tor exit node ip`
     netlas_query = netlas_connection.query(query="ip:"+ip)

    # iterate over data and print: ip, geo data, banner text

     for response in netlas_query['items']:
         print(response['data']['ip'])
         print(response['data']['geo'])
         print(response['data']['ntp']['banner'])
     pass
pass

Utilizzare il pacchetto time e il metodo sleep è adatto solo per esempi semplici. La soluzione migliore è utilizzare il pacchetto rate limit.

Raccolta di Link a Siti .onion

Come accennato in precedenza, Netlas esegue la scansione solo dei domini globali, quindi non è possibile cercare domini .onion. Ma è possibile cercare riferimenti a domini .onion nel testo delle pagine web. Ecco un esempio di un semplice script Python (con espressioni regolari) che fa questo:

Run scripts/darknet/onion_links.py:```bash python scripts/darknet/onion_links.py

root@kitploit:~
![Onion links collecting](https://assets.kitploit.com/production/public/readmes/6659/979fff15ed6e8cc399cc755cb292978b22a93d11ee14e59bf7690365d3e2842b.png)

Codice sorgente di scripts/darknet/onion_links.py:```python
import netlas
import re

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.body:*.onion AND forum`
netlas_query = netlas_connection.query(query="http.body:(*.onion AND forum)")


# iterate over data and print: URL, .onion link from body
for response in netlas_query['items']:
    print(response['data']['uri'])
    onion_links = re.findall("[a-z-1-9]*\.onion", response['data']['http']['body'])  
    try:
         print(onion_links)
    except:
         print("no onion links")
pass

Puoi raccogliere link per altre reti come I2Pin allo stesso modo:``` http.body:*.i2p

root@kitploit:~
## Ricerca di directory di file, backup e log

![Directory search](https://assets.kitploit.com/production/public/readmes/6659/27773f3dbb2ba7b3fd3be7a41262cef61c41c2a988e6ed55ce67f593c7e7a06f.png)

Esiste un numero enorme di siti e server che lasciano aperti i loro archivi di file a causa di un errore di configurazione (e talvolta deliberatamente). Ecco alcuni esempi di query che ti aiuteranno a trovarli.

Cerca directory di file qualsiasi:```
http.title:Index http.title:of

Cerca directory con file di log:``` http.title:Index http.title:of http.body:logs

root@kitploit:~
Cerca directory con dump di database:```
http.title:Index http.title:of http.body:sql

Cerca directory con backup archiviati:``` http.title:Index http.title:of http.body:backup?zip

root@kitploit:~
Cerca directory con informazioni di accesso SSH:```
http.title:Index http.title:of http.body:("ssh_config" OR "ssh_known_hosts" OR "authorized_keys" OR "id_rsa" OR "id_dsa")

Cerca directory che contengono file con altre informazioni di autorizzazione:``` http.title:Index http.title:of http.body:("pass" OR "logins" OR "config" OR "password")

root@kitploit:~
Cerca directory con file scaricati dagli utenti:```
http.title:index http.title:of http.body:downloads

Cerca directory con file di configurazione Docker:``` http.title:index http.title:of http.body:docker-compose

root@kitploit:~
Si possono pensare a centinaia di altre richieste simili. Sperimenta con diversi nomi di file ed estensioni.

## Utilizzo di Netlas.io per la Digital Forensics e l'Incident Response

Questa sezione è molto difficile da separare dalla sezione Netlas per OSINT, poiché le query elencate in essa saranno utili anche a coloro che si occupano di digital forensics.

In questa sezione descriviamo query più "tecniche" che possono aiutare, ad esempio, a raccogliere informazioni sull'infrastruttura tecnica delle reti o a investigare attacchi di phishing.

### Raccolta di informazioni sui server SMTP

SMTP (Simple Mail Transfer Protocol) è un protocollo di comunicazione che consente di inviare e ricevere email. Nella maggior parte dei client di posta elettronica, quando si visualizzano le email, è disponibile la funzione "Mostra originale", che consente di visualizzare l'indirizzo del server SMTP da cui l'email è stata inviata.

Netlas ti permette di ottenere informazioni su un server SMTP così come su qualsiasi altro IP o dominio, e anche di cercare nel testo dei banner SMPT, il che consente di trovare server associati a un particolare dominio, azienda o provider di hosting.

**Esempio di query di ricerca**  

![SMTP banner search](https://assets.kitploit.com/production/public/readmes/6659/e97e5c301c148f4f500d3933ada00375a24ab6bafbc05647d9c227f2b2d3cbbd.png)```
smtp.banner:fornex.cloud

Strumenti CLI di Netlas:```bash netlas search "smtp.banner:fornex.cloud" -f json

root@kitploit:~
Curl:```bash
curl -X 'GET' \
  'https://app.netlas.io/api/responses/?q=smtp.banner%3Afornex.cloud&source_type=include&start=0&fields=*' \
  -H 'accept: application/json' \
  -H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.smtp.banner

Esempio di codice (Netlas Python Library)

SMTP banner search Python

Esegui nella riga di comando:```bash python scripts/dfir/smtp_banner_search.py

root@kitploit:~
Codice sorgente di scripts/dfir/smtp_banner_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `smtp.banner:fornex.cloud`
netlas_query = netlas_connection.query(query="smtp.banner:fornex.cloud")


# iterate over data and print: SMTP banner, URL, ISP
for response in netlas_query['items']:
    print (response['data']['smtp']['banner'])
    print (response['data']['uri'])
    print (response['data']['isp'])

Ricerca di domini che potrebbero potenzialmente essere utilizzati per il phishing

Uno dei metodi popolari dei truffatori è utilizzare domini che sono molto simili nell'ortografia ai domini di aziende note.

Puoi trovare tali domini per una determinata azienda utilizzando Netlas e la ricerca fuzzy.

Ricerca fuzzy di domini

Apri la ricerca Whois del dominio e inserisci il nome del dominio aziendale + . Per esempio:``` domain:facebook.com

root@kitploit:~
[Try in Netlas](https://app.netlas.io/whois_domains/?q=domain%3Afacebook.com~&page=1&indices=)

![Domain fuzzy search import](https://assets.kitploit.com/production/public/readmes/6659/5d4ba2bdc395a3e52bfadaf8d7bda8977e0d115e13a1a68980520ea8532ca904.png)

Dopo di che, clicca sull'icona a sinistra, seleziona il tipo di file di esportazione, i nomi dei file e i campi che desideri salvare nel file. Clicca su "Download" e attendi qualche istante.

![Domain fuzzy search csv](https://assets.kitploit.com/production/public/readmes/6659/f5ed5c4c253a3e2fb994623fe48447714b7d706496edeca527a5d53de33707c4.png)

Ad esempio, puoi selezionare il formato CSV e i campi domain, expiration_date, status. Una tabella di questo tipo può essere visualizzata comodamente in Excel, Numbers o Google Docs.

### Ricerca Favicon

![Favicon search](https://assets.kitploit.com/production/public/readmes/6659/1e2761528fda75b2a240460fb07d3f77f0b2872ff504bc08759befc22e470612.png)

La ricerca di favicon.ico ha tre utilizzi principali.

Innanzitutto, consente di trovare siti e sottodomini potenzialmente correlati. Prova a trovare l'IP associato ai negozi Lidl:```
http.favicon.perceptual_hash:003c7e72207e3c00

Try in Netlas

E anche per trovare siti di phishing che utilizzano il design di social network popolari, negozi online, ecc.

Secondo, è una ricerca di vari dispositivi IoT. Prova a trovare prodotti HP:``` http.favicon.perceptual_hash:0c5ec8c181f37e2c

root@kitploit:~
[Prova su Netlas](https://app.netlas.io/responses/?q=http.favicon.perceptual_hash%3A0c5ec8c181f37e2c&page=1&indices=)

Terzo, cerca server che hanno determinati software in esecuzione. Prova a trovare server con PhpMyAdmin:```
http.favicon.perceptual_hash:00084e5e5fffff8d

Prova in Netlas

Esistono tre modi principali per cercare tramite hash del favicon in Netlas:

  1. Fai clic sull'icona a sinistra del risultato della ricerca.
  2. Fai clic sul pulsante di ricerca del favicon a destra della barra di ricerca e incolla il link del favicon nella finestra pop-up.
  3. Fai clic sul pulsante di ricerca del favicon a destra della barra di ricerca e carica il file del favicon.

Puoi anche utilizzare i seguenti filtri per cercare tramite favicon:

  • http.favicon.last_modified
  • http.favicon.last_updated
  • http.favicon.uri
  • http.favicon.path

Cerca domini associati a una subnet specifica

Ricerca subnet

La ricerca dei domini in Netlas permette di ottenere un elenco completo dei domini associati a un indirizzo IP specifico o a un intervallo di indirizzi. Ad esempio:``` a:"163.114.132.0/24"

root@kitploit:~
[Provalo su Netlas](https://app.netlas.io/domains/?q=a%3A%22163.114.132.0%2F24%22&page=1&indices=)

Esempio di richiesta API

Netlas CLI Tools:```bash
netlas search -d domain a:\"163.114.132.0/24\"

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/domains/?q=a%3A%22163.114.132.0%2F24%22&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: 'YOUR_API_KEY' | jq .items[].data.domain

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Ricerca subnet](https://assets.kitploit.com/production/public/readmes/6659/167cec2c2ef94ede54088bfe94fef093af8bf58ea2de6df34a73212f5d3044b1.png)

Esegui nella riga di comando:```bash
python scripts/dfir/subnet_search.py

Codice sorgente di scripts/dfir/subnet_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query a:"163.114.132.0/24"

netlas_query = netlas_connection.query(query='a:"163.114.132.0/24"',datatype="domain")

iterate over data and print: domain

for response in netlas_query['items']: print (response['data']['domain'])

root@kitploit:~
### Ricerca di Server con Software Maligno

![Malware search](https://assets.kitploit.com/production/public/readmes/6659/d728e7baced751038764f0895099894d154370929ac7eb11e60f80137e549f72.png)


Netlas ti permette di trovare server su cui sono installati vari malware. Puoi trovarli tramite la presenza di determinate parole in http.title o http.body, hash del favicon, ssl e altri parametri.

Ecco un esempio di query che troverà server su cui è installato GoFish (Open Source Phishing Framework):```
http.title:Gophish http.title:Login

Nota che la tecnica di usare lo stesso operatore due volte (invece di un asterisco tra due parole) viene utilizzata qui. A volte questo ti aiuta a ottenere più risultati di ricerca.

Ecco alcuni ulteriori esempi di richieste simili:``` http.title:CALDERA http.title:login http.title:Deimos http.title:C2

root@kitploit:~
**Esempio di richiesta API**

Netlas CLI Tools:```bash
netlas search "http.title:Gophish http.title:Login" -f json

Curl:```bash curl -X 'GET'
'https://app.netlas.io/api/responses/?q=http.title%3AGophish%20http.title%3ALogin&source_type=include&start=0&fields=*'
-H 'accept: application/json'
-H 'X-API-Key: YOUR_API_KEY' jq .items[].data.uri

root@kitploit:~
**Esempio di codice (Netlas Python Library)**

![Ricerca malware Python](https://assets.kitploit.com/production/public/readmes/6659/6d97f8bdcd0897b846dfa636e667cdca0cdfe8565f0aa33634934d2f7dbd2e40.png)

Esegui nella riga di comando:```bash
python scripts/dfif/malware_search.py

Codice sorgente di scripts/dfir/malware_search.py:```python import netlas

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from whois for "http.title:Gophish http.title:Login"

netlas_query = netlas_connection.query(query="http.title:Gophish http.title:Login")

iterate over data and print: uri, title, country

for response in netlas_query['items']: print (response['data']['uri'])
print (response['data']['http']['title'])
print (response['data']['geo']['country'])

root@kitploit:~
## Ricerca di tecnologie ed esempi di codice

![Netlas for web designers](https://assets.kitploit.com/production/public/readmes/6659/52b9186e6e0d5cbd123389555fc6124835065af3c45346b35003da563a76e191.png)

Netlas, a differenza dei motori di ricerca convenzionali, permette di cercare l'intero codice HTML anziché il testo della pagina. Ciò consente di trovare siti che utilizzano determinate librerie JavaScript. Questo può aiutarti a trovare esempi di codice adatti ai tuoi compiti e risparmiare tempo.

Ad esempio, cercando siti che utilizzano una vecchia libreria oscura per disegnare grafici:```
http.body:kinetic.js

Puoi anche vedere come diversi framework CSS vengono utilizzati su siti di determinati temi e prendere in prestito buone idee di design:``` http.body:bootstrap.css http.title:travel

root@kitploit:~
Puoi anche filtrare i siti che utilizzano framework e tecnologie specifici usando i tag:```
tag.bootstrap:*
root@kitploit:~
tag.angularjs:*
root@kitploit:~
tag.wordpress:*
root@kitploit:~
tag.nextjs:*

Usare Netlas.io per divertimento o Netstalking

Netlas, come molti altri motori di ricerca, può essere utilizzato senza uno scopo specifico, e basta esplorare con il suo aiuto gli angoli inesplorati di Internet, sperando di trovare qualcosa di interessante.

Ecco alcuni esempi di query di ricerca che ti aiuteranno a trovare ciò che Google non può.

Ricerca per testo dei banner dei server Telnet (sì, sono ancora vivi!):``` telnet.banner:library

root@kitploit:~
![Telnet banner](https://assets.kitploit.com/production/public/readmes/6659/bc10d408431e619a74a7d0a3ba3ebe4722c5599cf3978e1ddd4d014453ebd0df.png)

Cerca per testo dei banner dei server FTP:```
ftp.banner:*library*

Cerca link a libri e documenti:``` http.body:rowlingpdf

root@kitploit:~
Cerca link a musica e video:```
http.body:*cats*mp4

Cerca collegamenti a file torrent:``` http.body:catsmp4

root@kitploit:~
Tieni presente che Netlas non censura in alcun modo i contenuti archiviati nel proprio database. Se trovi qualcosa di illegale o immorale, dovresti sporgere reclamo al provider di hosting i cui contatti sono elencati nelle informazioni sul dominio.


## Problemi comuni

### Errore 429 - Richieste troppo frequenti

![Request limit](https://assets.kitploit.com/production/public/readmes/6659/4dc177c632607cc952ba847f1c078c80812b388c1eb51513e3d672e8563a672b.png)

Se la tua applicazione include più richieste all'API di Netlas, potresti incontrare questo errore:```json
{'detail': 'Request was throttled. Expected available in 1 second.'}

Un modo per risolvere questo problema è utilizzare librerie Python speciali per configurare limiti di tempo sull'esecuzione delle query, come Limiter Package.

Ecco un esempio del suo utilizzo nel codice (limite di non più di 60 richieste al minuto). Per prima cosa, installa il pacchetto:``` pip install ratelimit

root@kitploit:~
Ed esegui rate_limit.py:```bash
python scripts/common_problems/rate_limit.py

CONTENUTI```python import netlas from ratelimit import limits

One second - one call

@limits(calls=1, period=1) def netlas_query(): apikey = "YOUR_API_KEY"

root@kitploit:~
 # create new connection to Netlas
 netlas_connection = netlas.Netlas(api_key=apikey)

 # retrieve data from responses by query `cve.description:weblogic AND cve.has_exploit:true`
 netlas_query = netlas_connection.query(query="cve.description:weblogic AND cve.has_exploit:true")

 # iterate over data and print:  url, first CVE name first CVE description
 for response in netlas_query['items']:
    print (response['data']['uri'])
    print (response['data']['cve'][0]['name'])
    print (response['data']['cve'][0]['description'])

netlas_query()

root@kitploit:~
Esistono pacchetti simili per altri linguaggi di programmazione popolari, poiché superare il limite di richieste è un problema molto comune quando si lavora con quasi tutte le API. 

Se hai davvero bisogno di effettuare più di una richiesta al secondo, puoi scrivere al [team vendite](https://netlas.io/sales/).


### KeyError

![Key error](https://assets.kitploit.com/production/public/readmes/6659/4e039dadee067f3762033f4d612fda3f7fbbac8425af0c257a9c808338ec85bc.png)

Un altro problema comune è l'assenza di una chiave specifica nella risposta per alcuni server. Ad esempio, ['data']['http']['title'] è spesso assente.

Se la chiave manca, lo script smette di eseguire. Una corretta gestione degli errori aiuterà a evitare questo. Per esempio:```python
try:
       print (response['data']['http']['title'])
    except:
        print ("no title")

Automazione del lavoro con l'elenco delle richieste

Il principale vantaggio di lavorare con Netlas Python o l'API Netlas rispetto a digitare semplicemente query nella versione web di Netlas.io è che puoi risparmiare una quantità enorme di tempo digitando query valide per tutti. Ad esempio, puoi raccogliere rapidamente informazioni su un lungo elenco di domini usando un codice Python molto semplice.

Esegui nella riga di comando:```bash python scripts/common_problems/domain_list_search.py

root@kitploit:~
Codice sorgente di domain_list_search.py:```python
import netlas

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)


# read file domains.txt line by line
with open("scripts/common_problems/domains.txt") as f:
    # save each line to domain variable
    for domain in f:
         # retrieve data from responses by query `domain:domainname`
        netlas_query = netlas_connection.query(
            query=f"domain:{domain}", datatype="domain-whois"
        )


        # iterate over data and print:  ip, isp
        for response in netlas_query['items']:
            print (response['data']['ip'])
            print (response['data']['isp'])

Allo stesso modo, puoi lavorare con un elenco di certificati, indirizzi IP, email e qualsiasi altra cosa tu voglia.

Un esempio di ricerca di indirizzi IP da un elenco caricato tramite URL può essere trovato in Ricerca nodi di uscita Tor.

Salvataggio dati in formato CSV

Save data in CSV

Per impostazione predefinita, la libreria Python di Netlas restituisce dati di tipo Dictionary (molto simile a JSON). Se desideri esportare i dati in MS Excel o Google Sheets, un modo semplice per farlo è salvarli in formato CSV.

Ecco un esempio utilizzando il pacchetto CSV. Esegui csv_export.py:```bash python scripts/common_problems/csv_export.py

root@kitploit:~
INPUT:```python
import netlas
import csv

apikey = "YOUR_API_KEY"

# create new connection to Netlas
netlas_connection = netlas.Netlas(api_key=apikey)

# retrieve data from responses by query `http.meta:nazar`
netlas_query = netlas_connection.query(query="http.meta:nazar")

with open('netlas_results.csv', 'w') as csv_file:
     # Create CSV writer object
     writer = csv.writer(csv_file, delimiter =';')


     # Create a list with data headers:
     header = ['IP', 'URL', 'Title']

     # Write headers to CSV file
     writer.writerow(header)

     # iterate over data and print: ip and url to CSV file
     for response in netlas_query['items']:

    # Create a list with one line of data:
          data = [response['data']['ip'], response['data']['uri']]
    # Write line to file
          writer.writerow(data)
     pass

Puoi aprire netlas_results.csv in Excel o in qualsiasi editor di testo.

Salvare dati in altri formati

Usando Python, puoi generare un'ampia varietà di documenti basati sui dati di Netlas, inserendo immagini, visualizzazioni di dati e personalizzando il layout. Ecco alcuni esempi di pacchetti utili.

XLSXWriter - generare file Microsoft Excel.

PyPDF - generare file PDF.

PythonPPTX - generare presentazioni Microsoft Power Point.

PythonDOCX - generare file Microsoft Word.

Decodificare i domini Punycode

Decodificare i domini Punycode

Come accennato sopra, Netlas non memorizza i nomi di dominio non latini nella loro codifica originale, ma li codifica in Punycode. Ciò è necessario per ragioni tecniche, ma è completamente scomodo per la percezione umana.

Ma questo problema è facilmente risolvibile con un paio di righe di codice Python.

Installa il pacchetto Python IDNA:```bash pip install idna

root@kitploit:~
Ed esegui punycode.py nella riga di comando:```bash
python scripts/common_problems/punycode.py

INPUT:```python import netlas import idna

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query domain:*.中国 OR host:*.中国

netlas_query = netlas_connection.query(query="domain:.xn--fiqs8s OR host:.xn--fiqs8s")

iterate over data and print: ip, domain (decoded from punycode)

for response in netlas_query['items']: print (response['data']['ip']) decoded_domain = idna.decode(str(response['data']['domain'][0])) print (decoded_domain)

root@kitploit:~
### Cosa fare se le query di ricerca non restituiscono risultati?

A volte potresti trovarti in una situazione in cui non vengono trovati risultati o ne vengono trovati pochissimi su una query, anche se sei sicuro che ce ne dovrebbero essere molti di più. In questo caso ti consigliamo di sperimentare e provare a modificare un po' le query.

1. Prova ad aggiungere due asterischi alla tua parola chiave. Ad esempio, domain:*github.com* restituisce 1,592,846 risultati. domain:githib.com - solo 7911 risultati.
2. Prova a utilizzare diversi filtri di ricerca per raggiungere lo stesso obiettivo. Ad esempio, confronta i risultati per uri:*github.com*, host:*github.com* e domain:*github.com*.
3. Non utilizzare spazi nelle parole chiave. Se devi trovare la frase "Hello world" in http.body, usa la seguente query:   ```
   http.body:hello http.body:world

o ``` http.body:(hello AND world)

root@kitploit:~
4. Affina i filtri di ricerca il più possibile. Ad esempio, la query `cve:*2023*` non restituirà risultati. Ma la query `cve.name:*2023*` restituirà più di 28 milioni.
5. Prova diverse schede quando lavori con l'app web o diversi tipi di dati quando lavori con l'API. Ad esempio, quando cerchi domini, a volte Host o Domain Whois (piuttosto che response) funzionano meglio.

### Rimozione dei tag HTML dal corpo HTTP

![Certificates search](https://assets.kitploit.com/production/public/readmes/6659/f9922957ccde7780d9663bf29e7df5ed6f689dedbf4e9ab7cd3ad611e2e2e59c.png)

La chiave ['data']['http']['body'] restituisce per impostazione predefinita il testo completo del corpo della pagina web, inclusi tutti i tag HTML. Questo formato non è molto facile da leggere. Ma puoi rimuoverli facilmente con il pacchetto Python [Html2text](https://pypi.org/project/html2text/).

Esegui nella riga di comando:```bash
python scripts/common_problems/htmltotext.py

Codice sorgente di htmltotext.py:```python import netlas import html2text

apikey = "YOUR_API_KEY"

create new connection to Netlas

netlas_connection = netlas.Netlas(api_key=apikey)

retrieve data from responses by query http.body:*phpMyAdmin*

netlas_query = netlas_connection.query(query="http.body:phpMyAdmin")

iterate over data and print: ip, web page text

for response in netlas_query['items']: print (response['data']['ip']) print (html2text.html2text(str(response['data']['http']['body'])))

root@kitploit:~
## Gestione della superficie d'attacco

La piattaforma Netlas include strumenti per la gestione della superficie d'attacco, ma questo argomento esula dallo scopo di questa guida. Se sei interessato alla gestione della superficie d'attacco in generale e all'uso specifico di Netlas, ti consigliamo di iniziare con questi articoli:

- [Guida completa alla scoperta della superficie d'attacco](https://netlas.io/blog/attack_surface_discovery_guide/).
- [Migliori strumenti di visualizzazione della superficie d'attacco](https://netlas.io/blog/best_attack_surface_visualization_tools/).

## Lavorare con grandi quantità di dati

![Datastore](https://assets.kitploit.com/production/public/readmes/6659/ca1ac5e0e1483550235a01c26abcac8e44531108c662c136ea8a81abc0a4c8b2.png)

Se hai una sfida davvero grande davanti a te. Ad esempio, se devi raccogliere dati su centinaia di migliaia di domini, forse una soluzione più razionale in termini di tempi e costi finanziari sarà acquistare un dataset (csv/json) e lavorarci sul tuo server.

In [Netlas Datastore](https://app.netlas.io/datastore/) puoi trovare:

* Dataset dei nomi di dominio conosciuti (più di 2 miliardi di elementi)
* Dataset DNS diretto (più di 2 miliardi di elementi)
* Record PTR conosciuti (più di 1 miliardo di elementi) - GRATUITO
* I 1.000.000 di sottodomini più comuni

e altro ancora.

## Riconoscimenti

Molte grazie a [@cyb_detective](https://twitter.com/cyb_detective) per l'aiuto (https://cybdetective.com)
Scarica lo strumento