tools

Ssh-audit: come analizzare cipher deboli, CVE e misconfigurazioni SSH

Ssh-audit: come analizzare cipher deboli, CVE e misconfigurazioni SSH

Scopri come usare ssh-audit per verificare la configurazione di server e client SSH, identificare algoritmi deboli, cipher obsoleti, versioni vulnerabili e finding utili per hardening o penetration test autorizzati.

  • Pubblicato il 2026-03-31
  • Tempo di lettura: 3 min

Ssh-audit analizza la configurazione di server e client SSH identificando algoritmi crittografici deboli, versioni vulnerabili, cipher obsoleti e misconfiguration. Non è un brute forcer — è lo strumento che ti dice se il server SSH usa algoritmi forzabili, se è vulnerabile a CVE note e se la configurazione rispetta gli standard di sicurezza.

Nel penetration testing, ssh-audit si usa nella fase di enumeration quando trovi porta 22 aperta: prima di tentare brute force, capisci cosa stai attaccando. Un server con diffie-hellman-group1-sha1 è significativamente più debole di uno con solo curve25519-sha256.

Kill chain: Reconnaissance / Vulnerability Assessment (MITRE ATT&CK T1595).


1️⃣ Setup e Installazione #

bash
pip install ssh-audit --break-system-packages

O:

bash
sudo apt install ssh-audit

Verifica: ssh-audit --help. Versione: 3.2.0.


2️⃣ Uso Base #

bash
ssh-audit 10.10.10.50

Output:

text
# general
(gen) banner: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
(gen) software: OpenSSH 8.9p1
(gen) compression: enabled (zlib@openssh.com)

# key exchange algorithms
(kex) curve25519-sha256                     -- [info] safe
(kex) diffie-hellman-group14-sha256         -- [info] safe
(kex) diffie-hellman-group-exchange-sha256  -- [info] safe

# host-key algorithms
(key) ssh-ed25519                           -- [info] safe
(key) rsa-sha2-512                          -- [info] safe

# encryption algorithms
(enc) chacha20-poly1305@openssh.com         -- [info] safe
(enc) aes256-gcm@openssh.com               -- [info] safe
(enc) aes128-cbc                            -- [warn] using weak cipher mode

# mac algorithms
(mac) hmac-sha2-256-etm@openssh.com        -- [info] safe

Ogni algoritmo è classificato: [info] safe, [warn], [fail].


3️⃣ Tecniche Operative #

Audit su porta non standard #

bash
ssh-audit 10.10.10.50:2222

Output JSON per report #

bash
ssh-audit -j 10.10.10.50 > ssh_audit.json

Scan multipli host #

bash
for host in $(cat ssh_hosts.txt); do
  echo "=== $host ===" >> report.txt
  ssh-audit "$host" >> report.txt 2>&1
done

Audit client SSH locale #

bash
ssh-audit -c

Verifica la configurazione del tuo client SSH.


4️⃣ Tecniche Avanzate #

Verifica CVE specifiche #

Ssh-audit include check per CVE note:

bash
ssh-audit 10.10.10.50 2>&1 | grep -i "cve\|vuln"

Policy compliance check #

bash
ssh-audit -P /path/to/policy.txt 10.10.10.50

Verifica la configurazione contro una policy predefinita.

Targeting specifico di versioni vulnerabili #

bash
ssh-audit 10.10.10.50 2>&1 | grep "banner"

OpenSSH < 8.5 → CVE-2023-38408 (PKCS#11). OpenSSH < 9.3p2 → CVE-2023-51385.


5️⃣ Scenari Pratici di Pentest #

Scenario 1: Audit rapido perimetrale #

bash
for ip in $(cat ssh_targets.txt); do
  echo "$ip: $(ssh-audit -j $ip 2>/dev/null | jq -r '.banner')"
done

Timeline: 2-3 sec per host.

Scenario 2: Trovare server con algoritmi deboli #

bash
ssh-audit 10.10.10.50 2>&1 | grep -E "\[warn\]|\[fail\]"

Output atteso: algoritmi marcati come weak/failed.

Scenario 3: Compliance audit su fleet #

bash
for ip in $(cat all_ssh.txt); do ssh-audit -j "$ip" 2>/dev/null; done | jq -r 'select(.cves | length > 0) | .banner'

6️⃣ Toolchain Integration #

Flusso: Masscan (porta 22) → Ssh-audit (config analysis)Hydra/Medusa (brute force se appropriato) → SSH access

ToolConfig auditCVE checkBrute forceCompliance
Ssh-auditNo
Nmap ssh scriptsLimitatoLimitatoNoNo
HydraNoNoNo

7️⃣ Attack Chain Completa #

Fase 1: Ssh-audit → OpenSSH 7.6 con algoritmi deboli (3 sec). Fase 2: CVE check → vulnerabile a username enum. Fase 3: Username enum → utenti validi (2 min). Fase 4: Password spray → accesso (5 min). Timeline: ~8 min.


8️⃣ Detection & Evasion #

Ssh-audit stabilisce una singola connessione SSH per il key exchange — traffico minimo e legittimo. Quasi impossibile da distinguere da una connessione SSH normale.


9️⃣ Performance & Scaling #

2-3 secondi per host. 100 host: 3-5 minuti in loop.


🔟 Tabelle Tecniche #

FlagDescrizione
-jOutput JSON
-cAudit client
-p port o :portPorta custom
-P policyPolicy check
-l levelLivello dettaglio

11️⃣ Troubleshooting #

ProblemaFix
Connection refusedSSH non su quella porta
TimeoutFirewall filtra porta 22

12️⃣ FAQ #

Ssh-audit è rumoroso? No. Una singola connessione, nessun brute force.

Trova vulnerabilità exploitabili? Identifica CVE e weak config. L’exploit è tuo compito.


13️⃣ Cheat Sheet #

AzioneComando
Audit basessh-audit 10.10.10.50
Porta customssh-audit 10.10.10.50:2222
JSON outputssh-audit -j target
Client auditssh-audit -c
Solo warning/failssh-audit target | grep -E "warn|fail"
Multi-hostfor h in $(cat hosts.txt); do ssh-audit $h; done

Disclaimer: Ssh-audit per security assessment autorizzato. Repository: github.com/jtesta/ssh-audit.


Vuoi supportare HackIta? Visita hackita.it/supporto per donazioni. Per penetration test professionali e formazione 1:1, scopri hackita.it/servizi.

#openssh #weak-ciphers

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.