Tutorials

SSH Enumeration – Appunti Approfonditi

Durante un penetration test, l'enumerazione del servizio SSH Secure Shell è fondamentale per identificare: - La versione del server

#enumeration

SSH Enumeration – Appunti Approfonditi

Introduzione

Durante un penetration test, l'enumerazione del servizio SSH (Secure Shell) è fondamentale per identificare:

  • La versione del server
  • Eventuali vulnerabilità note
  • Utenti validi
  • Credenziali deboli o predefinite

Il servizio SSH è spesso monitorato e soggetto a meccanismi di protezione contro il brute-force, quindi ogni azione deve essere eseguita con cautela.


Setup Ambiente (Metasploit)

Avvio del database:

bash
service postgresql start

Verifica connessione al DB:

bash
db_status

Impostazione target globale:

bash
setg RHOSTS <ip_target>

Ricerca dei Moduli SSH

Ricerca generica:

bash
search ssh

Ricerca per moduli ausiliari:

bash
search type:auxiliary name:ssh

Moduli Metasploit Utili per SSH Enumeration

1. Version Check

Identifica la versione del server SSH:

bash
use auxiliary/scanner/ssh/ssh_version

2. Ricerca vulnerabilità per versione SSH

bash
search versione_ssh
searchsploit <versione_ssh>

Verificare su Searchsploit la presenza di vulnerabilità pubbliche.

3. Brute-force login SSH

bash
use auxiliary/scanner/ssh/ssh_login

Parametri consigliati:

bash
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt
set STOP_ON_SUCCESS true
set VERBOSE true

⚠️ Attenzione: il brute-force su SSH è facilmente rilevabile e potrebbe portare al blocco dell'IP.

4. Enumerazione utenti SSH

bash
use auxiliary/scanner/ssh/ssh_enumusers

Il modulo cerca di verificare la validità di un elenco di utenti osservando la risposta del server SSH (valid username = risposta diversa).


Considerazioni Finali

  • Verificare sempre la versione del servizio SSH in esecuzione.
  • Effettuare brute-force solo se autorizzati e con throttling adeguato.
  • Le tecniche di enumerazione utenti possono fornire una base utile per attacchi successivi mirati.

Esempio di Flusso Operativo

bash
service postgresql start
db_status
setg RHOSTS 192.168.1.100
search ssh
use auxiliary/scanner/ssh/ssh_version
run
searchsploit OpenSSH_7.2p2
use auxiliary/scanner/ssh/ssh_enumusers
set USER_FILE users.txt
run
use auxiliary/scanner/ssh/ssh_login
set USER_FILE users.txt
set PASS_FILE rockyou.txt
run