Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Prije nekoliko dana završili smo jedan od najemotivnijih događaja koje smo imali sreću organizirati na našem blogu — online hakersku igru s uništavanjem servera.

Rezultati su nadmašili sva naša očekivanja: sudionici nisu samo sudjelovali, već su se brzo organizirali u koherentnu zajednicu od 620 ljudi na Discordu, koja je doslovno osvojila quest u dva dana bez pauze za spavanje.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
A evo kako je to završilo:

Pogledajte video

Kako je sve počelo i o čemu se zapravo radilo?

Igra je započela 12. kolovoza, kada smo na blogu objavili post videozapis, u kojem haker u obliku lubanje poziva na igru, uništavanje servera, izazivanje kratkog spoja (ili mini-požara) u sobi i uzimanje preostalih novčanica iz shreddera.

To je bio online quest: pokrenuli smo YouTube prijenos iz sobe koju smo napunili IoT uređajima, a ispod kreveta postavili server (koji je trebalo uništiti), dok smo iznad servera postavili akvarij i objesili uteg. Kako bi igra bila uzbudljivija, odlučili smo stvoriti nagradni fond od 200.000 rubalja, koji smo stavili u shredder i postavili da se uključuje svaka 60 minuta. Svakog sata shredder je 'pojeo' 1000 rubalja — što prije su igrači uspjeli zaustaviti, više novca su mogli osvojiti.

Pogledajte video

Izgradnja ovog quesa bila je sama po sebi avantura — morali smo se hraniti dostavom i spavati nekoliko sati dnevno izravno u toj istoj sobi. No, najzanimljivije je bilo promatrati let misli igrača i njihovu emocionalnu predanost u procesu.

Iskreno, domišljatost igrača u rješavanju zadataka nadmašila je našu skromnu zamisao mnogo puta: svake slobodne minute čitali smo chat na Discordu i u nekim slučajevima doslovno plakali od smijeha, saznajući čime se igrači bave i kako se šale tijekom procesa.

Na projektu je neumorno radilo 7 ljudi: backend programer, hardverski stručnjak, pravi filmski producent, CG dizajner i dva kreativna ko-producenta.

U sljedećim postovima pričat ćemo kako je quest tehnički realiziran, a za sada ću objasniti njegovu razrješnicu: kako se zapravo trebala hakirati ta soba tijekom prijenosa. Također ćemo se prisjetiti kronologije događaja i svih ludih iluminatskih teorija iz Discord chat-a.

Što su igrači imali na početku igre

Sve stavke u sobi bile su podijeljene u tri kategorije:

  • Jednostavna IoT uređaja koja se lako upravljaju, ne igračke
  • Igračke uređaje za prolazak potrage
  • Ambijent

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Postavili smo 8 vrlo jednostavnih elemenata: dvije lampe, jednu girlandu i pet slova SOKOL, od kojih je svako moglo mijenjati boju. Sve to moglo je biti uključeno/isključeno direktno sa web stranice, a rezultati su odmah bili vidljivi na prijenosu — posebno smo ih učinili dostupnima svim igračima, bez obzira na razinu tehničke pismenosti.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Sve se jednostavno uključivalo sa stranice

Od važnih igračkih elemenata koji su bili potrebni za prolazak potrage, a do kojih nije bilo lako doći:

  1. Poslužitelj s otvorenim krovom i akvarijem iznad njega
  2. Kettlebell, obješena tako da razbije akvarij
  3. Megatron 3000 — snažna laserska olovka usmjerena na konopac koji drži kettlebell
  4. Snažan ventilator koji se pokretao pri opterećenju poslužitelja
  5. Flipchart na kojem su bili zapisani korisničko ime i lozinka za Megatron
  6. Telefon, na koji se moglo nazvati i vidjeti svoj poziv uživo
  7. Uništavač koji je 'pojeo' 1000-rubljenu novčanicu na sat

Kako se točno rješavala potraga

Odmah ću reći: kutija se otvarala prilično jednostavno.

Cilj igre bio je zaustaviti uništavač izazivajući kratki spoj u sobi. Da bi se to postiglo, trebalo je razbiti akvarij, ispustiti kettlebell u njega i natopiti poslužitelj vodom. Kettlebell je bio na konopcu koji je Megatron ciljao. Kada se preuzela kontrola nad Megatronom, konopac se mogao presjeći. To se radilo u 5 jednostavnih koraka:

Korak 1. Opteretiti poslužitelj koji se nalazio u sobi

Na primjer, slanjem paketa s komandom.

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

Na trag je bila veoma opterećujuća captcha na stranica Cjenik.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Točno ta captcha koju je trebalo napasti

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Pri opterećenju poslužitelja povećavala se njegova temperatura i to se moglo pratiti na monitoringu, koji je bio otvoren odmah ispred kamere. Nakon toga uključivao se ventilator koji je otvarao laganu zavjesu na flipchartu. Tada se otkrivao napisani na ploči korisničko ime i lozinka za pristup stranici Megatrona.

A samu stranicu za upravljanje Megatronom moglo se pronaći provjerom svih certifikata izdanih za domena ooosokol.ru.

Na poddomeni megatron.ooosokol.ru bila je stranica za upravljanje Megatronom. No, nije se otvarala dok se Megatronu ne dovede primarna energija.

Sve te korake igrači su prošli gotovo odmah u komentarima na YouTube prijenosu. Zatim su zadaci postali zahtjevniji i igrači su stvorili Discord poslužitelj RUVDS Hack Room te nastavili raspravu tamo.

Korak 2. Dovesti primarnu energiju do Megatrona

Svi pametni uređaji kojima se upravljalo s web stranice (oni isti svjetiljke koje su igrači neprekidno uključivali i isključivali) imali su svoje identifikatore.

Kako bi se dovele primarna energija do Megatrona i istovremeno ga osvijetlilo, trebalo je pronaći i uključiti skriveni uređaj na stranici za upravljanje uredom.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Za to je trebalo pogledati identifikatore uređaja i primijetiti da je ukupno uređaja 4, a na web stranici dostupno samo 3.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Stranica Megatrona postala je dostupna kada je uključeno 4. uređaj i laser se osvijetlio. No, pritom nije bilo moguće ispaliti laser, a na njemu stranici bila je poruka da laser trenutno nije dostupan s napudom: u uredu su iskočile osigurače, treba nazvati upravnu tvrtku i zatražiti dovod energije.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Napomena o upravnoj tvrtki

3. Nazvati upravnu tvrtku i zatražiti da uključe energiju za Megatron

Megatron nije mogao ispaliti putem LORA, jer su u uredu iskočile osigurače. Uključiti energiju natrag mogla je samo upravna tvrtka, kojoj je trebalo nazvati i proći identifikaciju kao vlasnik tvrtke.

Bilo je lako pronaći broj upravne tvrtke — stavili smo ga direktno u podnožje.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

No, proći identifikaciju bilo je mnogo teže.

Pri pozivu na broj +74991130688, telefon je podizala operaterka i s dosadnim glasom tražila da se navede OIB tvrtke i puno ime i prezime vlasnika. Bez toga nije bila voljna uključiti energiju i objašnjavala je da je ona obična dispečerska na vanjskom usluzi, imaju 2000 klijenata i ureda i bez tih informacija ne može pronaći traženu osobu.

Igračima je to bio najteži korak. Točni OIB i ime i prezime vlasnika tražili su gotovo dva dana, a ja (kao operater dispečerske) primila sam više od 400 poziva tijekom tog vremena. Telefon je zvonio svake 2-3 minute.

Momci su kopali koliko su mogli. Sve je bilo u igri: pretresli su izvorne datoteke web stranice, googlali vlasnika web stranice Sokola, tražili su na društvenim mrežama.

Tražili su OIB različitih tvrtki
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Sk nearly complete search scheme

U jednom trenutku su čak nazvali s zamjenom broja — kao da su zvali iz ureda tvrtke Sokol, navedene u podnožju stranice.

Tada smo saznali koliki je ogroman broj tvrtki s imenom Sokol. Praktički svakoj od tih kompanija su se javljali igrači, no to nije bilo ni približno onome što je doživjela stranica. lasermasters.ru, od kojih smo zapravo kupili taj Megatron prije otprilike mjesec dana.

Isprva je Discord napao podršku Lasermasters.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Zatim su uspjeli pronaći nečiji račun! Dok je podrška Lasermasters već prestala štedjeti na izrazima.

Pažljivo, držite djecu podalje od ekrana
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Na kraju smo odlučili jednostavno DDoS-irati Lasermasters i njihova stranica je pala. Isto tako uspjeli smo srušiti i stranicu Sokola, iako smo je brzo podigli.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tijekom istrage, momci iz Discorda čak su pronašli glumca čiju smo fotografiju kupili s stocka kako bi odigrao ulogu glavnog antagonista, vlasnika LLC Andreja Sokolova. Ispostavilo se da se zove Jurij i da zapravo nije imao pojma u što je upao.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Andrej Sokolov, lik iz igre

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Jurij, model

Da je znao kako je natjerao 600 ljudi da ne spavaju dva dana…)

Kasnije su počeli konkretno kopati po meni, kao organizatoru kviza (što bi moglo završiti uspjehom da su momci shvatili kako hakirati moje radne kanale).

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Čak sam se malo zabrinula kada su spomenuli moje prezime i čak OIB. No, olakšalo mi je kada je tijekom igre pokvarenog telefona odjednom imao stariji brat koji se neočekivano pokazao kao tehnički direktor Habbra.

Moj dragi rođeni brat, koji je također dobio
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

U međuvremenu, pretpostavke su postajale sve nevjerojatnije i nevjerojatnije
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

I sletjelo je na teoreme o iluminatima.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Najsočnija teorija zavjere odnosila se na Spužva Boba, Harryja Pottera i treptanje kineske LED svjetiljke koju smo stavili unutar sistemske jedinice.

Odakle Spužva Bob i Harry Potter, upitat ćete? Umetnuli smo njihove adrese na stranicu kontakata Sokola i to je izazvalo mnoštvo pretpostavki u Discord zajednici. Iako smo samo htjeli odati počast svojim omiljenim djelima iz djetinjstva.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Ona referenca na stranici "Kontakt"

I kao rezultat

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Ispostavilo se da u seriji doista postoje dokumenti o Spužva Bobu. Nazivali su ih kao OIB

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Jedna od najkompleksnijih teorija bila je ta da je u treptanju kineske girlande sakrivena poruka Morseovom azbukom.

Treptanje su snimali i pokušavali dešifrirati.
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Od jednostavnijih teorija, momci su pokušavali shvatiti je li u kartama sakrivena neka naznaka.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Na putu su nas usporedili s Cikadom 3301. — nesrazmjerno visoka ocjena, ali svejedno ugodna.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Igrači su se širom pokušavali baviti socijalnim inženjeringom. Zvali su me u ime FSB-a, vatrogasaca, samog Sokolova, njegove bivše žene i zaštitara koji navodno sjedi u našoj zgradi. Govorili su da je počeo požar, da je netko zaglavio u liftu, a najpotresnija priča bila je o tome da u uredu, zahvaćenom plamenom, navodno sjedi psić onoga tko je zvao.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Pokušaji korumpiranja također su bili.

Polako su se u chatu počeli pojavljivati vlastiti memovi.

Evo par primjeraka.
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

A pogoni su u međuvremenu stagnirali.
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Savjet

Novca u shredderu bilo je sve manje. Kako bi pobjedniku pripalo barem nešto, odlučili smo napraviti naznaku. Usput, slijedeći pravila game designa, neposredno pred finale podizali smo napetost.

Odvojeno objavom na blogu objavili smo video. Na početku je bio umetnut isječak iz Borilačkog kluba — kao aluzija na Tylera Durdana, koji je razmišljao o umetnju 25. kadra u filmove dok je radio u kinima.

Odlučili smo primijeniti ovu istu mehaniku i umetnuli 25. kadrom naznaku kako pretražiti ispravan OIB i ime vlasnika.

Pogledajte video

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Nakon toga, momci su se vrlo brzo snašli.

Korak 4. Pucanje laserom u ne-borbnom modu.

Pri uključivanju napajanja od strane upravljačke tvrtke i nakon uključivanja osigurača, Megatron se uključio i mogao je pucati u testnom modu. U obrazac za unos već je bio umetnut token za testni hitac.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Svakih 25 sekundi generirao se novi token, mogao se koristiti za uključivanje lasera na 10 sekundi na snazi 10/255.

Nakon toga, laser se hladio 1 minutu i u toj minuti bio je nedostupan, nije primao nove zahtjeve za pucanje.

Te snage je bilo potpuno nedovoljno za presijecanje užadi, ali svaki igrač mogao je povući okidač na Megatronu i vidjeti laserski snop u akciji.

Reakcija zajednice bila je više nego burna.
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

No svi su se brzo smirili i shvatili da to još nije kraj igre.
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Zatim je zajednica počela istraživati kako pokrenuti borbeni režim.

Brainstorm.
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Na Discordu su se pojavile lažne vijesti.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Nismo znali da je na nožici stola na prijenosu nešto napisano.

Zajednica je došla do koraka 4. Razumijevanje kako se generiraju tokeni: pronaći gist i generirati token koji uključuje laser u borbenom režimu

Borbeni režim Megatrona je 100% snaga lasera na 3 W. To je sasvim dovoljno za 2 minute da presječe konopac koji je držao uteg, razbije akvarij i natopi server vodom.

Ostavili smo nekoliko naznaka na GitHubu projekta: konkretno kod za generiranje tokena, koji je omogućio razumijevanje da se testni i borbeni tokeni generiraju na temelju iste mjere brojila. U slučaju borbenog tokena, uz vrijednost brojila koristi se i sol, koju smo gotovo u potpunosti ostavili u povijesti promjena ovog gista, osim dva posljednja znaka.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera
Kako su svi brzo shvatili, to je bilo 42

U komentarima gista bila je prepirka Andreja Sokolova s programerom („mudri dev”, kako su ga nazvali dečki iz Discorda).

U prepirci je Andrej poslao jedan od borbenih tokena, a programer je odgovorio da je taj token inicijaliziran s vrijednošću brojila 42.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Znajući ove podatke, moglo se isprobati 2 posljednja znaka soli i zapravo otkriti da su korišteni brojevi iz Lost, prevedeni u heksadecimalni sustav.

Igračima je ostalo samo uhvatiti vrijednost brojila (analizirajući testni token) i generirati borbeni token koristeći sljedeću vrijednost brojila i sol pronađenu u prošlom koraku.

Brojilo se jednostavno inkrementiralo nakon svakog testnog pucanja i svake 25 sekundi. O tome nismo nigdje pisali, to je trebala biti mala igračka iznenađenja. Dečki su to vrlo brzo shvatili i pokrenuli megatron u borbenom režimu.

Korak 5. Presječi konopac laserom

Pogledajte video

Kako je to izgledalo

Ovdje je sve jednostavno. Slanje borbenog tokena uključilo je laser u borbeni režim, a prostorija se mijenjala i ulazila u „režim katastrofe”, kako smo to nazvali u općem scenariju:

  • Svjetlo u prostoriji se potpuno ugasilo
  • Dugmad iot uređaja na web stranici su postala nedostupna
  • Uključila se rotirajuća svjetla i zvuk sirene
  • Crveni uteg je bio osvijetljen
  • Na ekranu televizora počinjao je odbrojavanje do aktiviranja lasera u borbenom režimu

Dali smo odabir u povratnom brojanju od sat i pol, kako bi svi koji su igrali mogli uključiti prijenos i vidjeti finale. I nimalo uzalud: dok sam s nestrpljenjem čekala zvuk udarca i razbijenog stakla iz susjedne sobe, cijeli tim koji je kreirao kviz, nesvjesno, počeo se vraćati na bazu, kako bi finale vidjeli svojim očima. Samo su ulijetali u sobu i počeli se grliti.

U međuvremenu u Discordu
Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Nakon završetka povratnog brojanja, laser je uključio borbeni način i u dvije minute pretrgao konopac — težak predmet odletio je ravno u akvarij. Prije udarca na ekranu je zakikčila luda kapibara, u panici podigavši male šapice.

S obzirom na to da se cijeli tim okupio, snimili smo kratku poruku svima koji su se dva dana borili za finale u Discordu i krenuli otvoriti šampanjac:

Pogledajte video

Kako smo proračunali vrijeme pokretanja reklamnih videa i putanju teškog predmeta?

Nakon desetak testova pretrganja konopca laserom shvatili smo da je to veoma nepouzdana konstrukcija — polu-pretrgan konopac postaje tanji, pod težinom predmeta se zateže, mijenja poziciju i laser više nije mogao proći kroz njega do kraja.

Zato smo krenuli drugim putem: duplicirali smo pretrganje, omotavši konopac nikrom žicom. Kroz žicu smo puštali struju, ona se zagrijavala do crvenila i pretrgala konopac za otprilike 2 sekunde — to nam je omogućilo precizno razumijevanje kada uključiti urličuću kapibaru, zaustaviti brojač pokretanja i pokrenuti reklamni video:

Pogledajte video

Što nam nije uspjelo?

Pred finale iz sistemskog bloka trebao je krenuti gusti dim, kao pri požaru — pripremili smo dimne bombe, palili ih na sličan način, ali iz nekog razloga nisu radile (vjerojatno zbog vode).

Tko je pobjednik?

Pobjednik je Arkadij Aleksejev iz Sankt Peterburga — upravo je on prvi generirao testni token i osvojio preostali novac u shredderu u iznosu od 134 000 rubalja.

Malo intervju s Arkadijem.

Pričaj o sebi, čime se baviš na poslu?

Po obrazovanju sam stručnjak za sigurnost, završio sam BIT na ITMO-u. Radim kao full-stack web developer na outsourcingu. U školi sam bio olimpijada, uključujući programiranje i matematiku.

Kako si saznao za igru?

Ušao sam na Habr samo da pročitam, vidio članak i zainteresirao se.

Koliko si sati igrao, kada si se pridružio?

Priključio sam se večer tog dana kada je objavljen članak (tj. 24 sata prije kraja). Proveo sam večer i velik dio sljedećeg dana.

Što vam se svidjelo, a što ne?

Uglavnom mi se sve svidjelo (pa, pobijedio sam)), ali malo me nervirao trenutak s pozivima. Pa, zvati i provjeravati svaku verziju nekako nije bilo ugodno — shvaćao sam da ih još nekoliko desetaka zove, polovina se šali i pokušava sa socijalnim inženjeringom.

Kako si shvatio kako pronaći borbeni token za Megatron?

Kada sam ušao, već su spamali server, gurnuli tipke, pronašli lozinku za administraciju lasera, razne poddomene i stranice.

Također je bilo lako pronaći profil na GitHubu i gist s komentarima. Od tamo je očigledan proces generiranja tokena i tajne za njega. U takvim potragama ne treba previše izmišljati imho, jer se može potonuti u hrpu mogućih razvitaka; i prema tome, treba slijediti kuda te vuče kreator potrage.

Uz ostale poddomene i testnu stranicu na Tildy, bilo je jasno da nakon napajanja lasera, treba pronaći token. Stoga sam još te večeri sastavio okvirni zahtjev za uključivanje lasera (na temelju 4 dostupna obrasca: 1 na radnoj stranici i 3 na testnoj/stara stranica) i pokušao sam brute forceati radne tokene počevši od 42 (pa, onako, možda je sve već uključeno, a stranica za slanje tokena će se samo otvoriti nakon INN-a i FIO-a).

Nisam siguran da je zahtjev bio ispravan, budući da nisam imao vremena provjeravati (jer se moglo provjeriti samo uključivanje lasera), ali pripremao sam se unaprijed za pretraživanje tokena.

Također je postojala očigledna logika s websocketsima i upravljanjem uređajima u app.js datoteci. Bilo je velikih naznaka na a9 uređaj, kada je poslan power: true, socket je padao. Pokušao sam slati razne poruke na njega — tko zna, možda je postojala dodatna oprema za razotkrivanje INN-a, ali bez uspjeha.

Kasnije sam još pretražio ostale ID-eve pored onih deset, ali svuda je pisalo nepoznati uređaj. Također sam pokušao nešto googlati, ušao na chsokolow@gmail.com, poslao razne stvari putem obrasca na stranici s cjenikom, malo sam istraživao vezano uz lasermasters, ali sve bez uspjeha. Sljedeći dan sam sjedio u chatu, googlao razne stvari, a onda se pojavila tema o steganografiji i posavjetovao sam se s osobom iz stegsoul-a za slike i gifove (no sam je shvatio da 99% toga nema, jer bi to bilo previše + proturječje s glavnom linijom potrage).

Ali na kraju sam također par sati sjedio i analizirao sve slike i gifove. Još par puta sam zvao s raznim varijantama OIB-a, ali ništa. Kasnije sam odlučio malo odustati, ali su objavili hint — i postalo je jasno da će OIB uskoro naći, što se i dogodilo. Onda ili sam ja, ili netko drugi (to nije očigledno) poslao power: true na a9 uređaju i laser je počeo raditi, iako možda tu nema veze i počeo je raditi jednostavno nakon OIB-a. Ukratko, ušao sam u admin panel lasera i bio prilično iznenađen, jer je server sam slao token (a ja sam se već pripremao za brute). Bilo je očigledno da je token probni, jer je prijenos + zdrav razum + provjerio sam ga.

U kodu je bila logika slanja radnog tokena negdje putem obavijesti, ali, očito, ili je to bio pogrešan kod, ili je to bilo potrebno za druge dijelove sustava. Napisao sam skriptu za dobivanje trenutnog radnog tokena iz trenutnog probnog i počeo čekati na f5, pokušavajući ih poslati — s tim su bili problemi, jer su svi stalno pritiskali gumb za slanje, čime su mijenjali token. Potom je još i stranica pala, brojač se resetirao, ali to nije bitno — nakon nekog vremena poslao sam radni token. Po ideji, brojač je bio 58 i token je bio 449a776938f7ce4cf19f8603045dca0f u trenutku aktivacije, ako se ne varam. U osnovi, to je to.

Kasnije su mi još neki komentari malo zasmetali, poput "pa to je sve trivijalno, samo je sreća bila". Pa, ako uđeš na stranicu, razmisliš minutu, napišeš skriptu za par minuta, provjeriš je — onda da, trivijalno. Ali ja sam to napravio za 10-20 sekundi, i onda sam samo nekoliko minuta bio nesposoban poslati token.

Naravno, mogao sam probati napisati logiku za automatsko preuzimanje i slanje, ali to bi već trajalo duže i predstavljalo veći rizik, plus bi vjerojatno oblak počeo prigovarati. Ono s čime sam stvarno imao sreće je bio sam posljednji korak — malo algoritama za brzinu + brzina reakcije, to mi je baš blisko. Da je tamo bilo zadatak iz pentesta, vjerojatno ne bih bio prvi.

Ali to još nije kraj

Nestrpljiv sam da vam pričam o cijelom fantastičnom timu koji je gradio ovu avanturu i svim inženjerskim rješenjima koja su pronašli. No, ovaj post je već postao predugačak — zato će o tome biti odvojeni članci, pa ostanite uz nas i pretplatite se na naš blog na Habu.

Tko je zaustavio šreder ili kako se trebala prolaziti misija s uništavanjem servera

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster