Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Un paio di giorni fa abbiamo concluso uno degli eventi più emozionanti che ci è capitato di organizzare nel nostro blog: un gioco online hackeristico con distruzione del server.

I risultati hanno superato tutte le nostre aspettative: i partecipanti non solo hanno preso parte, ma si sono rapidamente organizzati in una comunità coesa di 620 persone su Discord, che ha letteralmente conquistato la quest in due giorni senza pausa per il sonno.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Ecco come è finita:

Guarda il video

Come è iniziato tutto e di cosa si tratta davvero?

Il gioco è iniziato il 12 agosto, quando abbiamo pubblicato nel blog post un video in cui un hacker travestito da teschio propone di giocare a un gioco, distruggere il server, provocare un cortocircuito nella stanza (o un mini-incendio) e recuperare il denaro rimasto nello shredder.

Era un quest online: abbiamo avviato una diretta su YouTube da una stanza piena di dispositivi IoT, con un server sottocondotta (che doveva essere distrutto), e abbiamo fissato un acquario sopra il server appendendovi un peso. Per rendere il gioco più avvincente, abbiamo deciso di istituire un montepremi di 200.000 rubli, che abbiamo caricato nello shredder e programmato per accendersi ogni 60 minuti. Ogni ora lo shredder mangiava 1000 rubli: prima i giocatori lo fermavano, maggiore era il premio.

Guarda il video

Costruire questo quest è stata di per sé una sfida: ci siamo nutriti solo di cibo da asporto e abbiamo dormito poche ore al giorno direttamente nella stessa stanza. Ma la cosa più sorprendente è stata osservare il volo dell'immaginazione dei giocatori e la loro intensa partecipazione nel processo.

A dire il vero, l'ingegnosità dei giocatori nel risolvere i problemi ha superato di gran lunga la nostra modesta idea: ogni minuto libero leggevamo la chat su Discord e in alcuni casi abbiamo letteralmente pianto dal ridere, scoprendo cosa stavano facendo i giocatori e come scherzavano nel processo.

Sette persone hanno lavorato senza sosta al progetto: un backend developer, uno specialista hardware, un vero produttore cinematografico, un designer CG e due produttori creativi.

Nei prossimi post parleremo di come è stato realizzato il gioco dal punto di vista tecnico, ma per ora vi svelerò la soluzione: come hackerare questa stanza in diretta. Riscopriremo anche la cronologia degli eventi, oltre a tutte le folli teorie da illuminati emerse nelle chat di Discord.

Cosa avevano i giocatori all'inizio del gioco

Tutti gli oggetti nella stanza erano divisi in tre categorie:

  • Dispositivi IoT semplici da gestire, non di gioco
  • Dispositivi di gioco per completare il quest
  • Atmosfera

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Abbiamo posizionato 8 elementi molto semplici da gestire: due lampade, una serie di luci, cinque lettere SOCCO, ognuna delle quali poteva cambiare colore. Tutto questo poteva essere acceso/spento direttamente dal sito e il risultato era visibile in tempo reale durante la diretta: li abbiamo resi accessibili a tutti i giocatori, indipendentemente dal loro livello di competenza tecnica.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Tutto ciò che poteva essere facilmente acceso dal sito

Tra gli elementi di gioco importanti necessari per completare il quest, a cui l'accesso non era così semplice:

  1. Un server con il coperchio aperto e un acquario sopra
  2. Un peso appeso in modo da rompere l'acquario
  3. Megatron 3000 — un potente puntatore laser diretto alla corda che tiene il peso
  4. Un potente ventilatore che si attivava sotto carico sul server
  5. Un flipchart su cui erano scritti login e password per Megatron
  6. Un telefono a cui si poteva chiamare e vedere la propria chiamata in diretta
  7. Un distruttore di documenti che mangiava banconote da 1000 rubli all'ora

Come è stato risolto il quest

Dico subito: il contenitore si apriva piuttosto facilmente.

L'obiettivo del gioco era fermare il distruttore di documenti causando un cortocircuito nella stanza. Per farlo, bisognava rompere l'acquario lanciandovi il peso e bagnare il server. Il peso era sostenuto da un cordino, che era l'obiettivo di Megatron. Prendendo il controllo di Megatron, era possibile tagliare la corda. Questo avveniva in 5 semplici passaggi:

Passo 1. Sovraccaricare il server nella stanza

Ad esempio, inviando pacchetti con il comando.

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

L'indizio era un captcha molto pesante pagina del listino prezzi in Quella famosa captcha che doveva essere attaccata.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Quella stessa captcha che dovevamo attaccare

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Sotto carico, la temperatura del server aumentava, e questo poteva essere monitorato sulla schermata aperta proprio davanti alla telecamera. Successivamente si attivava il ventilatore, che apriva una leggera tenda sul flip chart. Allora si rivelava il login e la password per accedere alla pagina di Megatron scritti sulla lavagna.

E la pagina di controllo di Megatron si poteva trovare controllando tutti i certificati emessi sul dominio ooosokol.ru.

Nel sottodominio megatron.ooosokol.ru c’era la pagina di gestione di Megatron. Ma non si apriva finché non veniva fornita l’alimentazione primaria a Megatron.

Tutti questi passaggi i giocatori li hanno completati quasi subito nei commenti della trasmissione su youtube. Poi le sfide sono diventate più complicate e i giocatori hanno creato un server Discord chiamato RUVDS Hack Room per continuare la discussione lì.

Passo 2. Fornire l'alimentazione primaria a Megatron

Tutti i dispositivi intelligenti controllati dal sito (quelli che i giocatori accendevano o spegneva senza sosta) avevano le loro identificazioni.

Per fornire l'alimentazione primaria a Megatron e al contempo illuminarlo, era necessario trovare e attivare un dispositivo nascosto sulla pagina di gestione dell'ufficio.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

A tal fine, bisognava esaminare le identificazioni dei dispositivi e notare che c’erano solo 4 dispositivi, ma sul sito erano disponibili solo 3.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

La pagina di Megatron diventava accessibile solo accendendo il 4° dispositivo e il laser si illuminava. Tuttavia, non era possibile sparare con il laser, e sulla sua pagina c'era un messaggio che indicava che il laser non era disponibile e una nota: nel ufficio si erano staccati i fusibili, era necessario chiamare la compagnia di gestione e chiedere di fornire l'alimentazione.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Nota sulla compagnia di gestione

3. Contattare la compagnia di gestione e richiedere l'accensione dell'alimentazione di Megatron

Sul LOR Megatron non poteva sparare perché si erano staccati i fusibili nell'ufficio. L'alimentazione poteva essere riattivata solo dalla compagnia di gestione, alla quale era necessario telefonare e identificarsi come proprietario della LLC.

Trovare il numero della compagnia di gestione era facile: l'abbiamo messo direttamente nel footer.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Ma passare l'identificazione era molto più difficile.

Chiamando il numero +74991130688, una ragazza operatrice ha risposto e con tono annoiato ha chiesto di fornire il codice fiscale dell'azienda e il nome completo del proprietario. Senza queste informazioni, si rifiutava di attivare l'alimentazione e spiegava che era una normale centrale di call center esternalizzata, con 2000 clienti e uffici, e senza queste informazioni non riusciva a trovare quello giusto.

Per i giocatori si è trattato della fase più difficile. Hanno cercato il codice fiscale e il nome completo del proprietario per quasi due giorni, mentre io (nei panni dell'operatore della centrale) ho ricevuto più di 400 telefonate in quel lasso di tempo. Il telefono squillava ogni 2-3 minuti.

I ragazzi scavavano come potevano. Hanno fatto di tutto: hanno analizzato il codice sorgente del sito, cercato il proprietario del sito, Sokolov, e hanno controllato i social media.

Cercavano il codice fiscale di diverse aziende.
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Schema di ricerca quasi completo.

A un certo punto, hanno persino chiamato usando un numero falsificato, come se stessero chiamando dall'ufficio della compagnia Sokol menzionata nel footer.

Allora abbiamo scoperto che ci sono un'enorme quantità di aziende che portano il nome Sokol. Praticamente ognuna di queste aziende è stata contattata dai giocatori, ma questo non può essere paragonato a ciò che il sito ha vissuto. lasermasters.ru, da cui abbiamo davvero comprato il Megatron circa un mese fa.

Inizialmente, il Discord ha attaccato il supporto di Lasermasters.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Poi sono riusciti a trovare l'account di qualcuno! Nel frattempo, il supporto di Lasermasters aveva già smesso di risparmiarsi in espressioni.

Attenzione, allontanate i bambini dallo schermo.
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Alla fine, hanno deciso di semplicemente DDoSare Lasermasters e il loro sito è crollato. Allo stesso modo, sono riusciti a far crollare anche il sito di Sokol, sebbene l'abbiamo ripristinato rapidamente.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Durante l'indagine, i ragazzi di Discord hanno persino trovato l'attore, la cui foto abbiamo comprato dai stock, per farlo interpretare il ruolo del principale antagonista, il proprietario della LLC Andrey Sokolov. Si è scoperto che si chiama Yuri e non ha affatto idea di quale casino sia coinvolto.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Andrey Sokolov, il personaggio del gioco.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Yuri, il modello.

Se solo sapesse come ha costretto 600 persone a non dormire per due giorni...)

Poi hanno iniziato a scavare specificamente su di me, come organizzatore del quest (cosa che avrebbe potuto finire con successo, se solo i ragazzi avessero capito di dover hackerare i miei canali di lavoro).

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Mi sono preoccupata un po' quando hanno menzionato il mio patronimico e persino il mio numero di identificazione fiscale. Ma mi sono sentita sollevata quando, nel processo di comunicazione, è spuntato all'improvviso un fratello maggiore che si è rivelato essere il direttore tecnico di Habr.

Mio caro fratello, che ne ha avuta anche lui parte
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Nel frattempo, le supposizioni diventavano sempre più incredibili
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

E si è giunti a teorie da Illuminati.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Le teorie del complotto più succose riguardavano Spongebob, Harry Potter e il lampeggio di una corda di LED cinese che avevamo messo all'interno dell'unità centrale.

Da dove spuntano Spongebob e Harry Potter, direte voi? Abbiamo inserito i loro indirizzi nella pagina dei contatti di Sokolo, il che ha generato una miriade di congetture nella comunità Discord. In realtà volevamo solo omaggiare le nostre opere preferite d'infanzia.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Quella famosa citazione nella pagina "Contatti"

E alla fine

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Si è scoperto che nel serial ci sono effettivamente documenti di Spongebob. Erano indicati come numero di identificazione fiscale

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Una delle teorie più complesse sostiene che nel lampeggio della corda cinese sia nascosto un messaggio in codice Morse.

Hanno registrato i lampeggi e tentato di decifrarli
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Tra le teorie più semplici, ragazzi cercavano di capire se ci fosse un suggerimento nascosto nelle carte.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Lungo il cammino ci hanno paragonato a Cicada 3301 — una valutazione immeritata, ma comunque piacevole.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

I giocatori si sono impegnati in ingegneria sociale. Mi hanno chiamato spacciandosi per l'FSB, i vigili del fuoco, lo stesso Sokolo, la sua ex moglie e un guardiano che, si diceva, fosse giù da noi. Dicevano che era scoppiato un incendio, che qualcuno era rimasto bloccato nell'ascensore, e la storia più straziante era quella che riguardava un cagnolino che, secondo il chiamante, si trovava nell'ufficio avvolto dalle fiamme.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Ci sono state anche delle tentativi di corruzione

Piano piano nel chat hanno cominciato a spuntare meme originali.

Ecco un paio
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Nel frattempo, le fabbriche languivano
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Indizio

Il denaro nello shredder diminuiva sempre di più. Affinché il vincitore potesse ottenere almeno qualcosa, abbiamo deciso di fare un suggerimento. Per di più, seguendo le regole del game design, prima del finale aumentare la tensione.

In un post separato nel blog abbiamo pubblicato un video. All'inizio è stato inserito un frammento di Fight Club — come riferimento a Tyler Durden, che pensava di inserire il venticinquesimo fotogramma nei film, mentre lavorava nei cinema.

Abbiamo deciso di applicare la stessa meccanica e abbiamo inserito come venticinquesimo fotogramma un suggerimento su come cercare su Google il corretto numero di identificazione fiscale e il nome e cognome del proprietario.

Guarda il video

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Dopo questo i ragazzi hanno capito tutto molto rapidamente

Passo 4. Sparare con il laser in modalità non bellica

Quando l'alimentazione è stata fornita dalla società di gestione e dopo l'attivazione dei fusibili, Megatron si accendeva e poteva sparare in modalità di prova. Nel modulo per l'inserimento era già stato inserito il token per il colpo di prova.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Ogni 25 secondi veniva generato un nuovo token, che poteva essere utilizzato per accendere il laser per 10 secondi a potenza 10/255

Poi il laser si raffreddava per un minuto e durante questo minuto non era disponibile, non accettava nuove richieste di sparo.

Questa potenza era assolutamente insufficiente per bruciare una corda, ma qualsiasi giocatore poteva sparare con Megatron e vedere il raggio laser in azione.

La reazione della comunità è stata più che turbolenta
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Ma tutti si sono rapidamente calmati e hanno capito che non era ancora la fine del gioco
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Dopo la comunità ha iniziato a capire come avviare la modalità bellica

Brainstorming
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Sono apparsi fake su Discord

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Non sapevamo che qualcosa fosse scritto sul gambo del tavolo durante la trasmissione

La comunità è arrivata al passo 4. Comprendere come vengono generati i token: trovare il gist e generare un token che accende il laser in modalità bellica

La modalità bellica di Megatron è 100% della potenza del laser a 3 W. Questo è più che sufficiente per 2 minuti per bruciare la corda che teneva il peso, rompere l'acquario e allagare il server.

Abbiamo lasciato alcuni suggerimenti su GitHub del progetto: ovvero il codice di generazione del token, che permetteva di capire che i token di prova e bellici vengono generati sulla base di un unico indicatore del contatore. Nel caso del token bellico, oltre al valore del contatore, viene utilizzato anche un sale, che è stato quasi completamente lasciato nella cronologia delle modifiche di questo gist, eccetto gli ultimi due simboli.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server
Come tutti hanno rapidamente capito, era 42

Nei commenti del gist c'era una corrispondenza tra Andrei Sokolov e lo sviluppatore ('il saggio sviluppatore', come lo hanno chiamato i ragazzi di Discord).

Nella corrispondenza, Andrei inviava uno dei token bellici, e lo sviluppatore ha risposto che questo token era stato inizializzato con un valore del contatore 42.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Conoscendo questi dati, era possibile esaminare gli ultimi 2 simboli del sale e scoprire, di fatto, che per esso erano stati utilizzati numeri di Lost, tradotti in sistema esadecimale.

Successivamente, ai giocatori restava da catturare il valore del contatore (analizzando il token di prova) e generare un token di combattimento utilizzando il valore del contatore successivo e il sale raccolto nel passaggio precedente.

Il contatore si incrementava semplicemente ad ogni tiro di prova e ogni 25 secondi. Non ne abbiamo parlato da nessuna parte, doveva essere una piccola sorpresa di gioco. I ragazzi hanno capito tutto molto rapidamente e hanno lanciato il megatron in modalità combattimento.

Passo 5. Tagliare la corda con il laser

Guarda il video

Com'era

Qui già tutto è semplice. L'invio del token di combattimento attivava il laser in modalità combattimento, e la stanza cambiava, entrando in "modalità catastrofe", come la chiamavamo nel copione generale:

  • Tutta la luce nella stanza si spegneva
  • I pulsanti dei dispositivi IoT sul sito diventavano non disponibili
  • Si accendeva una luce lampeggiante e si udiva il suono di una sirena
  • Il peso rosso si illuminava
  • Sullo schermo della televisione iniziava il conto alla rovescia per l'attivazione del laser in modalità combattimento

Abbiamo dato un'ora e mezza per il conto alla rovescia, affinché tutti coloro che giocavano avessero il tempo di attivare la trasmissione e vedere il finale. E non a torto: mentre aspettavo con il cuore in gola il suono dell'impatto e il vetro che andava in frantumi dalla stanza accanto, tutto il team che aveva costruito il quest, senza dirlo a nessuno, cominciò a tornare alla base per vedere il finale con i propri occhi. Entravano semplicemente nella stanza e iniziavano ad abbracciarsi.

Nel frattempo, su Discord
Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Dopo la fine del conto alla rovescia, il laser si attivò in modalità combattimento e in due minuti tagliò la corda — il peso volò dritto nell'acquario. Prima dell'impatto, sullo schermo urlò un'istrice pazza, sollevando in preda al panico le piccole zampe.

Dato che tutto il team si trovava lì, abbiamo girato un breve messaggio a tutti coloro che avevano lottato per due giorni per il finale su Discord e siamo andati ad aprire lo champagne:

Guarda il video

Come abbiamo calcolato il momento dell'avvio dei video promozionali e il volo del peso?

Dopo una decina di test di taglio della corda con il laser, abbiamo capito che era una struttura molto inaffidabile — la corda parzialmente tagliata diventava più sottile, si tendeva sotto il peso del peso, cambiava posizione e il laser non riusciva più a tagliarla completamente.

Pertanto, abbiamo seguito un'altra strada: abbiamo duplicato il bruciatore, avvolgendo la corda con un filo di nichrome. Attraverso il filo passava una corrente, che si riscaldava fino a diventare rossa e bruciava la corda in circa 2 secondi — questo ci dava una chiara indicazione di quando azionare il capibara urlante, fermare il timer di avvio e lanciare il video pubblicitario:

Guarda il video

Cosa non ha funzionato?

Alla fine, dal case del computer doveva uscire fumo denso, come in un incendio — abbiamo preparato fumogeni, li abbiamo accesi in modo simile, ma in qualche modo non hanno funzionato (probabilmente a causa dell'acqua).

Chi è il vincitore?

Il vincitore è Arkadij Alexeev di San Pietroburgo — è stato lui a generare per primo il token di prova e ha vinto i restanti soldi nello shredder per un totale di 134.000 rubli.

Una breve intervista con Arkadij.

Racconta di te, di cosa ti occupi al lavoro?

Per formazione sono un esperto di sicurezza, ho completato lo BIT all'ITMO. Lavoro come sviluppatore web full stack in modalità outsourcing. A scuola ero un olimpionico, anche in programmazione e matematica.

Come hai scoperto il gioco?

Ho aperto Habr solo per leggere, ho visto l'articolo e mi sono interessato.

Quante ore hai giocato, quando ti sei unito?

Mi sono unito la sera del giorno in cui è stato pubblicato l'articolo (cioè un giorno prima della fine). Ho passato la serata e gran parte del giorno seguente.

Cosa ti è piaciuto e cosa no?

In generale, mi è piaciuto tutto (dopotutto ho vinto)), ma un po' mi ha infastidito il momento delle chiamate. Tipo, dover chiamare e controllare ogni versione non era molto bello, almeno era imbarazzante — capivo che ci fossero altre decine di persone che chiamavano, metà delle quali scherzava e cercava di fare ingegneria sociale.

Come hai capito come trovare il token di battaglia per il megatron?

Quando sono entrato, avevano già spamato il server, smanettato con le luci, trovato la password dell'admin del laser, vari sottodomini e pagine.

È stato anche facile trovare il profilo su GitHub e il gist con i commenti. Da lì il processo di generazione del token e il segreto per esso sono evidenti. In questi tipi di quest non bisogna inventare troppo, secondo me, perché si può rimanere sopraffatti da una serie di possibili sviluppi; e quindi bisogna seguire la direzione suggerita dal creatore della quest.

Tenendo conto degli altri sottodomini e del sito di test su Tilda, era chiaro che dopo l'accensione del laser sarebbe stato necessario selezionare un token. Quella stessa sera ho abbozzato una richiesta approssimativa per attivare il laser (basandomi su 4 form disponibili: 1 sul sito di lavoro e 3 su quello di test/vecchio) e ho cercato di bruteforcizzare i token funzionanti partendo dal 42 (così, per curiosità — magari lì era già tutto attivato, e la pagina per l'invio del token si sarebbe aperta dopo il codice fiscale e il nome e cognome).

Non sono sicuro che la richiesta fosse corretta, poiché non avevo tempo per verificarlo (dopotutto potevo controllare solo l'attivazione del laser), ma mi stavo preparando in anticipo per il bruteforcing del token.

C'era anche una logica evidente con i websocket e il controllo dei dispositivi nel file app.js. C'era un chiaro riferimento al dispositivo a9, sul quale inviare power: true ha fatto crashare il socket. Ho provato a inviare vari comandi — chissà, poteva esserci un dispositivo aggiuntivo per decifrare il codice fiscale, ma senza successo.

Poi ho provato a bruteforcizzare gli altri ID vicino a quei dieci, ma ovunque c'era 'unknown device'. Ho anche cercato su Google, sono entrato in contatto con chsokolow@gmail.com, ho inviato vari input nel modulo della pagina del listino prezzi, ho esplorato con lasermasters, ma tutto senza risultati. Il giorno dopo stavo chiacchierando in chat, cercando su Google, poi è emerso il tema della steganografia e ho chiesto consiglio a una persona esperta nella stegosolv per immagini e gif (ma logicamente capivo che il 99% non conteneva nulla, dato che sarebbe stato troppo + in contraddizione con la linea principale del quest).

Ma alla fine, ho passato anche alcune ore a esaminare tutte le immagini e gif. Ho anche chiamato un paio di volte con varie opzioni di codice fiscale, ma senza risultato. Poi ho deciso di lasciar perdere, ma è stata rilasciata un'indicazione — e si è capito che presto avrebbero trovato il codice fiscale, cosa che è accaduta. Poi forse ho inviato io, oppure qualcun altro (non è chiaro) power: true al dispositivo a9 e il laser ha funzionato, sebbene forse qui non ci fosse connessione e abbia iniziato a funzionare semplicemente dopo il codice fiscale. In generale, sono entrato nel pannello di amministrazione del laser e sono rimasto piuttosto sorpreso, poiché il server inviava automaticamente il token (mentre io stavo già preparando il bruteforcing). È diventato evidente che il token era un test, dato che la trasmissione + il buon senso + l'ho verificato.

Nel codice c'era una logica per inviare un token di lavoro da qualche parte tramite notifica, ma, a quanto pare, o era codice errato, oppure era necessario per altre parti del sistema. Ho scritto uno script per ottenere il token di lavoro attuale dal test attuale e sono rimasto con F5, cercando di inviarli — ci sono stati problemi con questo, poiché tutti premgevano costantemente il pulsante di invio, cambiando così il token. Poi il sito è caduto, il contatore si è azzerato, ma non importa — dopo un po' ho inviato il token di lavoro. Teoricamente il contatore era 58 e il token era 449a776938f7ce4cf19f8603045dca0f al momento dell'attivazione, se non sbaglio. In sostanza, è tutto.

Poi mi sono innervosito un po' per commenti del tipo «sì, è tutto triviale, sì, è andata bene». Beh, se entri nella pagina, pensi per un minuto, scrivi uno script in pochi minuti, lo controlli — sì, è triviale. Ma l'ho fatto in 10-20 secondi, e poi non sono riuscito a inviare il token per diversi minuti.

Certo, avrei potuto provare a scrivere una logica per acquisire e inviare automaticamente, ma ci sarebbe voluto più tempo e sarebbe stato un grande rischio, inoltre probabilmente il cloud avrebbe iniziato a lamentarsi. Quello con cui sono davvero stato fortunato è stata l'ultima fase — un po' di algoritmi sulla velocità + velocità di reazione, è proprio il mio campo. Se ci fosse stata una missione direttamente da un pentest, probabilmente non sarei stato il primo.

Ma questo non è ancora la fine.

Non vedo l'ora di raccontarvi di tutto il fantastico team che ha costruito questo quest e di tutte le soluzioni ingegneristiche che ha trovato. Ma questo post è già troppo lungo — quindi ci saranno articoli separati su questo, quindi rimanete sintonizzati e iscrivetevi al nostro blog su Habra.

Chi ha fermato lo shredder o come dovevamo affrontare la missione di distruggere il server

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster