
Exemple de code pour utiliser l'exploit CVE-2019-5736 pour miner du bitcoin sans aucune association avec le conteneur ou l'utilisateur d'origine.
Ceci utilise deux bibliothèques open source :
Cela a été testé sur Kali Linux, avec Docker version 18.03.0 et RunC version 1.0.0-rc5.
L'évasion du conteneur Docker lance plusieurs démons de minage qui appartiennent au processus #1 (le noyau). Cela signifie que les ressources de l'ordinateur sont utilisées pour le minage sans que les ressources du script/de calcul soient associées à votre conteneur.
Cela exploite CVE-2019-5736. Lorsque le conteneur est exécuté, docker utilise docker-runc pour l'exécuter, et nous accédons au pid de runc qui exécute notre conteneur. Nous passons ensuite l'exécution à un autre programme (overwrite_runc) avec le lien symbolique vers le binaire runc. Ce lien symbolique pointe directement vers le descripteur de fichier du binaire runc. Cela nous permet d'ouvrir le descripteur de fichier de runc en écriture et de le remplacer. En le remplaçant par un script malveillant, lorsque le conteneur s'arrête, il exécute le script avec les privilèges root, nous permettant de lancer un cryptomineur.
Cela remplace le binaire runc sur le banc d'essai, il est donc judicieux de copier le vrai avant d'exécuter cela.
N'utilisez pas cela sur des systèmes réels et vulnérables.