Come controllare vulnerabilità informatiche con Shodan

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:

  1. Nmap: Per eseguire scansioni dettagliate delle porte e identificare servizi attivi.
  2. Metasploit: Per verificare l’exploitabilità di una vulnerabilità.
  3. 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.