
Un esempio di exploit per CVE-2016-5195.
dcow è un possibile exploit della vulnerabilità CVE-2016-5195. Eseguendo il programma come utente non privilegiato su un sistema vulnerabile, modificherà il file /etc/passwd, imponendo la password "dirtyCowFun" (SHA-512, ma potrebbe essere modificata per standard più vecchi). In caso di esecuzione riuscita, effettuando un "su" con quella password, sarà disponibile una shell di root. Usando l'opzione -s (consigliata), una shell di root verrà aperta automaticamente. Un backup del file /etc/passwd originale verrà creato nella directory di esecuzione corrente come .ssh_bak, se dcow viene usato senza opzioni o con -n (vedi esempio sotto).
Questo codice è stato pubblicato a scopo informativo ed educativo. L'intrusione in sistemi e servizi senza l'autorizzazione del proprietario è illegale. L'uso improprio delle informazioni e del software in questo repository può comportare accuse penali contro l'autore del reato. Qualsiasi azione e/o attività relativa al materiale contenuto in questo Git Repository è di esclusiva responsabilità dell'utente. L'autore non sarà ritenuto responsabile nel caso in cui vengano mosse accuse penali contro individui che utilizzano impropriamente le informazioni o il software presenti in questo sito per infrangere la legge.
Un sistema vulnerabile a CVE-2016-5195.
Il programma è stato utilizzato con successo con:
e compilato con:
EDB-ID: 40847
https://www.exploit-db.com/exploits/40847/
Compilare il programma: make
Avviare il programma:
./dcow
oppure
./dcow -s # Apre automaticamente una shell di root e ripristina il file passwd.
./dcow -s -n # Apre automaticamente una shell di root ma non ripristina il file passwd.
Guida in linea:
./dcow -h
Nella sezione "wiki" di questa pagina è presente un elenco parziale dei kernel/distribuzioni vulnerabili.
Nella directory "legacy" è presente un porting grezzo di questo programma che consente la compilazione utilizzando compilatori pre-C++11.
Una versione di questo exploit scritta in linguaggio Go + CGO è presente nella directory "golang". Consente la creazione di un eseguibile statico senza dipendenze esterne.