Vor ein paar Tagen haben wir eines der emotionalsten Ereignisse abgeschlossen, das wir je im Rahmen unseres Blogs veranstaltet haben – ein Online-Hacker-Spiel mit dem Ziel, einen Server zu zerstören.
Die Ergebnisse übertrafen unsere Erwartungen: Die Teilnehmer haben sich nicht nur beteiligt, sondern sich schnell zu einer engagierten Community von 620 Personen im Discord organisiert, die das Quest tatsächlich innerhalb von zwei Tagen ohne Unterbrechung für Schlaf angegriffen hat.
Und so endete es:

Wie alles begann und worum es überhaupt ging?
Das Spiel begann am 12. August, als wir in unserem Blog ein Video veröffentlichten, in dem ein Hacker in Form eines Schädels anbietet, an dem Spiel teilzunehmen, den Server zu zerstören, in einem Raum einen Kurzschluss (oder zumindest ein kleines Feuer) zu verursachen und das Geld, das im Schredder geblieben ist, zu holen.
Es war ein Online-Quest: Wir haben einen Livestream aus einem Raum gestartet, den wir mit IoT-Geräten gefüllt haben, inklusive einem Server unter dem Bett (den es zu zerstören galt). Über dem Server befestigten wir ein Aquarium und hängten eine Gewichtsplatte darüber. Um das Spiel spannender zu gestalten, entschieden wir uns, einen Preisfond von 200.000 Rubel einzurichten, den wir in einen Schredder luden und auf alle 60 Minuten einstellten. Jede Stunde fraß der Schredder 1.000 Rubel – je schneller die Spieler ihn stoppten, desto mehr Geld würden sie gewinnen.

Den Quests zu bauen, war an sich schon eine Herausforderung – wir mussten uns von Lieferungen ernähren und schliefen nur ein paar Stunden pro Nacht im selben Raum. Aber am erstaunlichsten war es, den kreativen Denkprozess der Spieler und ihr emotionales Engagement während des Spiels zu beobachten.
Um ehrlich zu sein, die Einfallsreichtum der Spieler beim Lösen der Aufgaben übertraf unsere bescheidene Vorstellung bei Weitem: Jede freie Minute lasen wir den Discord-Chat und in manchen Fällen mussten wir buchstäblich vor Lachen weinen, als wir sahen, was die Spieler taten und wie sie während des Spiels Witze machten.
An dem Projekt arbeiteten unermüdlich 7 Personen: ein Backend-Entwickler, ein Hardware-Spezialist, ein echter Filmproduzent, ein CG-Designer und zwei kreative Ideengeber-Producer.
In den kommenden Beiträgen werden wir erläutern, wie das Quest aus technischer Sicht umgesetzt wurde. Zunächst möchte ich jedoch die Lösung verraten: wie man diesen Raum während der Übertragung hacken musste. Gleichzeitig erinnern wir uns an die Chronologie der Ereignisse sowie an alle verrückten Illuminati-Theorien aus dem Discord-Chat.
Was hatten die Spieler zu Beginn des Spiels?
Alle Gegenstände im Raum wurden in drei Kategorien eingeteilt:
- Einfach zu bedienende, nicht spielerische IoT-Geräte
- Spielgeräte zur Durchführung des Quests
- Ambiente

Wir haben 8 sehr einfach zu bedienende Elemente platziert: zwei Lampen, eine Lichterkette und fünf Buchstaben, die jeweils die Farbe ändern konnten. All dies konnte über die Website ein- und ausgeschaltet werden, sodass man sofort das Ergebnis während der Übertragung sehen konnte – wir haben sie speziell für alle Spieler zugänglich gemacht, unabhängig von ihrem technischen Know-how.

Alles, was einfach über die Website eingeschaltet werden konnte
Einige wichtige Spielelemente, die für das Lösen des Quests benötigt wurden und deren Zugang nicht so einfach zu erhalten war:
- Ein Server mit einem offenen Deckel und einem Aquarium darüber
- Eine Kettlebell, die so aufgehängt war, dass sie das Aquarium zerschmettern konnte
- Megatron 3000 – ein leistungsstarker Laserpointer, der auf das Seil zielt, das die Kettlebell hält
- Ein leistungsstarker Ventilator, der bei Belastung des Servers aktiviert wurde
- Ein Flipchart, auf dem der Login und das Passwort für Megatron geschrieben waren
- Ein Telefon, mit dem man anrufen konnte, um seinen Anruf live zu sehen
- Ein Aktenvernichter, der 1000-Rubel-Scheine pro Stunde verschlang
Wie das Rätsel tatsächlich gelöst wurde
Ich kann gleich sagen: Die Box ließ sich ziemlich einfach öffnen.
Ziel des Spiels war es, den Aktenvernichter zu stoppen, indem man einen Kurzschluss im Raum verursachte. Dazu musste man das Aquarium zerschlagen, indem man die Kettlebell hineinwarf und den Server mit Wasser überflutete. Die Kettlebell hing an einem Schnur, auf die Megatron zielte. Übernahm man die Kontrolle über Megatron, konnte das Seil durchtrennt werden. Dies geschah in 5 einfachen Schritten:
Schritt 1. Den Server in dem Raum belasten
Zum Beispiel, indem man Pakete mit einem Befehl sendet.
ab -r -n 10000 -c 100 -s 280 -l https://ws.ooosokol.ru/captchaEin Hinweis war eine sehr belastende findet man .

Die besagte CAPTCHA, die angegriffen werden musste

Bei hoher Auslastung des Servers stieg dessen Temperatur, was im Monitoring zu sehen war, das direkt vor der Kamera geöffnet war. Daraufhin wurde der Ventilator aktiviert, der einen leichten Vorhang am Flipchart öffnete. Dann wurde der an der Tafel geschriebene Benutzername und das Passwort für die Megatron-Seite sichtbar.
Die Verwaltungsseite von Megatron konnte gefunden werden, indem alle auf die Domain ooosokol.ru ausgestellten Zertifikate überprüft wurden.
Auf dem Subdomain befand sich die Verwaltungsseite von Megatron. Diese konnte jedoch nicht aufgerufen werden, solange Megatron nicht mit der primären Stromversorgung versorgt wurde.
Alle diese Schritte wurden nahezu sofort in den Kommentaren des YouTube-Streams von den Spielern erwähnt. Anschließend wurden die Aufgaben schwieriger, und die Spieler gründeten den Discord-Server RUVDS Hack Room und setzten die Diskussion dort fort.
Schritt 2. Primärstrom auf Megatron bereitstellen
Alle intelligenten Geräte, die über die Website gesteuert wurden (diese speziellen Lampen, die von den Spielern pausenlos ein- oder ausgeschaltet wurden), hatten ihre eigenen Identifikationsnummern.
Um die Primärversorgung für den Megatron herzustellen und ihn gleichzeitig zu beleuchten, musste ein verstecktes Gerät auf der Verwaltungsseite aktiviert werden.

Dazu war es notwendig, die Geräte-IDs zu überprüfen und festzustellen, dass insgesamt 4 Geräte vorhanden sind, aber auf der Website nur 3 verfügbar sind.

Die Seite des Megatrons wurde verfügbar, als das 4. Gerät aktiviert wurde, und der Laser wurde beleuchtet. Allerdings konnte der Laser nicht abgefeuert werden, und es hing eine Nachricht an ihm: Der Laser ist derzeit nicht verfügbar und der Hinweis: Im Büro sind die Sicherungen rausgeflogen, man muss die Hausverwaltung anrufen und um die Wiederherstellung der Stromversorgung bitten.

Hinweis zur Hausverwaltung
3. Die Hausverwaltung anrufen und um die Aktivierung der Stromversorgung für den Megatron bitten.
Aufgrund der LOR konnte der Megatron nicht schießen, weil die Sicherungen im Büro rausgeflogen waren. Die Wiederherstellung der Stromversorgung konnte nur von der Hausverwaltung vorgenommen werden, die man anrufen und sich als Eigentümer der GmbH identifizieren musste.
Die Telefonnummer der Hausverwaltung war leicht zu finden – wir haben sie direkt in das Footer eingefügt.

Die Identifizierung war jedoch wesentlich schwieriger.
Als ich die Nummer +74991130688 anrief, hob eine Operatorin ab und bat mit gelangweilter Stimme um die NIN der Firma sowie den vollständigen Namen des Eigentümers. Ohne diese Informationen weigerte sie sich, die Stromversorgung zu aktivieren, und erklärte, dass sie nur eine gewöhnliche Outsourcing-Disponentenstelle sei, mit 2000 Kunden und Büros, und ohne diese Informationen sei es einfach nicht möglich, die richtige Person zu finden.
Für die Spieler stellte dies die schwierigste Phase dar. Rund zwei Tage suchten sie nach den korrekten NIN und dem Namen des Eigentümers, während ich (in der Rolle der Disponentenstelle) in dieser Zeit über 400 Anrufe entgegengenommen habe. Das Telefon klingelte alle 2-3 Minuten.
Die Jungs suchten nach besten Kräften. Sie durchforsteten die Quellcodes der Website, suchten im Internet nach dem Eigentümer Sokolov und durchkämmten die sozialen Netzwerke.
Sie suchten die NIN verschiedener Unternehmen.

Fast das vollständige Suchschema.
Irgendwann riefen sie sogar mit einer Nummernänderung an – als ob sie aus dem Büro des im Footer angegebenen Unternehmens Sokol anriefen.
Da erfuhren wir, wie viele Unternehmen den Namen Sokol tragen. Praktisch jede dieser Firmen wurde von den Spielern kontaktiert, aber das stand in keinem Vergleich zu dem, was die Website durchgemacht hat. , bei dem wir vor etwa einem Monat tatsächlich den Megatron gekauft haben.
Zuerst griff Discord den Support von LaserMasters an.

Dann konnten sie dort das Konto von jemandem finden! Während der Support von LaserMasters bereits weniger zurückhaltend mit seinen Ausdrücken war.
Vorsicht, haltet die Kinder vom Bildschirm fern.


Letztendlich haben sie beschlossen, LaserMasters einfach mit DDoS anzugreifen, und deren Website ist gefallen. Genauso wie die Seite von Falcon, die wir jedoch schnell wieder online gebracht haben.
Im Verlauf der Untersuchung fanden die Jungs von Discord sogar den Schauspieler, dessen Foto wir aus Stockmaterial gekauft hatten, damit er die Rolle des Hauptantagonisten, Eigentümer der GmbH Andrej Sokolov, spielt. Es stellte sich heraus, dass er Yuri heißt und vollkommen ahnungslos ist, in welche Verwirrung er geraten ist.

Andrej Sokolov, die Figur im Spiel

Yuri, das Model
Wenn er gewusst hätte, was er damit angestellt hat, 600 Leute zwei Nächte lang wachzuhalten... )
Danach begannen sie spezifisch gegen mich zu ermitteln, als Organisator des Quests (was durchaus erfolgreich hätte enden können, wenn die Jungs darauf gekommen wären, meine Arbeitskanäle zu hacken).

Ich war sogar ein wenig besorgt, als sie meinen Vornamen und sogar meine Steuer-Identifikationsnummer nannten. Aber es war beruhigend, als ich während des Spiels von ‘Stille Post’ plötzlich einen großen Bruder bekam, der sich als technischer Direktor von Habr herausstellte.
Mein lieber leiblicher Bruder, dem das auch zugutekam

Währenddessen wurden die Spekulationen immer absurder

Und es gab sogenannte Illuminati-Theorien.

Die skurrilsten Verschwörungstheorien betrafen SpongeBob, Harry Potter und das Blinken einer chinesischen LED-Lichterkette, die wir ins Gehäuse des Systems gelegt hatten.
Woher SpongeBob und Harry Potter, werden Sie sagen? Wir hatten ihre Adressen auf die Kontaktseite von Sokol gesetzt, und das führte zu einer Menge Spekulationen in der Discord-Community. Obwohl wir einfach nur unseren Lieblingswerken aus der Kindheit huldigen wollten.

Der besagte Hinweis auf der Seite ""
Und als Ergebnis





Stellte sich heraus, dass es in der Serie tatsächlich Dokumente von SpongeBob gibt. Diese wurden als Steuer-Identifikationsnummer bezeichnet.

Eine der schwierigsten Theorien besagte, dass im Blinken der chinesischen Lichterkette eine Nachricht in Morsezeichen kodiert ist.
Das Blinken wurde aufgezeichnet und versucht zu entschlüsseln



In einfacheren Theorien versuchten die Leute herauszufinden, ob nicht ein Hinweis in den Karten verborgen war.

Auf dem Weg wurden wir mit verglichen – das ist eine ungerechtfertigt hohe Bewertung, aber dennoch angenehm.


Die Spieler versuchten eifrig, soziale Ingenieurskunst anzuwenden. Ich erhielt Anrufe, die sich als FSB, Feuerwehrleute, der gesamte Sokolov, seine Ex-Frau und ein Wachmann ausgaben, der angeblich unten bei uns saß. Sie sagten, es habe ein Feuer gegeben, jemand sei im Aufzug steckengeblieben, und die berührendste Geschichte war, dass in einem brennenden Büro angeblich ein Hund des Anrufers sitze.

Es gab auch Versuche zur Bestechung.
Langsam tauchten eigene Memes im Chat auf.
Hier sind ein paar davon.



Die Fabriken standen derweil still.





Hinweis
Das Geld im Schredder wurde immer weniger. Damit der Gewinner überhaupt etwas bekam, beschlossen wir, einen Hinweis zu geben. Außerdem, um den Regeln des Game Designs zu folgen, die Spannung kurz vor dem Finale zu steigern.
In einem Blogbeitrag veröffentlichten wir ein Video. Zu Beginn war ein Ausschnitt aus dem „Fight Club“ eingefügt – als Anspielung auf Tyler Durden, der darüber nachdachte, den 25. Frame in Filme einzufügen, während er in Kinos arbeitete.
Wir entschieden uns, dieselbe Technik anzuwenden und fügten als 25. Frame den Hinweis ein, wie man die richtige Steuer-ID und den Namen des Eigentümers finden kann.


Danach haben die Jungs sehr schnell aufgeholt.
Schritt 4. Laser im Nicht-Kampfmodus abfeuern
Nachdem die Stromversorgung durch das Management bereitgestellt wurde und die Sicherungen eingeschaltet waren, wurde Megatron aktiviert und konnte im Testmodus schießen. Im Eingabeformular wurde bereits ein Token für den Testschuss eingesetzt.

Alle 25 Sekunden wurde ein neuer Token generiert, der verwendet werden konnte, um den Laser für 10 Sekunden mit einer Leistung von 10/255 zu aktivieren.
Anschließend kühlte der Laser für 1 Minute ab und war in dieser Zeit nicht verfügbar, er nahm keine neuen Schussanfragen an.
Diese Leistung war ganz und gar nicht ausreichend, um ein Seil durchzuschneiden, aber jeder Spieler konnte aus dem Megatron schießen und den Laserstrahl in Aktion sehen.
Die Reaktion der Community war mehr als stürmisch.

Aber alle beruhigten sich schnell und verstanden, dass das noch nicht das Ende des Spiels war.

Anschließend begann die Community herauszufinden, wie sie den Kampfbetrieb aktivieren konnte.
Brainstorming


Im Discord tauchten Fakes auf.
Wir wussten nicht, dass auf dem Tischbein während des Streams etwas geschrieben war.
Die Community kam zu Schritt 4. Herausfinden, wie Tokens generiert werden: Finde das Gist und generiere das Token, das den Laser im Kampfbetrieb aktiviert.
Der Kampfmodus von Megatron hat eine Laserleistung von 100 % bei 3 W. Das reicht aus, um für 2 Minuten ein Seil durchzuschneiden, das ein Gewicht hält, ein Aquarium zu zerschlagen und den Server mit Wasser zu fluten.
Wir haben ein paar Hinweise auf : spezifisch den Token-Generator-Code, auf dessen Grundlage verstanden werden kann, dass Test- und Produktions-Token auf Basis eines einziges Zählwerts generiert werden. Im Fall des Produktionstokens wird neben dem Zählwert auch ein Salt verwendet, das fast vollständig in der Historie dieser Gist-Änderung verblieben ist, mit Ausnahme der letzten beiden Zeichen.

Wie schnell alle erraten haben, war dies die 42
In den Kommentaren des Gists gab es eine Korrespondenz zwischen Andrei Sokolov und dem Entwickler („weise Entwickler“, wie ihn die Jungs aus Discord nannten).
In der Korrespondenz schickte Andrei einen der Produktionstoken, und der Entwickler antwortete, dass dieser Token bei einem Zählwert von 42 initialisiert wurde.

Mit diesen Daten konnte man die letzten 2 Zeichen des Salzes durchgehen und tatsächlich herausfinden, dass dafür Zahlen aus Lost, in das hexadezimale System übersetzt, verwendet wurden.
Für die Spieler blieb nur noch die Aufgabe, den Zählerwert zu erfassen (indem sie den Test-Token analysierten) und einen Kampf-Token zu generieren, wobei der nächste Zählerwert und das beim vorherigen Schritt ausgewählte Salt verwendet wurden.
Der Zähler wurde bei jedem Testschuss und alle 25 Sekunden einfach inkrementiert. Darüber hatten wir nirgends geschrieben; es sollte eine kleine spielerische Überraschung sein. Die Jungs haben das sehr schnell herausgefunden und den Megatron in den Kampfbetrieb versetzt.
Schritt 5. Mit dem Laser das Seil durchtrennen

So lief es
Hier wird es schon einfach. Das Absenden des Kampf-Tokens versetzte den Laser in den Kampfbetrieb, und der Raum wechselte in den 'Katastrophenmodus', wie wir es im allgemeinen Szenario nannten:
- Das gesamte Licht im Raum wurde ausgeschaltet
- Die Buttons der IoT-Geräte auf der Website wurden nicht mehr verfügbar
- Das Blaulicht und der Sirenenton wurden aktiviert
- Die rote Kugel wurde beleuchtet
- Auf dem Fernsehbildschirm begann der Countdown bis zur Aktivierung des Lasers im Kampfbetrieb
Wir haben eineinhalb Stunden heruntergezählt, damit alle, die gespielt haben, rechtzeitig einschalten und das Finale sehen konnten. Und das war nicht umsonst: Während ich mit klopfendem Herzen auf das Geräusch des Schlags und des zerbrechenden Glases aus dem Nebenraum wartete, begannen alle Mitglieder des Quest-Teams, ohne Absprache, zur Basis zu fahren, um das Finale aus erster Hand zu sehen. Sie stürmten einfach in den Raum und fingen an, sich zu umarmen.
Unterdessen im Discord


Nachdem der Countdown abgelaufen war, schaltete sich der Laser in den Kampfmodus und durchtrennte in zwei Minuten das Seil – die Hantel flog direkt in das Aquarium. Vor dem Aufprall schrie ein verrücktes Capybara auf dem Bildschirm in Panik und hob seine kleinen Pfoten.
Da das gesamte Team dort versammelt war, nahmen wir eine kleine Ansprache an alle auf, die zwei Tage lang im Discord um das Finale gekämpft hatten, und gingen, um den Sekt zu öffnen:

Wie haben wir die Zeit für den Start der Werbevideos und den Flug der Hantel berechnet?
Nach ein paar Dutzend Tests mit dem Durchtrennen des Seils mit dem Laser haben wir festgestellt, dass dies eine sehr unsichere Konstruktion ist – das halb durchtrennte Seil wird dünner, spannt unter dem Gewicht der Hantel und verändert seine Position, sodass der Laser es nicht mehr vollständig durchtrennen konnte.
Deshalb haben wir einen anderen Weg eingeschlagen: Wir haben das Überhitzen dupliziert, indem wir ein Nylonschnur mit nichromischem Draht umwickelt haben. Durch den Draht führten wir Strom, wodurch er glühend heiß wurde und die Schnur in etwa 2 Sekunden verbrannte – das gab uns genaue Hinweise, wann wir das schreiende Capybara einschalten, den Starttimer stoppen und den Werbespot abspielen sollten:

Was hat nicht funktioniert?
Am Ende sollte aus dem Systemblock dichter Rauch aufsteigen, wie bei einem Brand – wir hatten Rauchbomben vorbereitet, sie auf die gleiche Weise entzündet, aber sie funktionierten aus irgendeinem Grund nicht (wahrscheinlich wegen des Wassers).
Wer ist der Gewinner?
Der Gewinner ist Arkadi Alexeev aus St. Petersburg – er war der erste, der ein Test-Token generierte und die restlichen 134.000 Rubel, die sich im Schredder befanden, gewann.
Ein kurzes Interview mit Arkadi.
Erzähl etwas über dich, was machst du beruflich?
Ich habe eine Ausbildung als Sicherheitsfachmann und habe BITS an der ITMO abgeschlossen. Ich arbeite als Full-Stack-Webentwickler im Outsourcing. In der Schule war ich Olympiadeteilnehmer, unter anderem in Programmierung und Mathematik.
Wie hast du von dem Spiel erfahren?
Ich habe einfach bei Habr vorbeigeschaut, um zu lesen, und gesehen, dass es einen Artikel gab, der mein Interesse weckte.
Wie viele Stunden hast du gespielt, als du angefangen hast?
Ich bin am Abend des Tages beigetreten, an dem der Artikel veröffentlicht wurde (also einen Tag vor Ende). Ich habe den Abend und einen großen Teil des nächsten Tages verbracht.
Was hat dir gefallen, was nicht?
Insgesamt hat mir alles gefallen (schließlich habe ich ja gewonnen)), aber der Moment mit den Anrufen hat mich etwas gestört. Es war irgendwie unangenehm, jede Version anzurufen und zu überprüfen — ich wusste, dass da noch zahlreiche andere anrufen, die Hälfte scherzt und versucht, in die soziale Ingenieurkunst zu gelangen.
Wie hast du herausgefunden, wie man den Tokenschlüssel für den Megatron findet?
Als ich eingegangen bin, hatten sie bereits den Server gespammt, die Lichter gedrückt, das Passwort für das Admin-Panel des Lasers gefunden sowie verschiedene Subdomains und Seiten.
Es war auch einfach, ein Profil auf GitHub und einen Gist mit Kommentaren zu finden. Daraus wurde der Prozess der Token-Generierung und des Secrets für denselben klar. In solchen Quests muss man meiner Meinung nach nicht zu viel erfinden, da man sich in einer Vielzahl von Handlungsmöglichkeiten verlieren kann; man sollte dem folgen, was der Quest-Ersteller anleitet.
Unter Berücksichtigung der anderen Subdomains und der Testseite auf Tilda wurde klar, dass ich nach dem Einschalten des Lasers einen Token auswählen musste. Entsprechend habe ich noch am selben Abend eine erste Anfrage zum Einschalten des Lasers skizziert (basierend auf 4 verfügbaren Formularen: 1 auf der Live-Seite und 3 auf der Test-/alten Seite) und versucht, mit funktionierenden Tokens ab 42 zu bruteforcen (so einfach mal — vielleicht ist alles bereits aktiviert, und die Seite zur Tokenübermittlung wird nur nach der Steuer-ID und Namen geöffnet).
Ich bin mir nicht sicher, ob die Anfrage korrekt war, da ich keine Zeit hatte, um zu prüfen (denn ich hätte nur das Einschalten des Lasers überprüfen können), aber ich hatte mich im Voraus auf das Token-Bruteforcing vorbereitet.
Außerdem gab es eine offensichtliche Logik mit Websockets und der Geräteverwaltung in der app.js-Datei. Dort gab es einen klaren Hinweis auf ein a9-Gerät, bei dessen Versand von power: true der Socket abstürzte. Ich habe versucht, verschiedene Befehle zu senden — vielleicht gab es ein zusätzliches Gerät zur Entschlüsselung der Steuer-ID, aber ohne Erfolg.
Ich habe dann noch die restlichen IDs neben diesen zehn durchforstet, aber überall war ein unbekanntes Gerät. Ich habe versucht, ein paar Dinge zu googeln, bin auf chsokolow@gmail.com gegangen, habe auf der Preisliste-Seite Formulare ausgefüllt und mit lasermasters herumexperimentiert, aber alles ohne Erfolg. Am nächsten Tag saß ich im Chat, googelte wieder und plötzlich tauchte das Stego-Thema auf. Ich habe mich mit jemandem über steganografische Lösungen für Bilder und GIFs beraten (obwohl ich im Hinterkopf wusste, dass dort 99 % nichts zu finden sein würden, da es zu eindeutig wäre und im Widerspruch zur Hauptlinie des Quests steht).
Aber letztendlich habe ich auch ein paar Stunden damit verbracht, durch all die Bilder und GIFs zu stöbern. Ich habe auch ein paar Mal mit verschiedenen Varianten der Steuer-ID angerufen, aber ohne Erfolg. Dann habe ich beschlossen, es vorerst beiseite zu legen. Aber dann wurde ein Hinweis gepostet – und es wurde klar, dass in naher Zukunft die Steuer-ID gefunden wird, was schließlich auch geschah. Dann habe ich entweder ich oder jemand anders (das ist nicht klar) ein power: true an das A9-Gerät gesendet, und der Laser begann zu funktionieren, obwohl vielleicht keine Verbindung bestand und er einfach nach der Steuer-ID aktiv wurde. Jedenfalls bin ich ins Admin-Panel des Lasers gegangen und war sehr überrascht, denn der Server hat selbst das Token geschickt (während ich mich bereits darauf vorbereitete, es zu cracken). Es wurde klar, dass das Token ein Testtoken war, da die Übertragung + gesunder Menschenverstand + ich habe es überprüft.
Im Code gab es eine Logik zum Senden des Arbeits-Tokens an eine Benachrichtigung, aber anscheinend war entweder der Code falsch oder es war für andere Teile des Systems erforderlich. Ich habe ein Skript entworfen, um den aktuellen Arbeits-Token aus dem aktuellen Test abzurufen und habe ständig F5 gedrückt, um sie zu senden – dabei gab es Probleme, da alle ständig den Sendeknopf gedrückt haben, wodurch der Token geändert wurde. Dann ist die Seite noch abgestürzt, der Zähler wurde zurückgesetzt, aber das ist jetzt nicht wichtig – nach einer Weile habe ich den Arbeits-Token gesendet. Der Zähler sollte theoretisch 58 gewesen sein und der Token war 449a776938f7ce4cf19f8603045dca0f zum Zeitpunkt der Aktivierung, wenn ich mich nicht irre. Das ist alles.
Dann habe ich mich noch ein wenig über Kommentare geärgert wie "das ist alles trivial, ja, ich hatte einfach Glück". Nun, wenn man die Seite besucht, eine Minute nachdenkt, ein Skript in ein paar Minuten schreibt und es testet – dann ja, trivial. Aber ich habe das in 10-20 Sekunden erledigt und konnte dann einfach ein paar Minuten lang den Token nicht senden.
Natürlich hätte man versuchen können, eine Logik zum automatischen Abgreifen und Versenden zu schreiben, aber das hätte länger gedauert und vor allem ein großes Risiko bedeutet. Was mir wirklich gelungen ist, das ist die letzte Phase – ein bisschen Algorithmusgeschick in Bezug auf Geschwindigkeit und Reaktionszeit, das liegt mir. Wenn es eine Aufgabe direkt aus einem Penetrationstest gewesen wäre, wäre ich wahrscheinlich nicht der Erste gewesen.
Aber das ist noch nicht das Ende.
Ich kann es kaum erwarten, Ihnen von dem großartigen Team zu erzählen, das dieses Abenteuer gestaltet hat, und von all den ingenieurtechnischen Lösungen, die es gefunden hat. Aber dieser Post ist schon viel zu lang geworden – deshalb wird es darüber separate Artikel geben, also bleiben Sie dran und abonnieren Sie unseren Blog auf Habr.
Quelle: habr.com
