Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ssh-enum — Questo progetto esplora se l'OpenSSH moderno rivela nomi utente validi attraverso sottili differenze nelle risposte o nei tempi. Indagine sull'enumerazione degli utenti CVE-2016-6210 (test t di Welch, d di Cohen e ingegneria del rilevamento) in un laboratorio controllato su Ubuntu 22.04.5 LTS; esamina inoltre le tracce che tali tentativi lasciano dietro di sé e come possono essere rilevate. | Kitploit
Strumenti/GitHubGitHub/alisha-chaudhary/ssh-enum
RicognizioneAnalisi delle VulnerabilitàRaccolta InformazioniPenetration TestingPaper e RicercaApprendimento e FormazioneAnalisi dei Log
GitHubalisha-chaudhary/ssh-enum

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 →

ssh-enum

Vedi Repository
123 mesi faNon ancora revisionato

Informazioni

Questo progetto esplora se l'OpenSSH moderno rivela nomi utente validi attraverso sottili differenze nelle risposte o nei tempi. Indagine sull'enumerazione degli utenti CVE-2016-6210 (test t di Welch, d di Cohen e ingegneria del rilevamento) in un laboratorio controllato su Ubuntu 22.04.5 LTS; esamina inoltre le tracce che tali tentativi lasciano dietro di sé e come possono essere rilevate.

Condividi

ssh-enum

Studio di convalida statistica di CVE-2016-6210

Una ri-indagine riproducibile dell'enumerazione degli username OpenSSH utilizzando l'analisi statistica.

Questo progetto riesamina CVE-2016-6210, un side-channel temporale documentato di OpenSSH, per determinare se rimane osservabile su un moderno server Ubuntu utilizzando la configurazione PAM predefinita.

Invece di assumere che il comportamento pubblicato sia ancora valido, il progetto valuta le misurazioni dei tempi di autenticazione raccolte tramite probing manuale, Hydra e Metasploit utilizzando il test t di Welch e il d di Cohen per distinguere i segnali temporali genuini dal rumore di misurazione.

Lo studio ha riscontrato nessuna differenza temporale statisticamente significativa sulla configurazione predefinita testata, dimostrando il valore della sperimentazione riproducibile e della validazione basata su prove delle affermazioni di sicurezza pubblicate.


⚠️ Avviso legale

Questo progetto è stato condotto interamente all'interno di un ambiente di laboratorio isolato di proprietà. Tutti i risultati si applicano solo alla configurazione testata. Non testare mai sistemi che non possiedi o per i quali non hai esplicita autorizzazione scritta.


Indice

  • Dichiarazione del problema
  • Configurazione del laboratorio
  • Metodologia
  • Cosa è stato costruito
  • Osservazioni e risultati
  • Processo di pensiero
  • Rischi per la sicurezza
  • Strategie di mitigazione
  • Miglioramenti futuri
  • Struttura del progetto
  • Avvio rapido
  • Riferimenti

🎯 Dichiarazione del problema

Enumerazione degli utenti - la capacità di determinare se un nome utente specifico esiste su un sistema remoto senza credenziali valide. È un primo passo critico nella catena di attacco che porta al compromesso dell'account:``` Reconnaissance → [User Enumeration] → Password Attack → Access ↑ This project investigates here

Se un attaccante può distinguere "questo utente esiste" da "questo utente non esiste" analizzando le risposte del server, può ridurre drasticamente lo spazio delle chiavi per successivi attacchi di forza bruta o credential stuffing.

SSH è un bersaglio frequente perché è quasi universalmente esposto, gestisce l'autenticazione tramite password e le implementazioni più vecchie presentavano differenze di temporizzazione misurabili tra nomi utente validi e non validi (CVE-2016-6210).

**Questa indagine si pone due domande:**

1. OpenSSH moderno su Ubuntu 22.04.5 LTS con configurazione predefinita perde informazioni sull'esistenza degli utenti
   tramite messaggi di risposta, temporizzazione o segnali riportati dagli strumenti?
2. Se un attaccante tenta comunque l'attacco, quali artefatti lascia? e con quanta
   affidabilità possono essere rilevati?

---

## 🖥️ Configurazione del Laboratorio

Tutti i test sono stati eseguiti in una rete virtuale host-only completamente isolata, senza esposizione a internet.

| Macchina | Sistema Operativo          | Ruolo                                   | IP               | Versione SSH    |
|----------|----------------------------|-----------------------------------------|------------------|-----------------|
| Attaccante | Kali Linux 2024.1         | Strumenti offensivi, script di analisi | 192.168.56.5     | —               |
| Target   | Ubuntu Server 22.04.5 LTS | Esecuzione di OpenSSH con configurazione **predefinita** | 192.168.56.10    | OpenSSH 8.9p1   |

**Configurazione SSH di destinazione (`/etc/ssh/sshd_config` predefinita):**```
PasswordAuthentication yes
UsePAM yes                  # Key setting — normalises timing via dummy hash
PermitRootLogin prohibit-password
MaxAuthTries 6
LogLevel INFO

UsePAM yes è l'impostazione critica di hardening. Forza OpenSSH a eseguire un calcolo bcrypt fittizio per utenti inesistenti, eguagliando i tempi di un controllo password reale. Questo è stato introdotto specificamente come contromisura per CVE-2016-6210.


🔬 Metodologia

Ogni metodo di attacco è stato eseguito come prova indipendente con uno stato del log pulito:```bash

Reset log state on target before each trial

sudo truncate -s 0 /var/log/auth.log

After attack: collect evidence

sudo cp /var/log/auth.log ~/evidence/trial-N-auth.log

Evidenze raccolte per ogni prova:
- stdout/stderr dello strumento (salvati fedelmente)
- `/var/log/auth.log` dal target
- Campioni di temporizzazione delle risposte tramite `time.perf_counter()` in `manual_ssh.py`
- Banner SSH acquisito prima di qualsiasi tentativo di autenticazione

### Metodi di Attacco

| Metodo                   | Strumento                            | Wordlist                | Scopo                                           |
|--------------------------|--------------------------------------|-------------------------|-------------------------------------------------|
| SSH manuale              | `ssh` CLI + Paramiko                 | 50 nomi utente comuni   | Baseline; ispezionare risposte grezze           |
| Forza bruta con Hydra    | `hydra`                              | stessi 50               | Automatico; sfrutta la modalità enum integrata  |
| Modulo Metasploit        | `auxiliary/scanner/ssh/ssh_enumuser` | stessi 50               | Modulo di enumerazione dedicato del framework   |
| Impronta digitale banner | `BannerFingerprinter` personalizzato | N/A                     | Perdita di versione senza autenticazione, CVE   |
| Analisi temporale        | `ResponseAnalyzer` personalizzato    | subset valido vs invalido | Controllo statistico del canale laterale       |

---

## Cosa è Stato Realizzato

Questo progetto va oltre la semplice esecuzione di strumenti — incapsula ogni attacco e tutta la logica di rilevamento in un codebase Python strutturato e fornisce un orchestratore che esegue l'intera pipeline dall'inizio alla fine.

### Strumenti di Attacco (`src/attack_tools/`)

**`ManualSSHEnumerator`** — Testa ogni nome utente N volte con `paramiko`, registrando
temporizzazione precisa, tipo di risultato e banner SSH. Calcola media/deviazione standard per nome utente. Criticamente,
**non** riutilizza le connessioni tra tentativi, assicurando che ogni campione catturi il
tempo completo di elaborazione lato server.

**`BannerFingerprinter`** — Acquisisce il banner SSH su un socket TCP grezzo (nessuna credenziale
necessaria). Analizza il nome dell'implementazione, la stringa di versione e un suggerimento sul SO. Incrocia i riferimenti
con un registro CVE locale. Una versione come `OpenSSH_8.9p1 Ubuntu-3ubuntu0.6` rivela
l'esatto software server — potenzialmente sufficiente per identificare vulnerabilità note prima
che venga tentata qualsiasi autenticazione.

**`HydraAutomation`** — Wrapper per sottoprocesso attorno a Hydra. Analizza stdout per estrarre
login riusciti, messaggi di errore e il verdetto di enumerazione di Hydra stesso
(`does not support user enumeration`).

**`MetasploitScanner`** — Scrive uno script di risorse temporaneo e guida `msfconsole`
tramite sottoprocesso. Analizza l'output per il rilevamento di hardening e eventuali nomi utente trovati.

### Strumenti di Rilevamento (`src/detection_tools/`)

**`LogParser`** — Analizzatore di auth.log basato su espressioni regolari che supporta cinque tipi di eventi SSH:
`failed_invalid_user`, `failed_valid_user`, `pre_auth_reject`, `accepted`,
`disconnected`. Restituisce dizionari di eventi strutturati con timestamp, tipo di evento, nome utente,
IP sorgente e porta.
Scarica lo strumento