SCRT @ DEFCON 2015

Cet été, 4 ingénieurs de l’équipe se sont rendus à Las Vegas pour les finales du concours de Capture the Flag (CTF) organisé par Legit BS à DEFCON. Ils se sont qualifiés en 10ème position avec l’équipe 0daysober.

Sur place, le concours s’est déroulé sur 3 jours, où chaque équipe était responsable d’un serveur sur lequel tournaient plusieurs services différents. Chacun d’entre eux était vulnérable à une ou plusieurs vulnérabilités. Le but du concours est donc de patcher ses propres services et d’exploiter les failles chez les autres équipes pour marquer des points.

Les services rencontrés cette année tournaient sur différentes architectures. Un premier binaire linux x86_64, “rxc”, suivit ensuite d’un autre service “ombdsu” tournant sur mips32le. Nous avons pu rapidement rejouer un exploit sur ce dernier, nous permettant de scorer quelques points. Un troisième service x86 “tachikoma” a été fournit à la fin de la première journée, ou nous terminons en 3ème position.

Aidé par plusieurs personnes à distance, nous avons pu patcher et exploiter une faille dans “rxc”, une nouvelle faille dans “ombdsu” et rejouer un exploit dans “tachikoma” dès le début de la deuxième journée. Un challenge ARM64 hébergé sur l’infrastructure de LegitBS a été proposé afin de séléctionner les 4 équipes les plus rapides. Nous avons heureusement été séléctionné, et les 4 équipes finalistes devaient s’affronter dans un livectf ou une personne représentait l’équipe et le gagnant remportait 1000 points. Etant extrêmement proche du but, notre coéquipier s’est malheureusement fait dépasser par un membre des PPP, qui nous devance ainsi de 7 points au terme de la deuxième journée, ou nous terminons en troisième position.
Trois autres services ont été mis en place sur cette deuxième journée:
– “hackermud”, une sorte de jeu d’aventure en Linux x86
– “badlogger”, un service de journalisation en Windows arm32
– “irkd”, un client IRC en Linux mips32le

Le troisième jour, nous avions corrigés 2 failles dans badlogger, nous évitant ainsi l’exploitation immédiate faite par DEFKOR et PPP. Nous n’avons malheureusement pas réussi à l’exploiter faute de matériel (Raspberry Pi 2) pour mieux analyser l’exploitation. Nous avions cependant deux nouveaux exploits dans tachikoma et ombdsu, nous permettant de scorer encore quelques équipes n’ayant pas patché toutes les failles. Pour préserver le suspens, ni score ni classement n’était affiché. Seule l’animation 3d tournant sur Unreal Engine de Legit BS permettait de voir si les équipes validaient beaucoup de flag. C’était aussi un bon moyen de voir si on se faisait voler des flags et par qui, les fusées représentant un flag ou exploit validé sur une équipe :

Au final, l’équipe sur place s’est en grande partie concentrée sur la défense, en patchant les binaires et en analysant les captures réseau. D’après ce que nous avons pu observer, nous n’avons eu que quelques vols de flag entre le samedi 12h et la fin du CTF le dimanche à 14h.

Autre nouveauté cette année, une version customisée de xinetd par LegitBS. En gros les fonctionnalités ajoutées sont :
– Limitation du nombre de connexions par source (2)
– Limitation de la durée d’exécution du service
– Limitation des syscalls autorisés pour le service
Les deux premières fonctionnalités étaient parfaites pour éviter les DoS. Pas besoin de surveiller la charge de la machine ni la durée des processus, ce qui était relativement couteux en temps et en SLA l’an passé.
Concernant la limitation des syscalls, le service xinetd créait une sorte de sandbox SECCOMP pour limiter les appels fait par le service. Le but principal étant d’empêcher que les équipes mettent en place leur propre sandboxing au moyen de qemu ou autre.

Cette année encore, nous avons utilisé Kibana pour grapher quelques indicateurs, tel que la validation de chaque flag par équipe et par service. Le pie chart suivant rassemble la totalité des flags que nous avons pu valider :
flags
Vous pouvez cliquez sur le lien pour visualisez les détails.

Au final, l’équipe a terminé en 3ème position, juste derrière DEFKOR et PPP.