jeudi 10 novembre 2011

Remote code execution sur pile IP - CVE-2011-2013 - MS-2011-83

Mon flux RSS m'a remonté hier une vulnérabilité intéressante, MS-2011-83.
L'attaque est dévastatrice: remote code execution sur pile IP. Cela signifie qu'il suffit qu'une machine windows soit connectée sur un réseau, quels que soient es services en écoute (voire aucun), pour qu'un attaquant puisse en prendre le contrôle. C'est donc le plus haut niveau de gravité possible.

J'avais commencé à écrire un post de blog en faisant référence à mon message "TCP/IP security is boring" en indiquant le peu d’intérêt de la communauté de sécurité pour ce genre d'exploits. Mais au fur et à mesure de l'écriture du message, j'ai vu à ma bonne surprise mes fils d'actualités se remplir concernant cette faille.

Les informations techniques sur cette faille sont maigres. Le bulletin microsoft est comme d'habitude sibyllin.

  • Nous déduisons tout d'abord que seule la nouvelle pile IP est vulnérable du fait des systèmes impactés, à partir de Vista. Ce bulletin remplace le MS-2011-64, qui était lui aussi lié à un flot continu de paquets, mais ICMP.
  • Aucun Proof of Concept n'est disponible sur internet.
  • Le port UDP n'a pas à être en écoute Microsoft parle de "closed port". Ceci à du sens, contrairement à ce que j'ai pu lire. Lorsqu'un paquet est reçu du réseau, un certain nombre de vérifications doivent être faites, menant éventuellement à son rejet. Ce paquet est donc copié en mémoire, puis analysé. Donc envoyer un (ou des) paquet(s) sur un port fermé conduit donc à l’exécution de plusieurs parties de code du système, dont l'une au moins semble vulnérable.
  • Les paquets UDP ne sont pas aléatoires. Le bulletin indique "specially crafted", mais ne précise pas comment (ce qui est compréhensible).
  • L'exploitation de la faille est indiquée comme non triviale, mais possible, exploitability index de 2.
Un honeypot a été démarré, peut-être quelque chose en sortira, mais j'en doute.

Quelques informations ont émergées de mes flux, notamment celle-ci:
http://www.twitlonger.com/show/e30d0n qui de plus fait référence à des paquets ICMP, et donc le précédent bulletin remplacé. Une piste? Le bulletin MS2011-64 était lié à des paquets ICMP entrants, le twitlonger fait référence à des paquets ICMP sortants, dûs à des paquets UDP envoyés à des ports fermés. Cela semble plausible.

Edit: L'auteur du twitlonger ci-dessus semble arriver à crasher windows:
http://twitter.com/#!/_fel1x/status/134392807816306688. Il "suffit" d'envoyer 2^32 paquets UDP via un simple nmap -sU pour avoir un déclencheur de cette faille. Bon, 2^32 paquets, ça semble un peu beaucoup tout de même. Calcul à la louche. Imaginons une carte 100Mbit/s, et un paquet UDP de 160 octets.

(160x2³2)/100x10^6 = 6871 s, soit un peu plus de 2h de bombardement UDP continu au minimum...

Aucun commentaire:

Enregistrer un commentaire