Bonjour à tous! Je m'appelle Vitaliy Malkin. Je suis le chef du département d'analyse de sécurité chez Informzashchita et capitaine à temps partiel de l'équipe True0xA3. Il y a un peu plus d'une semaine, nous avons remporté l'une des compétitions de hackers blancs les plus prestigieuses de la CEI. Dans le dernier article (si vous l'avez manqué, vous pouvez le lire
ici ), nous avons parlé de l'importance de la préparation préliminaire. Dans ce - je vais parler de ce qui s'est passé directement lors des compétitions elles-mêmes, expliquer pourquoi il est parfois important de faire des ajustements aux plans existants pendant le jeu et pourquoi, à mon avis, aucun des bureaux protégés n'a été piraté.
Premier jour
9:45 MSKLa journée a commencé par le fait que nous avons reçu les résultats du lancement de MassScan-a. Nous avons commencé par le fait que nous avons immédiatement écrit tous les hôtes avec un port 445 ouvert et à exactement 10h00, nous avons lancé le vérificateur de métasplit prêt à l'emploi pour MS17-010. Guidée par notre plan, la tâche n ° 1 était de capturer le domaine bigbrogroup, il a donc été simultanément interrompu par deux personnes de notre équipe à la fois. Dans le diagramme ci-dessous, vous pouvez voir la répartition initiale des membres de notre équipe par bureau.

Comme le montre le diagramme, nous avons couvert presque tous les bureaux. Et ici, le fait qu'il y avait 20 personnes dans l'équipe a beaucoup aidé.
10:15À ce stade, l'un des membres de l'équipe 1 trouve un hôte dans bigbrogroup.phd vulnérable à MS17-010. Nous avons exploité la vulnérabilité avec une précipitation incroyable. Il y a quelques années, nous étions déjà dans une situation où nous avons obtenu un obus mètre-mètre sur un nœud important et après 10 secondes, nous en avons été expulsés, fermant simultanément le port. Cette année, cela ne s'est pas produit: nous avons réussi à saisir le nœud, à fermer le port SMB et à changer le port RDP en 50002. Nous adoptons une attitude très responsable à l'égard de la question de la gestion de l'accès, nous ajoutons donc quelques administrateurs locaux supplémentaires et configurons notre propre RAT. Après cela, nous continuons.
10:25Nous continuons de gérer ce que nous avons découvert. En plus du fait que ce nœud a accès au réseau interne et au contrôleur de domaine, un jeton d'administrateur de domaine s'y trouve également. C'est le jackpot! Nous vérifions immédiatement s'il est «pourri» et il n'y a pas de limite à notre joie. Le premier domaine est tombé. Temps de piratage - 27 minutes 52 secondes.
Enfin, après une demi-heure depuis le début de la compétition, nous allons toujours sur le portail des hackers et essayons de comprendre ce que nous devons faire pour attirer le public. Nous voyons un ensemble standard: informations d'identification d'un administrateur de domaine, administrateur de postes de travail, échange, ainsi que plusieurs sommets. Nous téléchargeons à partir du domaine ntds.dit, découvrant simultanément la station CUDA. Imaginez notre surprise lorsque nous avons vu que le domaine a un mode de cryptage réversible activé, ce qui nous permet d'obtenir tous les mots de passe des utilisateurs en texte clair. Pour comprendre quels utilisateurs nous intéressent, nous avons impliqué deux personnes de l'équipe-1 pour analyser la structure d'AD et de ses groupes. Cinq minutes plus tard, nous avons obtenu toutes les réponses. Nous les envoyons sur le portail et commençons à attendre. Honnêtement - à ce moment-là, je voulais vraiment verser le premier sang pour maintenir le moral, pour ainsi dire, mais seulement après une heure, nous pouvions comprendre comment fonctionne le vérificateur:
a) le vérificateur est automatisé;
b) le vérificateur a un format dur;
c) le vérificateur n'a pas accepté notre réponse quelques secondes après l'envoi de la réponse, car C'était dans le mauvais format.
Après avoir maîtrisé le format, vers 11h00, nous obtenons le premier sang convoité. Ouais!
11:15L'équipe-1 est divisée en deux parties. Les participants d'une sous-commande continuent de prendre pied dans le domaine: recevoir krbtgt, renforcer le domaine, changer les mots de passe des comptes. Même lors du briefing, les organisateurs de PHDays ont clairement indiqué que celui qui se levait le premier portait des pantoufles. Par conséquent, nous changeons les mots de passe sur les comptes pour être sûr: si quelqu'un nous expulse, il recevra un score minimum.
Team-2 continue de rechercher le domaine et trouve la réponse à une autre tâche. Sur le bureau du directeur financier, un rapport financier a été trouvé, si nécessaire pour quelqu'un. Mais le problème est qu'il se trouve dans l'archive, qui est protégée par mot de passe. Eh bien, ce n'est pas pour rien que nous avons découvert une station CUDA. D'un coup de poignet, nous transformons l'archive en hachage et l'envoyons à hashcat.
L'équipe-2 trouve actuellement des services intéressants avec RCE et commence à les «tordre». Il s'agit d'une surveillance dans les médias CF, basée sur Nagios. Il s'agit d'un système de cartographie d'une compagnie navale, construit sur la technologie que nous voyons pour la première fois. Et aussi quelques autres services potentiellement intéressants tels que le convertisseur de DOC en PDF.
La deuxième sous-commande de Team-1, quant à elle, est engagée dans la banque et trouve une base intéressante sur MongoDB, dans laquelle, entre autres, il y a le nom de notre équipe et son équilibre dans un système. Nous «tordons» notre solde de 50 millions et continuons.
14 hNous sommes dépassés par les premiers revers. Premièrement, les deux services sur lesquels nous avons reçu RCE dans les segments protégés sont devenus indisponibles. Les défenseurs les ont simplement éteints. Bien sûr, nous allons nous plaindre aux organisateurs. Cela ne mène à rien. Eh bien, oui, à Standoff, hélas, il n'y a pas d'entreprise qui donnerait un tel plafond. De plus, nous ne pouvons pas trouver une liste de clients. Nous supposons qu'il est caché quelque part dans les profondeurs de 1C, mais il n'y a pas de bases ou de configurations de travail. C'est une impasse.
Nous essayons d'augmenter le canal VPN entre nos serveurs distants et le réseau ICS. Pour des raisons inconnues, nous le faisons sur le contrôleur de domaine bigbrogroup, et lorsque le pont entre les interfaces est créé, la connexion est déconnectée. Le contrôleur de domaine n'est pas disponible. La partie de l'équipe qui a capturé le bigbrogroup a failli faire une crise cardiaque: les premières querelles commencent, la tension générale monte.
Du coup, on se rend compte que le contrôleur de domaine est toujours disponible sur nos serveurs, mais le canal est très instable. Comme dans la stratégie au tour par tour - nous désactivons le mode pont via RDP, le contrôleur de domaine est à nouveau disponible. Fuh !!! Tout le monde se calme. Nous finissons par élever le VPN à partir d'un autre serveur, nous chérissons et chérissons le contrôleur de domaine. Toutes les équipes ont un score nul, c'est rassurant.
16:50Les organisateurs publient enfin le mineur et nous, en utilisant psexec, l'installons sur tous les nœuds contrôlés par nous. Nous obtenons un revenu stable supplémentaire.
Team-2 bousille la vulnérabilité Nagios. Une version vulnérable <= 5.5.6 CVE-2018-15710 CVE-2018-15708 y est installée. Un exploit public existe, mais utilise une connexion inverse pour télécharger un shell Web. Nous sommes derrière NAT, nous devons donc réécrire l'exploit et le diviser en deux parties. Le premier force Nagios à se connecter à notre serveur distant via Internet, et le second, situé directement sur le serveur, donne à Nagios un shell web. Après avoir reçu le shell Web, WSO a été téléchargé et le script PHP vulnérable «magpie_debug.php» a été supprimé. Cela nous donne un accès proxy au domaine CF-media. La connexion est instable et difficile à utiliser, nous décidons d'envoyer l'exploit à Bug-bounty, et en ce moment nous essayons de «mettre à niveau» vers Root.
18:07Et voici les surprises promises par les organisateurs: BigBroGroup achète CF-media! En général, nous avons supposé un virage similaire. Au cours de l'étude du contrôleur de domaine bigbrogroup, nous avons remarqué la confiance entre ce domaine et le domaine cf-media.
Malheureusement, à cette époque, il n'y avait pas d'accès au réseau. Mais au moment de l'annonce de la fusion, il est apparu. Cela nous a libérés du mal de tête associé à la pagination via les nagios. Les informations d'identification Bigbrogroup s'exécutent sur cf-media, mais les utilisateurs ne sont pas privilégiés. Il n'y a pas de vulnérabilités facilement exploitables, mais nous ne désespérons pas. Quelque chose doit être.
18h30Nous sommes éliminés du contrôleur de domaine BigBroGroup. Qui? O?? Cela ressemble à une équipe CARK. Ils changent le mot de passe de l'administrateur du domaine, mais nous avons quatre sauvegardes. Revenez en arrière, réinitialisez tous les mots de passe. Cela n'aide pas, ils nous assomment à nouveau. En même temps, nous trouvons des vecteurs dans les médias CF. L'un des serveurs utilise le même mot de passe administrateur local que dans le domaine bigbrogroup. Bon, réutilisation du mot de passe, il reste à ramasser le hash! En utilisant hashkiller, nous trouvons le mot de passe - "P @ ssw0rd". Nous allons plus loin.
19h00La bataille pour bigbrogroup ne s'arrête pas. TSARKA change deux fois le mot de passe en krbtgt, nous avons perdu tous les administrateurs. Est-ce la fin?
19h30Nous obtenons le domaine d'administration CF-media, commençons à passer des drapeaux. Malgré le fait que le domaine semble être configuré de la manière la plus sécurisée possible, le cryptage inverse est à nouveau activé. Nous recevons des apparences, des identifiants, des mots de passe. Nous répétons tout comme dans le domaine précédent: nous réparons, durcissons, changeons les mots de passe, passons VPN. On retrouve le deuxième rapport financier. Au fait, que se passe-t-il avec le premier? Le premier a déjà été tordu, mais pas accepté par les organisations. Il s'avère que vous devez remettre le 7z crypté !!! Pas besoin de brutaliser quoi que ce soit, trois heures en vain !!!
En conséquence, nous remettons les deux. Nous avons environ 1 million de points, le CARK 125 000, le reste par des zéros. CARKA commence à tourner des drapeaux avec Bigbrogroup. Nous comprenons que cela doit être arrêté d'urgence, mais COMMENT?!
19:45Il y avait une solution !!! Nous avons toujours les informations d'identification des administrateurs locaux. Nous nous connectons, récupérons le ticket et décidons de simplement supprimer le domaine. Le domaine est envoyé à la mise hors tension, fermez tous les ports sur les serveurs sauf RDP, changez les mots de passe des administrateurs locaux. Maintenant, nous sommes seuls et ils sont seuls. Pourtant, pour obtenir un fonctionnement VPN stable et tout en général serait excellent. Expiré ...
Nous dispersons le mineur sur tous les nœuds du domaine CF-media. Le TsARKA nous dépasse au total, mais nous les rattrapons clairement, car nous avons plus de puissance.
La nuit
Dans l'image, vous pouvez voir la répartition de l'équipe la nuit.

Les gars commencent progressivement à rentrer chez eux. À minuit, neuf personnes restent. L'efficacité est considérablement réduite. Toutes les heures, nous partons nous laver et respirer - pour ne pas nous endormir.
Accès à l'ACS TP.
02:00La nuit est très dure. Nous trouvons plusieurs fois des vecteurs, mais ils sont déjà fermés. Il n'est pas tout à fait clair s'ils ont été fermés à l'origine, ou la CARKA nous a déjà rendu visite ici et les a fermés. S'habituant progressivement aux systèmes de contrôle de processus automatisés, nous trouvons un contrôleur vulnérable aux attaques via NetBus. En utilisant le module métasplit, nous faisons quelque chose, sans bien comprendre quoi. La lumière de la ville s'éteint. Les organisateurs sont prêts à démarrer la tâche si nous pouvons rallumer la lumière. À ce stade, la connexion VPN tombe à nouveau. Le serveur sur lequel le VPN est déployé est sous le contrôle du CARK. Encore une fois, il semble que ce soit la fin: nous avons discuté de l'ICS trop bruyant et ils ont pu en quelque sorte nous déconnecter.
3 h 30Les plus persistants "coupent" un rêve. Seuls sept restent éveillés. Soudainement (sans raison apparente), le VPN recommence à fonctionner. Nous répétons rapidement la mise au point avec de la lumière. Il y a + 200 000 publications !!!
Une partie de l'équipe continue de rechercher d'autres vecteurs, une partie continue de travailler activement avec ICS. Nous trouvons deux autres vulnérabilités potentielles. Nous parvenons à exploiter l'un d'entre eux. Le résultat peut être le remplacement du micrologiciel du contrôleur. Nous convenons avec les organisateurs que nous attendrons jusqu'au matin et déciderons ensemble quoi faire.
05:30Le VPN fonctionne 10 minutes par heure, le reste du temps il meurt. Nous essayons de trouver au moins quelque chose. Notre performance est presque nulle. Nous décidons de dormir au moins une heure. SPOILER: une mauvaise idée.
Cinq gars continuent de casser l'ACS TP.
Le matin
Le matin, nous nous rendons compte que nous avons largement dépassé les points du reste, de près de 1 million. Le CARKA a pu passer deux tâches d'ACS TP et plusieurs tâches de télécoms et de bigbrogroup. Ils ont déjà beaucoup exploité, mais selon nos estimations, ils ont un stock qu'ils n'ont pas encore vendu. Au rythme actuel, elle a atteint 200-300 tonnes de public. Cela nous fait peur: on a le sentiment qu'ils peuvent avoir plusieurs drapeaux supplémentaires dans la zashashnik qu'ils peuvent enregistrer pour la poussée finale. Dans notre régiment arrive. La vérification du son du matin sur le site est un peu agaçante, mais revigorante.
Nous essayons toujours de casser l'ACS TP, mais sans grand espoir. L'écart entre les équipes postulant pour la première et la deuxième place, et le reste est trop grand. Nous ne pensons pas que les organisateurs laisseront tout tel quel.
Après une performance conjointe avec CARK sur scène, nous changeons le paradigme de «vous devez marquer plus de points» à «vous devez empêcher le CARK de gagner plus de points».
Sur l'un de nos serveurs, lancez Cain & Abel et transférez tout le trafic vers notre serveur. Nous trouvons plusieurs VPN kazakhs, nous les «coupons». En conséquence, nous décidons de pirater tout le trafic, de mettre en place un pare-feu local sur la passerelle pour interdire tout le trafic sur le réseau ICS (voici comment protéger l'ICS). Les organisateurs arrivent en courant et disent qu'ils n'ont pas accès à ACS TP. Nous leur avons vu des accès pour leurs adresses IP (voici comment vous n'avez pas besoin de protéger ICS).
12:47Pas étonnant qu'ils soient nerveux. Les organisateurs lancent une autre surprise. De nulle part, quatre comptes de domaine apparaissent pour chaque domaine. Nous mobilisons l'équipe.
La tâche de l'équipe-1 est d'entrer dans les segments protégés aussi profondément et rapidement que possible. La tâche de Team-2 consiste à utiliser Outlook Web Access pour modifier les mots de passe des comptes. Certains défenseurs, après avoir vu quelque chose, désactivent simplement le VPN. Certains le font plus compliqué - ils traduisent leurs systèmes en chinois. La fonctionnalité fonctionne, mais elle est impossible à utiliser (orgie, ay!). Via VPN, nous nous connectons à trois réseaux. Nous jette hors du premier en une minute.
12:52Nous trouvons un serveur sain sur le réseau qui est vulnérable à MS17-010 (protégé! Segment). Nous fonctionnons sans rencontrer de résistance, nous obtenons le hachage de l'administrateur de domaine et via Pth nous allons au contrôleur de domaine. Devinez ce que nous y trouvons? Cryptage réversible!
Il semble que ceux qui ont défendu ce segment aient mal fait leurs devoirs. Nous obtenons toutes les informations pour les tâches, à l'exception de la partie liée au 1C. Il y a une option pour le récupérer pendant encore 40 à 50 minutes, mais nous décidons de simplement supprimer le domaine. Nous n'avons pas besoin de concurrents.
13:20Nous remettons les tâches: nous avons 2.900.000 points et plusieurs primes de bogue non acceptées. Les CARK en ont un peu plus d'un million. Ils rendent leur crypto-monnaie et lèvent 200 tonnes. Nous n'avons plus très peur, il est presque impossible de nous rattraper.
13:55Les gens arrivent, félicitations. Nous avons toujours peur d'une sorte de configuration, mais il semble que non, nous sommes vraiment des champions!
Voici une chronique de 28 heures de True0xA3. Beaucoup de ce qui reste dans les coulisses. Par exemple, monter sur scène, tourmenter le Wi-Fi et le GSM, parler aux journalistes, mais ça ne me semble pas le plus intéressant.
Ce fut une expérience très cool pour nous tous et j'espère avoir réussi à transmettre au moins un peu l'atmosphère qui nous a entourés tout ce temps et à montrer à quel point il est intéressant de participer par nous-mêmes. Il y a encore un autre, le dernier article, dans lequel nous évaluerons nos erreurs et tenterons de dresser un plan pour leur correction. Après tout, il n'y a rien de mieux que d'apprendre des erreurs des autres.