Shodan è uno strumento fondamentale per gli ethical hacker che desiderano individuare vulnerabilità e proteggere i sistemi esposti su Internet. Questo articolo descrive in dettaglio come utilizzare Shodan per identificare punti deboli e migliorare la sicurezza, mantenendo un approccio etico.

Cos’è Shodan?
Shodan è un motore di ricerca che indicizza dispositivi connessi a Internet, come server, webcam, router, dispositivi IoT e molto altro. A differenza di Google, che indicizza siti web, Shodan scansiona servizi e dispositivi, raccogliendo informazioni come:
- Porte aperte e servizi attivi.
- Versioni dei software in esecuzione.
- Certificati SSL/TLS.
- Vulnerabilità note (CVE).
Questo lo rende uno strumento ideale per individuare configurazioni insicure, software obsoleti e dispositivi esposti.
Come iniziare con Shodan:
Per accedere alle funzionalità avanzate di Shodan, è necessario creare un account su Shodan.io. Una volta registrati, potrete accedere alla vostra API key personale dal pannello utente. Questa è necessaria per effettuare query avanzate tramite script.
Ricerca manuale su Shodan:
La piattaforma permette di effettuare ricerche manuali direttamente dal sito web. Ecco alcuni esempi utili:
Trova dispositivi con una porta specifica aperta:
port:22
(Cerca dispositivi con SSH attivo.)
Filtra per paese:
country:"IT"
(Visualizza dispositivi situati in Italia.)
Trova sistemi con vulnerabilità note:
vuln:CVE-XXXX-XXXX
(Sostituisci con l’ID CVE della vulnerabilità.)
Identifica dispositivi IoT:
product:"webcam"
Uso avanzato di Shodan con Python:
Shodan dispone di un’API potente per eseguire analisi avanzate tramite script Python.
Installare la libreria Python:
Per utilizzare l’API di Shodan, installa la libreria ufficiale:
pip install shodan
Script base per le ricerche:
Ecco uno script semplice per cercare dispositivi con porte aperte o vulnerabilità:
import shodan
# Inserisci la tua API key
API_KEY = 'LA_TUA_API_KEY'
shodan_client = shodan.Shodan(API_KEY)
try:
query = 'port:80 apache' # Cambia query secondo necessità
results = shodan_client.search(query)
print(f"Trovati {results['total']} risultati.")
for result in results['matches']:
print(f"IP: {result['ip_str']}")
print(f"Host: {result['hostnames']}")
print(f"Organizzazione: {result.get('org', 'N/A')}")
print(f"Porta aperta: {result['port']}")
print("---")
except shodan.APIError as e:
print(f"Errore API: {e}")
Questo script cerca dispositivi con il servizio Apache attivo sulla porta 80. I risultati includono indirizzi IP, nomi host e porte aperte.
Identificare vulnerabilità specifiche:
Puoi cercare dispositivi vulnerabili a una specifica CVE utilizzando il filtro vuln::
query = 'vuln:CVE-2021-44228' # Esempio per Log4Shell
Shodan mostrerà dispositivi che utilizzano software affetti dalla vulnerabilità.
Best Practices da Ethical Hacker
Utilizzare Shodan richiede responsabilità e un approccio etico. Ecco alcune linee guida fondamentali:
- Ottenere autorizzazioni: Non cercare di sfruttare vulnerabilità senza l’autorizzazione dei proprietari dei sistemi.
- Segnalare le vulnerabilità: Se trovi dispositivi vulnerabili, informa il proprietario per aiutarlo a proteggersi.
- Rispetto delle leggi: Assicurati di operare nel rispetto delle normative locali e internazionali sulla sicurezza informatica.
- Utilizzare i risultati per migliorare la sicurezza: L’obiettivo è sempre quello di mitigare i rischi, non di sfruttarli.
Strumenti complementari
Shodan è ancora più potente se utilizzato insieme ad altri strumenti:
- Nmap: Per eseguire scansioni dettagliate delle porte e identificare servizi attivi.
- Metasploit: Per verificare l’exploitabilità di una vulnerabilità.
- Nikto: Per analizzare configurazioni e vulnerabilità dei server web.
Ulteriori informazioni:
Shodan è uno strumento essenziale per gli ethical hacker, offrendo un modo rapido per individuare vulnerabilità e migliorare la sicurezza dei sistemi esposti su Internet. Utilizzandolo con responsabilità, puoi contribuire a rendere il web un luogo più sicuro.