Pour cette huitième édition, 7 équipes ont eu 30 minutes pour exploiter leurs cibles et expliquer leurs méthodes dans une série de 12 compétitions en tout. Les cibles visées étaient Chrome, IE 11, Firefox, Adobe Reader et Flash pour Windows et Safari pour Mac OS X.
Le premier jour s'est soldé par des réussites pour 4 participants alors que du côté des éditeurs de logiciels, ils étaient à la fois émerveillés par le spectacle, mais surpris de constater comment sont vulnérables leurs produits.
Les premiers à entrer en lice n'ont pas manqué d'empocher 60 000 $ pour commencer. Les hackers ont exploité un bug de débordement de mémoire dans Flash pour l'exécution de code à distance. Ils ont aussi exécuté une attaque par élévation de privilège au niveau SYSTEM de Windows. Pour y parvenir, les pirates ont exploité une faille TrueType Font (TTF) dans le noyau de l'OS. Ce qui leur a valu une récompense supplémentaire de 25 000$.
L'homme du jour 1, c'est probablement lui, Nicolas Joly. Chercheur en sécurité, il a combiné une vulnérabilité d'exécution de code à distance use-after-free (UAF) et une vulnérabilité d'évasion de sandbox dans Flash d'Adobe pour exécuter du code arbitraire. Une vulnérabilité UAF est un type de faille de corruption de la mémoire qui peut être exploitée par des pirates pour exécuter du code arbitraire. Cela se réfère spécifiquement à la tentative d'accéder à la mémoire après qu'elle ait été libérée.
Dans sa deuxième tentative, Nicolas a pris contrôle de la mémoire dans Adobe Reader via un débordement de mémoire tampon, d'abord pour une fuite d'information et ensuite pour l'exécution de code à distance. Il affirme avoir écrit la dernière partie de son exploit dans l'avion en se rendant à la conférence. Pour ses deux tentatives, il a obtenu une recette journalière de 90 000 $.
Les équipes Tencent PCMgr et KeenTeam ont suivi pour une belle démonstration. Elles sont parvenues à prendre contrôle de la mémoire dans Adobe Reader avec un débordement d'entier pour exécuter du code au niveau SYSTEM dans Windows via un autre bug TTF dans le noyau. Après avoir ouvert le concours, les équipes Tencent PCMgr et KeenTeam complètent leur gain à 140 000$ avec leur deuxième passage. Elles ont obtenu 30 000$ pour l'exploit et 25 000$ pour l'exécution de code.
Sa vitesse d'exécution restera à jamais gravée dans la mémoire de Mozilla. Mariusz Mlynski, un autre hacker ciblant Firefox, a fait tomber le navigateur dans un temps record de 0,542 secondes. Il a exploité une vulnérabilité cross-origin dans Firefox pour attaquer une faille dans Windows. La faille lui a ensuite permis d'augmenter ses privilèges et exécuter du code à distance. Il s'est vu attribuer une prime de 55 000 $ pour sa prouesse.
360Vulcan Team, les nouveaux de cette année, n'ont pas non plus été moins convaincants. Ils ont pu casser IE 11 64 bits de Microsoft avec une vulnérabilité de mémoire non initialisée. La faille a permis l'exécution de code « medium integrity » pour une prime de 32 500$.
À la fin du jour 1, ce sont au total 317 500 $ qui ont été distribués. Flash, Adobe Reader et Windows ont enregistré le plus de bugs - soit 3 chacun - tandis que Firefox et IE11 suivent avec 2 bugs chacun.
Le jour 2, les hostilités se sont poursuivies avec le même enthousiasme. Deux participants ont réussi avec succès leurs tentatives visant IE, Chrome, Firefox et Safari.
Le dernier jour de la compétition a débuté avec l'entrée en scène d'un hacker de pseudo ilxu1a. Il a fait tomber Firefox en exploitant une vulnérabilité de lecture/écriture. La faille lui a permis de lancer l'exécution de code et obtenir en retour une prime de 15 000$ pour le bug. Dans une seconde tentative, il n'a malheureusement pas eu assez de temps avant que son code visant Google Chrome soit fonctionnel.
Celui qui a été le plus impressionnant durant toute la compétition reste Junghoon Lee (lokihardt), hacker en cavalier seul. Il a explosé le record de prime de toute l'histoire de Pwn20wn avec un total de 225 000$ pour trois cibles différentes.
Sa première tentative a fait tomber Internet Explorer 11 (64 bits) avec une vulnérabilité time-of-check to time-of-use (TOCTOU) lui donnant des privilèges de lecture/écriture. Il a contourné tous les mécanismes de défense en utilisant une évasion sandbox par injection de JavaScript. Cela a abouti à l'exécution de code « medium integrity ».
Dans une seconde tentative, les versions stables et bêta de Google Chrome se sont également soumises à l'attaque de lokihardt. Il a utilisé une race condition de dépassement de tampon dans Chrome, puis une fuite d'informations et une race condition dans deux pilotes du noyau de Windows pour obtenir l'accès à SYSTEM.
Après IE 11 et Chrome, lokihardt attaque le navigateur d'Apple. Il a en effet fait tomber Safari en utilisant d'abord une vulnérabilité UAF dans un pointeur de pile non initialisé dans le navigateur avant de contourner le sandbox pour l'exécution de code.
À la fin de la compétition, Windows a enregistré 5 bugs devant IE 11 qui en totalise 4. Firefox, Adobe Reader et Flash étaient au coude-à-coude avec 3 bugs chacun, tandis que Safari suivait avec un total de 2. Du côté de Google Chrome, on n'enregistre qu'une seule vulnérabilité.
Sources: Pwn2Own 2015 Day 1 Results, Pwn2Own 2015 Day 2 Results
Et vous ?
Quelles sont vos impressions ?