Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kilka dni temu zakończyliśmy jedno z najbardziej emocjonalnych wydarzeń, które mieliśmy szczęście organizować w ramach naszego bloga — hakerską grę online z niszczeniem serwera.

Wyniki przerosły nasze oczekiwania: uczestnicy nie tylko wzięli udział, ale szybko zorganizowali się w zgrane community liczące 620 osób na Discordzie, które dosłownie zdobyło quest w ciągu dwóch dni bez przerwy na sen.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
I oto jak to się skończyło:

Odtwarzaj wideo

Jak to się wszystko zaczęło i o co w tym w ogóle chodzi?

Gra rozpoczęła się 12 sierpnia, kiedy opublikowaliśmy na blogu post wideo, w którym haker w przebraniu czaszki proponuje grę, zniszczenie serwera, spowodowanie zwarcia w pokoju (lub mini-pożaru) i zabranie pieniędzy pozostałych w niszczarce.

To był online quest: uruchomiliśmy transmisję na YouTube z pokoju, który wypełniliśmy urządzeniami IoT, podłogowym serwerem (który rzeczywiście trzeba było zniszczyć), a nad serwerem zawiesiliśmy akwarium i obciążyliśmy je ciężarem. Aby gra była bardziej ekscytująca, postanowiliśmy stworzyć pulę nagród w wysokości 200 000 rubli, którą umieściliśmy w niszczarce i ustawiliśmy na włączenie co 60 minut. Każdego godzina niszczarka pożerała 1000 rubli — im wcześniej gracze go zatrzymali, tym więcej pieniędzy mogli wygrać.

Odtwarzaj wideo

Budowanie tego questu było samo w sobie wyzwaniem — musieliśmy żywić się jedzeniem na wynos i spać po kilka godzin dziennie w tym samym pokoju. Ale najbardziej zaskakujące było obserwować lot myśli graczy i ich emocjonalny zaangażowanie w procesie.

Szczerze mówiąc, pomysłowość graczy w rozwiązywaniu zadań przerosła nasze skromne zamysły wielokrotnie: każdą wolną chwilę czytaliśmy czat na Discordzie i w niektórych przypadkach dosłownie ryczeliśmy ze śmiechu, dowiadując się, co robią gracze i jak żartują w trakcie.

Nad projektem nie ustannie pracowało 7 osób: backendowiec, specjalista od hardware, prawdziwy producent filmowy, projektant CG i dwóch pomysłodawców-scenarzystów.

W następnych postach opowiemy, jak dokładnie quest został zrealizowany z technicznego punktu widzenia, a na razie wyjaśnię jego rozwiązanie: jak dokładnie należało hakować ten pokój na transmisji. Przy okazji przypomnimy chronologię zdarzeń, a także wszystkie szalone teorie iluminackie z czatu na Discordzie i wszystkie inne.

Co mieli gracze na początku gry

Wszystkie przedmioty w pokoju podzielono na trzy kategorie:

  • Proste w obsłudze, niegrające urządzenia IoT
  • Urządzenia do gier do realizacji questów
  • Atmosfera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Umieściliśmy 8 bardzo prostych w obsłudze elementów: dwie lampy, jedną girlandę, pięć liter SOKÓŁ, z których każda mogła zmieniać kolor. Wszystko to można było włączać/wyłączać bezpośrednio z strony i od razu widzieć efekt na transmisji — specjalnie udostępniliśmy je wszystkim graczom, niezależnie od poziomu umiejętności technicznych.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Wszystko, co można było po prostu włączyć z strony

Z ważnych elementów gry, które były potrzebne do realizacji questów, a do których dostęp nie był tak łatwy:

  1. Serwer z otwartą pokrywą i akwarium nad nim
  2. Hantel zawieszony tak, aby rozbić akwarium
  3. Megatron 3000 — potężna laserowa wskaźnik, skierowana na linę, która trzymała hantel
  4. Potężny wentylator, który uruchamiał się pod obciążeniem serwera
  5. Flipchart, na którym zapisano login i hasło do Megatrona
  6. Telefon, na który można było zadzwonić i zobaczyć swój połączenie na żywo
  7. Niszczyca, która pożerała 1000-rublowych banknotów na godzinę

Jak dokładnie rozwiązywano quest

Powiem od razu: skrzynka otwierała się dość prosto.

Celem gry było zatrzymanie niszczycy, powodując w pokoju krótki obwód. W tym celu należało rozbić akwarium, rzucając w nie hantel, i zalać wodą serwer. Hantel był trzymany na sznurku, na który był nastawiony Megatron. Przejęcie kontroli nad Megatronem umożliwiało przecięcie liny. To było realizowane w 5 prostych krokach:

Krok 1. Obciążenie serwera, który stał w pokoju

Na przykład, wysyłając pakiety komendą.

ab -r -n 10000 -c 100 -s 280 -l https://ws.ooosokol.ru/captcha

Podpowiedzią była bardzo obciążająca CAPTCHA na strona Cennik.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Ta sama CAPTCHA, którą należało zaatakować

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Podczas obciążenia serwera jego temperatura wzrastała, co można było śledzić na monitoringu, otwartym tuż przed kamerą. Następnie włączał się wentylator, który odsłaniał lekką zasłonę na flipcharcie. Wtedy odkrywał się napisany na tablicy login i hasło dostępu do strony Megatrona.

A samą stronę zarządzania Megatronem można było znaleźć, sprawdzając wszystkie certyfikaty wydane na domenę ooosokol.ru.

Na poddomenie megatron.ooosokol.ru znajdowała się strona zarządzania Megatronem. Ale nie otworzyła się, dopóki nie dostarczono zasilania wstępnego do Megatrona.

Wszystkie te etapy gracze przeszli niemal od razu w komentarzach transmisji na YouTube. Następnie zadania stały się trudniejsze, a gracze stworzyli serwer Discord RUVDS Hack Room i kontynuowali dyskusję tam.

Krok 2. Dostarczyć zasilanie wstępne do Megatrona

Wszystkie inteligentne urządzenia, którymi zarządzano z strony (te same lampy, które gracze bez przerwy włączali lub wyłączali) miały swoje identyfikatory.

Aby dostarczyć zasilanie wstępne do Megatrona i jednocześnie go podświetlić, należało znaleźć i włączyć ukryte urządzenie na stronie zarządzania biurem.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

W tym celu trzeba było spojrzeć na identyfikatory urządzeń i zauważyć, że jest ich 4, a na stronie dostępne są tylko 3.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Strona Megatrona stawała się dostępna po włączeniu 4. urządzenia i sam laser był podświetlany. Ale w tym czasie strzelanie laserem było niemożliwe, a na jego stronie wisiał komunikat, że laser jest obecnie niedostępny, a wskazówka: w biurze wyłączono bezpieczniki, należy zadzwonić do zarządcy i poprosić o dostarczenie zasilania.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Wskazówka dotycząca zarządcy

3. Zadzwonić do zarządcy i poprosić o włączenie zasilania Megatrona

Według LOR Megatron nie mógł wystrzelić, ponieważ w biurze wyłączono bezpieczniki. Przywrócić zasilanie mogła tylko zarządzająca firma, do której należało zadzwonić i przejść identyfikację jako właściciel firmy.

Znalezienie numeru zarządzającej firmy było łatwe — wstawiliśmy go od razu do stopki.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Jednak przejście identyfikacji było znacznie trudniejsze.

Podczas dzwonienia na numer +74991130688, odbierała dziewczyna-operator, która znudzeniem w głosie prosiła o podanie NIP firmy i pełnego imienia i nazwiska właściciela. Bez tego odmawiała włączenia zasilania, tłumacząc to tym, że jest zwykłą dyspozytorką na zlecenie, mają 2000 klientów i biur, a bez tych informacji nie da się znaleźć właściwego.

Dla graczy to okazał się najtrudniejszy etap. Odpowiednie NIP i imię oraz nazwisko właściciela szukali prawie przez dwa dni, a ja (w osobie operatora dyspozytorni) w tym czasie przyjęłam ponad 400 telefonów. Telefon dzwonił co 2-3 minuty.

Chłopaki szukali jak mogli. Szło wszystko: przeszukiwali źródła strony, googlowali właściciela strony Sokołowa, sprawdzali w sieciach społecznościowych.

Szukali NIP różnych firm
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Prawie pełny schemat poszukiwań

W pewnym momencie zadzwonili nawet z podmienionego numeru — jakoby dzwonili z biura firmy Sokol, podanej w stopce.

Wtedy dowiedzieliśmy się, jak wiele firm nosi nazwę Sokol. Praktycznie każda z tych firm była dzwoniona przez graczy, ale to w ogóle nie mogło się równać z tym, co przeżyła strona lasermasters.ru, od których naprawdę kupiliśmy ten słynny Megatron około miesiąca temu.

Na początku discord zaatakował wsparcie Lasermasters.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Potem udało im się znaleźć tam czyjeś konto! W tym czasie wsparcie Lasermasters przestało już oszczędzać na wyrażeniach.

Uważaj, trzymaj dzieci z daleka od ekranu
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Ostatecznie zdecydowali, że po prostu zdołają DDoSować Lasermasters i ich strona padła. Sokolowi również udało się przewrócić stronę, chociaż szybko ją przywróciliśmy.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

W trakcie śledztwa chłopaki z discorda znaleźli nawet aktora, którego zdjęcie kupiliśmy ze stocków, aby zagrał rolę głównego antagonistę, właściciela LLC Andrieja Sokolewa. Okazało się, że nazywa się Jurij i nie ma pojęcia, w jakie zamieszanie się wplątał.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Andriej Sokołow, postać z gry

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Jurij, model

Gdyby wiedział, jak zmusił 600 osób do nienapawania się przez dwa dni...)

Później już zaczęli kopać konkretnie pod mnie, jako organizatorka questów (co mogłoby zakończyć się sukcesem, gdyby chłopaki zdołali złamać moje służbowe kanały).

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Nawet trochę się zaniepokoiłam, gdy wymienili moje drugie imię i nawet NIP. Ale odetchnęłam, kiedy w procesie zepsutego telefonu nagle pojawił się mój starszy brat, który niespodziewanie okazał się dyrektorem technicznym Habra.

Mój drogi, ukochany brat, który również miał z tym do czynienia
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Tymczasem spekulacje stawały się coraz bardziej niewiarygodne
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

I doszło do teorii iluminackich.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Najbardziej soczyste teorie spiskowe dotyczyły Spongy Boba, Harry'ego Pottera i migającej chińskiej diodowej girlandy, którą umieściliśmy wewnątrz jednostki systemowej.

Skąd Spongy Bob i Harry Potter, zapytacie? Wrzuciliśmy ich adresy na stronę kontaktową Sokoła i to wywołało mnóstwo spekulacji w społeczności discorda. Chociaż po prostu chcieliśmy oddać hołd naszym ulubionym dziełom z dzieciństwa.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
To odwołanie na stronie "Kontakt"

I w rezultacie

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Okazało się, że w serialu faktycznie są dokumenty Gubki Boba. Nazywały je jak NIP

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Jedna z najtrudniejszych teorii dotyczyła tego, że w miganiu chińskiej girlandy ukryta jest wiadomość w alfabecie Morse’a.

Mignięcia były nagrywane i próbowano je rozszyfrować.
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Z prostszych teorii — chłopaki próbowali zrozumieć, czy w mapach nie ukryto wskazówki.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Po drodze porównywano nas z Cykadą 3301. — niesłusznie wysoka ocena, ale i tak miła.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Gracze w pełni korzystali z inżynierii społecznej. Dzwonili do mnie pod pretekstem FSB, strażaków, samego Sokolewa, jego byłej żony i ochroniarza, który rzekomo siedział u nas na dole. Mówili, że wybuchł pożar, ktoś utknął w windzie, a najbardziej poruszająca historia dotyczyła psa dzwoniącego, który rzekomo był uwięziony w biurze objętym ogniem.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Próby korupcji także miały miejsce.

Powoli w czacie zaczęły pojawiać się własne memy.

Oto kilka.
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

A fabryki tymczasem stały bezczynnie.
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Wskazówka.

Pieniędzy w niszczarce było coraz mniej. Aby zwycięzca dostał cokolwiek, postanowiliśmy zrobić wskazówkę. Przy okazji, zgodnie z zasadami projektowania gier, tuż przed finałem zwiększyć napięcie.

Osobno. postem W naszym blogu opublikowaliśmy filmik. Na początku wstawiono kawałek z Fight Club — jako odniesienie do Tylera Durdena, który myślał o wstawieniu 25. klatki do filmów, gdy pracował w kinach.

Postanowiliśmy zastosować tę samą mechanikę i wstawiliśmy 25. klatkę jako wskazówkę, jak wygooglować poprawny NIP i pełne imię i nazwisko właściciela.

Odtwarzaj wideo

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Po tym chłopaki szybko się zorientowali.

Krok 4. Postrzelić laserem w trybie niebojowym.

Po podłączeniu zasilania przez zarząd firmy i po włączeniu bezpieczników, Megatron się uruchamiał i mógł strzelać w trybie testowym. Do formularza wprowadzono już token do testowego strzału.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Co 25 sekund generowany był nowy token, można go było użyć, aby włączyć laser na 10 sekund przy mocy 10/255.

Następnie laser chłodził się przez 1 minutę i w tej minucie był niedostępny, nie przyjmował nowych żądań na strzał.

Takiej mocy zupełnie nie wystarczało, aby przeciąć linę, ale każdy gracz mógł pociągnąć z Megatrona i zobaczyć promień lasera w akcji.

Reakcja społeczności była więcej niż burzliwa.
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Ale szybko wszyscy się uspokoili i zrozumieli, że to jeszcze nie koniec gry.
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Następnie społeczność zaczęła rozgryzać, jak włączyć tryb bojowy.

Burza mózgów.
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Na Discordzie pojawiły się fałszywki.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Nie wiedzieliśmy, że na nodze stołu w transmisji coś jest napisane.

Społeczność osiągnęła krok 4. Zrozumieć, jak generowane są tokeny: znaleźć gist i wygenerować token, który włącza laser w trybie bojowym.

Tryb bojowy Megatrona to 100% mocy lasera przy 3 W. To zupełnie wystarczające na 2 minuty, aby przepołowić linę, która trzymała ciężarek, zbić akwarium i zalać serwer wodą.

Zostawiliśmy kilka wskazówek na GitHubie projektu: a konkretnie kod generowania tokenu, z którego można było zrozumieć, że testowe i bojowe tokeny są generowane na podstawie jednego wskaźnika licznika. W przypadku tokenu bojowego oprócz wartości licznika użyta jest również sól, którą prawie całkowicie pozostawiono w historii zmian tego gista, z wyjątkiem dwóch ostatnich symboli.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera
Jak wszyscy szybko się domyślili, to było 42.

W komentarzach gista była wymiana wiadomości między Andriejem Sokołowem a deweloperem („mądrym deweloperem”, jak go nazwali chłopaki z Discorda).

W tej rozmowie Andriej wysłał jeden z bojowych tokenów, a deweloper odpowiedział, że ten token został zainicjowany przy wartości licznika 42.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Znając te dane, można było przetestować 2 ostatnie symbole soli i faktycznie ustalić, że użyto do niej cyfr z Lost, przekonwertowanych na system szesnastkowy.

Potem graczom pozostało uchwycić wartość licznika (analizując testowy token) i wygenerować bojowy token, używając następującej wartości licznika i dobranej w poprzednim kroku soli.

Licznik po prostu inkrementował się przy każdym testowym strzale oraz co 25 sekund. O tym nigdzie nie napisaliśmy, miało to być małą grą niespodzianką. Chłopaki szybko się z tym uporali i uruchomili megatrona w trybie bojowym.

Krok 5. Przeciąć linę laserem.

Odtwarzaj wideo

Jak to było.

Tutaj wszystko jest proste. Wysłanie bojowego tokena włączało laser w bojowym trybie, a pokój zmieniał się i przechodził w «tryb katastrofy», jak to nazwaliśmy w ogólnym scenariuszu:

  • Całe światło w pokoju gasło.
  • Przyciski urządzeń IoT na stronie stawały się niedostępne.
  • Włączała się syrena i dźwięk alarmu.
  • Czerwony ciężarek był podświetlany.
  • Na ekranie telewizora zaczynało się odliczanie do uruchomienia lasera w trybie bojowym.

Daliśmy półtorej godziny na odliczanie, aby wszyscy, którzy grali, zdążyli włączyć transmisję i zobaczyć finał. I nie bez powodu: podczas gdy z zapartym tchem czekałam na dźwięk uderzenia i rozbitego szkła z sąsiedniego pokoju, cały zespół, który przygotowywał quest, nie umawiając się, zaczęli wracać na bazę, aby zobaczyć finał na własne oczy. Po prostu wbiegali do pokoju i zaczynali się przytulać.

W tym czasie na Discordzie
Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Po zakończeniu odliczania laser włączył się w trybie bojowym i w ciągu dwóch minut przepalił linę — ciężarek poleciał prosto do akwarium. Przed uderzeniem na ekranie zawyła szalona kapibara, w panice podnosząc małe łapki.

Skoro cały zespół się tam zebrał, nagraliśmy krótkie przesłanie do wszystkich, którzy przez dwa dni walczyli o finał na Discordzie i poszliśmy otworzyć szampana:

Odtwarzaj wideo

Jak obliczyliśmy czas uruchomienia reklam wideo i lot ciężarka?

Po kilku testach przepalania liny laserem zrozumieliśmy, że to bardzo zawodne rozwiązanie — półprzepalona lina stawała się cieńsza, pod ciężarem ciężarka naciągała się, zmieniała położenie i laser nie mógł już jej przeciąć do końca.

Dlatego poszliśmy inną drogą: podwójnie przepaliliśmy, owijając linę nitką nichromową. Przez nitkę przepuszczaliśmy prąd, nagrzewała się do czerwoności i przepalała linę w około 2 sekundy — dawało nam to precyzyjne zrozumienie, kiedy włączyć krzyczącą kapibarę, zatrzymać zegar odliczania i uruchomić reklamę:

Odtwarzaj wideo

Co nam się nie udało?

W finale z jednostki centralnej miał wydobywać się gęsty dym, jak podczas pożaru — przygotowaliśmy racje dymne, zapalając je w ten sam sposób, ale z jakiegoś powodu nie zadziałały (prawdopodobnie z powodu wody).

Kto jest zwycięzcą?

Zwycięzcą został Arkadij Aleksejew z Petersburga — to on jako pierwszy wygenerował testowy token i wygrał pozostałe pieniądze w szredzie w wysokości 134 000 rubli.

Krótkie wywiad z Arkadijem.

Opowiedz coś o sobie, czym się zajmujesz w pracy?

Z wykształcenia jestem specjalistą ds. bezpieczeństwa, ukończyłem BłIT w ITMO. Pracuję jako full-stack web developer w outsourcingu. W szkole byłem olimpijczykiem, w tym w programowaniu i matematyce.

Jak dowiedziałeś się o grze?

Wszedłem na Habr, żeby po prostu poczytać, zobaczyłem artykuł, zainteresowałem się.

Ile godzin grałeś, kiedy się dołączyłeś?

Dołączyłem w wieczór dnia, w którym opublikowano artykuł (tj. na dobę przed końcem). Spędziłem wieczór i znaczną część następnego dnia.

Co się podobało, a co nie?

Ogólnie podobało mi się wszystko (w końcu wygrałem)), ale trochę denerwowały mnie telefony. W sensie, dzwonić i sprawdzać każdą wersję jakoś nie było przyjemne, przynajmniej było to niezręczne — zdawałem sobie sprawę, że dzwoni jeszcze kilka osób, połowa żartuje i próbuje w socjotechnikę.

Jak zrozumiałeś, jak znaleźć bojowy token do megatronu?

Kiedy wszedłem, serwer już został spamowany, poklikano w lampki, znaleziono hasło do admina lasera, różne subdomeny i strony.

Łatwo było też znaleźć profil na GitHubie i gist z komentarzami. Stamtąd proces generowania tokena i sekretu był oczywisty. W takich questach nie trzeba za dużo wymyślać, imo, ponieważ można utknąć w masie możliwych rozwoju wydarzeń; dlatego warto podążać tam, gdzie prowadzi cię twórca zadania.

Biorąc pod uwagę inne subdomeny i testową stronę na Tilda, było jasne, że po podłączeniu zasilania do lasera, trzeba będzie dobrać token. Dlatego tego samego wieczoru naszkicowałem przybliżone zapytanie dotyczące włączenia lasera (na podstawie 4 dostępnych formularzy: 1 na stronie roboczej i 3 na testowej/starej) i spróbowałem złamać działające tokeny zaczynając od 42 (no cóż, na wszelki wypadek — może już wszystko jest włączone, a stronę z wysyłaniem tokenu po prostu otworzą po NIP i imieniu i nazwisku).

Nie jestem pewien, czy zapytanie było poprawne, ponieważ nie miałem czasu, aby to sprawdzić (bo można było sprawdzić tylko włączenie lasera), ale przygotowywałem się z góry do łamania tokena.

Miała też jasną logikę z web socketami i zarządzaniem urządzeniami w pliku app.js. Była tam wyraźna wskazówka dotycząca urządzenia a9, przy wysyłaniu power: true, na które socket się kruszył. Próbowałem na to wysyłać różne rzeczy — kto wie, może było tam dodatkowe urządzenie do odgadnięcia NIP, ale bez sukcesów.

Potem przejrzałem inne identyfikatory obok tych dziesięciu, ale wszędzie było unknown device. Jeszcze próbowałem gugla, wszedłem na chsokolow@gmail.com, wysłałem różne rzeczy w formularzu na stronie cennika, pogrzebałem z lasermasters, ale wszystko bez sukcesów. Następnego dnia siedziałem na czacie, szukałem wszelkich informacji, a potem pojawił się temat stego i poradziłem się kogoś ze stegosolve w sprawie obrazków i gifów (ale rozumiałem, że 99% tam nic nie ma, bo by to było zbyt + byłyby sprzeczności z główną linią questu).

Ale w końcu też spędziłem kilka godzin przeszukując wszystkie obrazki i gify. Kilka razy dzwoniłem z różnymi wariantami NIP-u, ale bez skutku. Potem postanowiłem już odpuścić, ale tam wrzucili podpowiedź — i stało się jasne, że w najbliższym czasie NIP znajdą, co się zresztą zdarzyło. Potem to czy ja, czy ktoś inny (nie było to oczywiste) wysłał power: true na urządzeniu A9 i laser zaczął działać, choć może tu nie było żadnego związku i uruchomił się po NIP-ie. W każdym razie wewnętrznie w administracji lasera byłem niemało zaskoczony, ponieważ serwer sam wysyłał token (a ja to już przygotowywałem się do łamania). Oczekiwało się, że token jest testowy, ponieważ transmisja + zdrowy rozsądek + sprawdziłem to.

W kodzie była logika wysyłania roboczego tokena gdzieś powiadomieniem, ale najwidoczniej był to albo błędny kod, albo to było potrzebne do innych elementów systemu. Napisano skrypt do uzyskania aktualnego roboczego tokena z aktualnego testowego i zacząłem siedzieć na F5, próbując je wysłać — były z tym problemy, ponieważ wszyscy ciągle naciskali przycisk wysyłania, zmieniając tym samym token. Potem jeszcze strona padła, licznik się zresetował, ale to już nieistotne — po pewnym czasie wysłałem roboczy token. W teorii licznik wynosił 58 i token to był 449a776938f7ce4cf19f8603045dca0f w momencie aktywacji, jeśli się nie mylę. Właściwie to wszystko.

Potem jeszcze kilka osób mnie wkurzyło komentarzami a la „tak, to wszystko trywialne, tak, miał szczęście po prostu”. Cóż, jeśli wejdzie się na stronę, pomyśli minutkę, napisze skrypt w kilka minut, sprawdzi go — to tak, trywialne. Ale mi zajęło to 10-20 sekund, a potem przez kilka minut nie mogłem wysłać tokena.

Oczywiście, można było spróbować napisać logikę do automatycznego przechwytywania i wysyłania, ale to byłoby dłuższe i znacznie bardziej ryzykowne, poza tym pewnie chmura zaczęłaby się buntować. Ale z czym naprawdę miałem szczęście, to z ostatnim etapem — trochę algorytmów na szybkość + czas reakcji, to jest naprawdę moje. Gdyby tam było zadanie bezpośrednio z pentestów, prawdopodobnie nie byłbym pierwszy.

Ale to jeszcze nie koniec

Nie mogę się doczekać, żeby opowiedzieć wam o wspaniałym zespole, który stworzył tę misję, oraz o wszystkich rozwiązaniach inżynieryjnych, które znalazł. Ale ten post już jest zbyt długi — dlatego będą osobne artykuły na ten temat, więc bądźcie na bieżąco i subskrybujcie nasz blog na Habra.

Kto zatrzymał shreddera, czyli jak należało przejść misję z niszczeniem serwera

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster