Comment les chasseurs de bagages ont intercepté des lettres par avion sur ZeroNights



On a déjà beaucoup parlé de Bug Bounty, et la nécessité de tels programmes pour les entreprises semble évidente. Pendant l'existence de notre propre programme, Mail.ru Mail a payé plus de 250 000 $, le paiement moyen est de 379 $, nous avons déjà écrit un peu plus à ce sujet. Et aujourd'hui, en utilisant l'exemple de la récente conférence sur la sécurité de l'information ZeroNights, nous allons parler de la façon dont vous pouvez attirer des pirates informatiques pour qu'ils participent à la recherche de bogues et de vulnérabilités par le biais d'événements spécialisés.

Cette année, la conférence ZeroNights s'est tenue au A2 Green Concert Club à Saint-Pétersbourg. Malgré son départ de Moscou, la conférence a réuni plus de 1000 participants en 2 jours. Pendant la conférence, les rapports de nombreux spécialistes sympas ont été entendus. Si vous avez besoin de hardcore, consultez les explications NUClear, Du mode graphique au mode Dieu, Découverte des vulnérabilités de la virtualisation GPU, Recherche de Marvell Avastar Wi-Fi: de la connaissance zéro au RCE sans contact en direct. Cette année, il y avait aussi de nombreux rapports intéressants sur le Web, vous pouvez voir des diapositives et WebVillage et pas seulement. Personnellement, le rapport d'Ilya Nesterov et de Sergey Shekyan était important pour moi. Distinguer un bot d'un vrai utilisateur devient de plus en plus difficile. En savoir plus sur les rapports ici .

Nos tâches


Nous nous fixons les tâches suivantes:

  • Promotion de la marque et du programme Bug Bounty dans la communauté.
  • Recruter des spécialistes intelligents qui réussissent à faire face à la tâche.

Idée


Le défi le plus difficile dans de tels projets: développer des tâches intéressantes qui, d'une part, attireront les participants, et d'autre part, nous permettront de tester leurs compétences réelles.

Cette année, notre stand était un immeuble de bureaux équipé de courrier pneumatique. L'essence de la tâche: le chef de la poste aérienne envoie des lettres au comptable, et la tâche du pirate est de changer le chemin et d'intercepter la lettre à l'aide d'amortisseurs spéciaux.

Le stand ressemblait à ceci:



Au lieu du courrier lui-même, nous avons utilisé des balles de tennis, qui descendaient de haut en bas dans les lecteurs nécessaires, par défaut dans la «comptabilité». Il était nécessaire d'activer les portes, qui étaient contrôlées à l'aide d'Arduino + RPi3, et de rediriger le "courrier" vers d'autres lecteurs.

Schéma d'action:

  • Nous sommes connectés au réseau Wi-Fi de la tâche.
  • On retrouve dans le réseau Raspberry Pi, qui est connecté à l'Arduino, qui contrôle les amortisseurs.
  • Le RPi tourne un serveur Web. Deux tâches doivent être accomplies - exploiter les vulnérabilités et à la fin ils ont donné des boutons pour activer les amortisseurs, ce qui a permis de rediriger le "courrier"



La balle symbolise la lettre pneumatique:



Idées de missions que nous avons tirées des rapports de nos chercheurs.

Missions


Dans la première tâche, les participants devaient trouver l'hôte RPi3 et y trouver une vulnérabilité de configuration typique pour le serveur Web Apache: la page / server-status, qui affiche toutes les requêtes HTTP entrantes. Entre autres, une requête avec une valeur secrète dans les paramètres GET est arrivée sur cette page, ce qui a permis de passer le premier niveau. Pour cette mission, les visiteurs ont reçu un code promotionnel de 100 $ pour participer à notre programme Bug Bounty.

Solution
Une vulnérabilité de configuration Apache est recherchée par des outils ordinaires comme dirbuster, la ligne d'état du serveur est dans tous les dictionnaires pertinents. De plus, nous avons laissé quelques conseils pour que la tâche puisse être résolue sans aucun script ni programme, même à partir d'un téléphone ordinaire.

Pour terminer la deuxième tâche, il a fallu étudier attentivement le contenu de la page de surveillance déjà connue. Dans le code de l'application client, il était nécessaire de trouver une méthode cachée qui n'était pas appelée depuis l'interface, mais qui contenait une vulnérabilité - une injection NoSQL «aveugle» dans Mongodb.

Solution
Pour automatiser l'injection en aveugle, deux tâches doivent être traitées:
Écrivez un script qui peut recevoir 1 bit d'informations en une seule demande. En sortie, vous devez pouvoir insérer l'expression logique d'intérêt dans la demande et, selon la réponse du serveur, comprendre si elle est vraie ou fausse.

Pour comprendre comment obtenir les informations d'intérêt de la base de données petit à petit (par exemple, si vous voulez connaître la valeur du champ secret = 'some_secret', vous pouvez utiliser des expressions régulières. Premièrement, nous découvrons le premier caractère secret ~ '^ a', secret ~ '^ b' ... secret ~ '^ s' ... Après cela, le deuxième secret ~ '^ sa', secret ~ '^ sb' ... De même, nous obtenons tout le jeton secret).

Ce n'est pas la seule et non l'implémentation la plus efficace; vous pouvez voir de meilleures options dans le code sqlmap.

La principale difficulté était une pile technologique atypique: MeteorJS, qui utilise activement Websockets, ainsi que MongoDB et Pubsub au lieu des requêtes et réponses HTTP habituelles, ne permettait pas l'utilisation des outils existants et exigeait que les participants soient capables d'automatiser eux-mêmes les attaques. De nombreux participants ont recherché des vulnérabilités dans la fonctionnalité de la plate-forme MeteorJS elle-même, la confondant avec un code de travail. De plus, pour certains participants, il a été difficile d'automatiser les demandes via Websockets.



Les participants ont reçu un sweat-shirt Mail.ru Bug Hunter comme prix pour ce concours.

Résultats


En seulement deux jours de la conférence, plus de 200 personnes ont participé à notre concours. 100 participants ont terminé la première tâche, 45 personnes ont terminé la deuxième tâche.

Bien sûr, après avoir réussi la tâche, nous avons interviewé sur place. Les cartes générées pour 100 $ ont un effet retardé, mais plusieurs d'entre elles ont déjà été activées et nous avons eu de bons bugs sur H1. Ils encouragent les pirates à rechercher de nouveaux bogues, nous aident à améliorer nos systèmes et à améliorer la sécurité. Une petite carte - d'excellents résultats. Et cent dollars, c'est cent dollars.



Source: https://habr.com/ru/post/fr434334/


All Articles