Hier soir, lorsque j'ai vu l'advisory CVE-2006-5444 portant sur Asterisk et son implémentation Skinny, je me suis dit : chouette, je vais pouvoir utiliser scapy et mon implémentation Skinny toute prête pour écrire l'exploit (un integer overflow entrainant un heap overflow).

Oui, sauf qu'y a vraiment pas besoin : le bug (pré-authentification s'il vous plait! Excusez moi du peu) porte sur le premier champ du protocole (la longueur du message) dans le premier segment de données, bref rien de passionnant, et y a surtout pas besoin d'utiliser scapy pour faire ça :)

Toujours est-il que je remercie les développeurs Debian pour asterisk_safe qui permet de relançer le daemon lorsqu'il est mort. C'est une excellente solution pour les... attaquants puisque avec le noyau de Debian Sarge par défaut, il n'y a pas de randomization des adresses et la GNU Libc 2.3.2 n'a pas les "mesures de protection" qui permet d'utiliser un simple unlink(). Pour exploiter ça, c'est finger-in-the-noise si on cherche pas à faire compliquer.

Si j'ai le temps, je porterai l'exploit dans Metasploit 3... Mais faut d'abord que je fiabilise mon-mien-tout-crade-mais-qui-marchouille...

Note : Ça fait tout de même mal aux yeux que ce soit le tout premier traitement appliqué au message qui soit exploitable aussi facilement, ça laisse perplexe sur la sécurité du reste... À auditer donc.