
Esempio di codice per l'utilizzo dell'exploit CVE-2019-5736 per minare bitcoin senza alcuna associazione al container o all'utente originale.
Questo utilizza due librerie open source:
È stato testato su Kali Linux, con Docker versione 18.03.0 e RunC versione 1.0.0-rc5.
L'escape dal container Docker avvia più demone di mining che appartengono al processo #1 (il kernel). Ciò significa che le risorse del computer vengono utilizzate per il mining senza che lo script/le risorse di calcolo siano associate al proprio container.
Sfrutta CVE-2019-5736. Quando il container viene eseguito, Docker usa docker-runc per eseguirlo, e si accede al pid di runc che sta eseguendo il nostro container. Si passa quindi l'esecuzione a un altro programma (overwrite_runc) con il symlink al binario di runc. Questo symlink punta direttamente al descrittore di file del binario di runc. Questo ci consente di aprire il descrittore di file di runc in scrittura e sovrascriverlo. Sovrascrivendolo con uno script malevolo, quando il container si spegne, esegue lo script con privilegi di root, consentendoci di avviare un cryptominer.
Questo sovrascrive il binario di runc sul banco di prova, quindi copiare quello vero è una mossa intelligente prima di eseguirlo.
Non usarlo su sistemi reali e vulnerabili.