¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Hace un par de días, completamos uno de los eventos más cargados de emociones que hemos tenido la suerte de llevar a cabo en el blog: un juego de hacker online con la destrucción de un servidor.

Los resultados superaron todas nuestras expectativas: los participantes no solo tomaron parte, sino que rápidamente se organizaron en una comunidad cohesionada de 620 personas en Discord, que literalmente asaltaron la misión en dos días sin pausa para dormir.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Y así fue como terminó:

Reproducir video

¿Cómo comenzó todo y de qué se trata?

El juego comenzó el 12 de agosto, cuando publicamos en el blog publicación un video en el que un hacker disfrazado de calavera invita a jugar, destruir el servidor, provocar un cortocircuito en la habitación (o un pequeño incendio) y recuperar el dinero que queda en la trituradora.

Fue una misión online: lanzamos una transmisión en YouTube desde una habitación que llenamos de dispositivos IoT, con un servidor oculto (que debía ser destruido), y encima del servidor colocamos un acuario suspendido con un peso. Para que el juego fuera más emocionante, decidimos establecer un fondo de premios de 200,000 rublos, que cargamos en la trituradora y configuramos para que se activara cada 60 minutos. Cada hora, la trituradora devoraba 1,000 rublos; cuanto antes los jugadores lo detuviesen, más dinero ganarían.

Reproducir video

Construir esta misión fue una misión en sí misma: tuvimos que alimentarnos con comida a domicilio y dormir solo unas horas al día en la misma habitación. Pero lo más sorprendente fue observar el vuelo de la imaginación de los jugadores y su entrega emocional durante el proceso.

Honestamente, la creatividad de los jugadores en resolver los acertijos superó con creces nuestras humildes expectativas: en cada minuto libre leíamos el chat de Discord y, en algunos casos, literalmente llorábamos de risa al ver lo que hacían y cómo bromeaban durante el proceso.

El proyecto fue llevado a cabo por un equipo de 7 personas: un backend, un especialista en hardware, un verdadero productor cinematográfico, un diseñador CG y dos co-productores inspiradores.

En las próximas publicaciones, contaremos cómo se realizó la misión desde el punto de vista técnico, pero por ahora, relataré su solución: cómo se debía hackear esta habitación en la transmisión. También recordaremos la cronología de los eventos, así como todas las locas teorías iluminadas del chat de Discord y más.

¿Qué tenían los jugadores al inicio del juego?

Todos los objetos en la habitación se dividieron en tres categorías:

  • Dispositivos IoT simples de manejar, no destinados a juegos
  • Dispositivos de juego para completar la misión
  • Ambiente

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Colocamos 8 elementos muy fáciles de manejar: dos lámparas, una guirnalda, cinco letras de SOCOLO, cada una de las cuales podía cambiar de color. Todo esto se podía encender/apagar directamente desde el sitio web y ver el resultado en la transmisión en vivo; los hicimos accesibles para todos los jugadores, independientemente de su nivel de habilidad técnica.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Todo lo que se encendía fácilmente desde el sitio web

De los elementos de juego importantes necesarios para completar la misión, a los que no era tan fácil acceder:

  1. Servidor con la tapa abierta y un acuario sobre él
  2. Una pesa suspendida de tal manera que podía romper el acuario
  3. Megatron 3000 — un potente puntero láser dirigido a la cuerda que sostiene la pesa
  4. Un ventilador potente que se encendía bajo carga en el servidor
  5. Una pizarra en la que estaban escritos el nombre de usuario y la contraseña de Megatron
  6. Un teléfono al que se podía llamar y ver la llamada en directo
  7. Una destructora que devoraba un billete de mil rublos por hora

Cómo se resolvió la misión

Diga de inmediato: el cofre se abría bastante fácilmente.

El objetivo del juego era detener la destructora causando un cortocircuito en la habitación. Para ello, había que romper el acuario, lanzando la pesa contra él y empapando el servidor con agua. La pesa estaba sujeta por un cordel, sobre el cual estaba apuntando Megatron. Al tomar el control de Megatron, se podía cortar la cuerda. Esto se hacía en 5 pasos sencillos:

Paso 1. Cargar el servidor que estaba en la habitación

Por ejemplo, enviando paquetes con un comando.

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

La pista era un captcha muy pesado en la página de Lista de Precios en Ese mismo captcha que había que atacar.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Al cargar el servidor, su temperatura aumentaba y esto se podía monitorear en la visualización abierta justo frente a la cámara. A continuación, se activaba el ventilador, que abría una cortina ligera en la pizarra. Entonces se mostraba el nombre de usuario y la contraseña para acceder a la página de Megatron, que estaban escritos en la pizarra.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Y para encontrar la página de control de Megatron, se podían verificar todos los certificados emitidos para el dominio ooosokol.ru.

En el subdominio

megatron.ooosokol.ru megatron.ooosokol.ru Se encontraba la página de control de Megatron. Pero no se abría hasta que se le suministrara energía primaria.

Todos estos pasos los jugadores los realizaron casi de inmediato en los comentarios de la transmisión en youtube. Después, las tareas fueron un poco más complejas y los jugadores crearon un servidor de Discord llamado RUVDS Hack Room y continuaron la discusión allí.

Paso 2. Suministrar energía primaria a Megatron

Todos los dispositivos inteligentes, controlados desde el sitio (las mismas luces que los jugadores encendían y apagaban continuamente) tenían sus identificadores.

Para suministrar energía primaria a Megatron y a la vez iluminarlo, era necesario encontrar y activar un dispositivo oculto en la página de control de la oficina.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Para ello, era necesario observar los identificadores de los dispositivos y notar que había un total de 4 dispositivos, pero solo 3 estaban disponibles en el sitio.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

La página de Megatron se volvía accesible al activar el cuarto dispositivo y el láser se iluminaba. Pero al mismo tiempo, no era posible disparar el láser, ya que había un mensaje que indicaba que el láser no estaba disponible y una pista: en la oficina se habían disparado los fusibles, era necesario llamar a la empresa administradora y pedir que se suministrara energía. página Pista sobre la empresa administradora

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
3. Llamar a la empresa administradora y pedir que se active la energía de Megatron

Según el LOR, Megatron no podía disparar porque en la oficina se habían disparado los fusibles. Solo la empresa administradora podía volver a activar la energía, a la que había que llamar y pasar por una identificación como propietario de la empresa.

Encontrar el número de la empresa administradora fue fácil: lo pusimos directamente en el pie de página.

Pero pasar la identificación fue mucho más complicado.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Al llamar al número +74991130688, una chica operadora atendía y con voz aburrida pedía que se diera el NIF de la empresa y el nombre completo del propietario. Sin esto, se negaba a activar la energía y explicaba que era solo una central de atención externa, tenían 2000 clientes y oficinas, y sin esta información no podían encontrar al correcto.

Para los jugadores, esta fue la etapa más difícil. Buscaban el NIF correcto y el nombre completo del propietario durante casi dos días, mientras que yo (en calidad de operadora de la central) recibí más de 400 llamadas en ese tiempo. El teléfono sonaba cada 2-3 minutos.

Los chicos buscaban como podían. Se usaba de todo: revisaban los fuentes del sitio, buscaban al propietario del sitio, Sokolov, en Google y lo encontraban en las redes sociales.

Buscaban el NIF de diferentes empresas

Ellos buscaban el NIF de diferentes empresas
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Esquema casi completo de búsqueda

En algún momento incluso llamaron con un número falso, como si estuvieran llamando desde la oficina de la empresa Sokol, mencionada en el pie de página.

Entonces descubrimos cuántas empresas llevan el nombre Sokol. Prácticamente todos los jugadores estaban llamando a estas empresas, pero eso no se comparaba en absoluto con lo que sufrió el sitio. lasermasters.ru, de las que realmente compramos el Megatron hace aproximadamente un mes.

Primero, el Discord atacó el soporte de Lasermasters.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Luego pudieron encontrar allí la cuenta de alguien. Mientras tanto, el soporte de Lasermasters ya no se contenía en sus expresiones.

Cuidado, mantengan a los niños alejados de la pantalla
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Al final, decidieron simplemente hacer DDoS a Lasermasters y su sitio cayó. Igualmente, logramos derribar el sitio de Sokol, aunque lo levantamos rápidamente.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Durante la investigación, los chicos de Discord incluso encontraron al actor, cuya foto compramos de un banco de imágenes, para que interpretara al principal antagonista, el dueño de LLC Andrey Sokolov. Resultó que se llama Yuri y no tiene idea del lío en el que se ha metido.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Andrey Sokolov, personaje del juego

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Yuri, modelo

Si tan solo supiera cómo hizo que 600 personas no durmieran durante dos días...)

Después empezaron a indagar específicamente sobre mí, como organizador del juego (lo cual podría haber tenido éxito, si los chicos hubieran adivinado hackear mis canales de trabajo).

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Me preocupé un poco cuando mencionaron mi segundo nombre e incluso mi NIT. Pero me tranquilicé cuando, en el proceso de trabajo del teléfono descompuesto, de repente apareció un hermano mayor que resultó ser el director técnico de Habr.

Mi querido hermano, a quien también le tocó
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Mientras tanto, las conjeturas se volvían cada vez más increíbles
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Y llegaron a teorías de los illuminati.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Las teorías de conspiración más jugosas involucraban a Bob Esponja, Harry Potter y el parpadeo de una tira de diodos chinos que pusimos dentro de la torre del sistema.

¿De dónde salen Bob Esponja y Harry Potter, se preguntarán? Introdujimos sus direcciones en la página de contacto de Sokol y esto provocó una gran cantidad de conjeturas en la comunidad de Discord. Aunque simplemente queríamos rendir homenaje a nuestras obras favoritas de la infancia.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
La famosa referencia en la página "Contactos"

Y como resultado

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Resulta que en la serie realmente hay documentos de Bob Esponja. Los llamaron como NIT

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Una de las teorías más complejas era que en el parpadeo de la guirnalda china estaba escondido un mensaje en código Morse.

Registraron el parpadeo y trataron de descifrarlo.
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Una de las teorías más simples era que los chicos intentaban entender si había alguna pista oculta en las cartas.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

En el camino nos comparaban con Cicada 3301 — una estimación injustificada, pero igualmente agradable.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Los jugadores intentaron la ingeniería social. Recibí llamadas haciéndose pasar por el FSB, bomberos, el propio Sokolov, su exesposa y un guardia que supuestamente estaba abajo. Decían que había comenzado un incendio, que alguien se había quedado atrapado en el ascensor, y la historia más desgarradora era que en la oficina en llamas, supuestamente, estaba un perrito que le pertenecía al que llamaba.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
También hubo intentos de soborno.

Poco a poco, comenzaron a surgir memes propios en el chat.

Aquí van un par.
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Mientras tanto, las fábricas permanecían inactivas.
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Sugerencia

El dinero en la trituradora se iba agotando. Para que el ganador obtuviera algo, decidimos dar una pista. Al mismo tiempo, siguiendo las reglas del diseño de juegos, elevar la tensión justo antes del final.

Aparte de eso, publicación publicamos un video en el blog. Al principio se insertó un fragmento de Fight Club — como referencia a Tyler Durden, que pensaba en la inserción del cuadro 25 en las películas mientras trabajaba en cines.

Decidimos aplicar la misma mecánica e insertar como cuadro 25 una pista de cómo buscar en Google el NIF correcto y el nombre completo del propietario.

Reproducir video

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Después de esto, los chicos se dieron cuenta muy rápidamente.

Paso 4. Disparar un láser en modo no bélico.

Al suministrar alimentación a la empresa de gestión y tras activar los fusibles, Megatron se encendía y podía disparar en modo de prueba. En el formulario de entrada ya se había introducido un token para el disparo de prueba.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Cada 25 segundos se generaba un nuevo token, que se podía usar para encender el láser durante 10 segundos a una potencia de 10/255.

A continuación, el láser se enfriaba durante 1 minuto y durante ese minuto no estaba disponible, no aceptaba nuevas solicitudes para disparar.

Esa potencia no era suficiente para cortar la cuerda, pero cualquier jugador podía disparar desde Megatron y ver el rayo láser en acción.

La reacción de la comunidad fue más que efusiva.
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Pero todos se calmaron rápidamente y entendieron que esto no era el final del juego.
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Luego la comunidad comenzó a investigar cómo activar el modo de combate.

Lluvia de ideas.
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Aparecieron falsificaciones en Discord.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
No sabíamos que había algo escrito en la pata de la mesa durante la transmisión.

La comunidad ha llegado al paso 4. Entender cómo se generan los tokens: encontrar el gist y generar un token que incluya el láser en modo de combate.

El modo de combate de Megatron es el 100% de potencia del láser a 3W. Eso es más que suficiente durante 2 minutos para quemar la cuerda que sostiene el peso, romper el acuario y llenar el servidor de agua.

Hemos dejado algunas pistas en el GitHub del proyecto: a saber, el código de generación del token, que permite entender que los tokens de prueba y de combate se generan en base a un mismo contador. En el caso del token de combate, además del valor del contador, se utiliza una sal, que se dejó casi completamente en el historial de cambios de este gist, excepto por los dos últimos símbolos.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?
Como todos adivinaron rápidamente, era 42.

En los comentarios del gist había una conversación entre Andrei Sokolov y el desarrollador (el “sabio desarrollador”, como lo llamaron los chicos de Discord).

En la conversación, Andrei enviaba uno de los tokens de combate, y el desarrollador respondió que este token fue inicializado con un valor de contador de 42.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Conociendo estos datos, era posible probar los 2 últimos símbolos de la sal y descubrir que se utilizaron números de Lost, convertidos al sistema hexadecimal.

Luego, a los jugadores solo les quedaba capturar el valor del contador (analizando el token de prueba) y generar el token de combate, utilizando el siguiente valor del contador y la sal ajustada en el paso anterior.

El contador simplemente se incrementaba con cada disparo de prueba y cada 25 segundos. Sobre esto no escribimos en ningún lado; debería haber sido una pequeña sorpresa en el juego. Los chicos lo resolvieron muy rápidamente y pusieron el megatron en modo de combate.

Paso 5. Quemar la cuerda con el láser.

Reproducir video

Cómo fue.

Aquí todo es simple. Enviar el token de combate activó el láser en modo de combate, y la habitación cambiaba a lo que llamamos ‘modo de catástrofe’ en el guion general:

  • Se apagaba toda la luz de la habitación.
  • Los botones de los dispositivos IoT en el sitio se volvían inaccesibles.
  • Se activaba una luz intermitente y el sonido de una sirena.
  • El peso rojo se iluminaba.
  • En la pantalla del televisor comenzaba la cuenta regresiva para el inicio del láser en modo de combate.

Dimos una cuenta regresiva de una hora y media para que todos los que jugaron pudieran encender la transmisión y ver la final. Y no fue en vano: mientras yo esperaba con el corazón en un puño el sonido del golpe y el cristal rompiéndose de la habitación contigua, todo el equipo que había construido la búsqueda, sin avisarse, comenzó a salir a la base para ver la final con sus propios ojos. Simplemente entraban en la habitación y empezaban a abrazarse.

Mientras tanto en Discord
¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Después de que se terminó la cuenta regresiva, el láser se activó en modo de combate y en dos minutos cortó la cuerda: la pesa voló directamente hacia el acuario. Justo antes del impacto, en la pantalla, apareció una capibara loca gritando, levantando pequeñas patas en pánico.

Ya que todo el equipo estaba allí, grabamos un pequeño mensaje para todos los que lucharon durante dos días por la final en Discord y fuimos a abrir champán:

Reproducir video

¿Cómo calculamos el tiempo de lanzamiento de los anuncios y el vuelo de la pesa?

Después de una docena de pruebas cortando la cuerda con el láser, nos dimos cuenta de que era una construcción muy poco fiable: la cuerda medio cortada se volvía más delgada, se tensaba bajo el peso de la pesa, cambiaba de posición y el láser ya no podía cortarla por completo.

Por lo tanto, tomamos otro camino: duplicamos el corte, envolviendo la cuerda con hilo de nichromo. Pasamos corriente a través del hilo, se caliente a rojo y cortaba la cuerda en aproximadamente 2 segundos, lo que nos daba una comprensión precisa de cuándo activar la capibara gritando, detener el temporizador de lanzamiento y comenzar el anuncio:

Reproducir video

¿Qué no logramos?

En la final, del bloque de sistema debería salir un denso humo, como si hubiera un incendio: preparamos bombas de humo, las encendimos de la misma manera, pero por alguna razón no funcionaron (probablemente por el agua).

¿Quién es el ganador?

El ganador resultó ser Arkadiy Alekseev de San Petersburgo — él fue el primero en generar un token de prueba y ganó el resto del dinero en la trituradora, que era de 134,000 rublos.

Una breve entrevista con Arkadiy.

Cuéntame sobre ti, ¿en qué trabajas?

Soy especializado en seguridad, me gradué de BIT en ITMO. Trabajo como desarrollador web fullstack en outsourcing. En el colegio fui un olimpista, incluido en programación y matemáticas.

¿Cómo te enteraste del juego?

Entré a Habr solo para leer, vi un artículo y me interesé.

¿Cuántas horas jugaste y cuándo te uniste?

Me uní la noche del día en que publicaron el artículo (es decir, un día antes del final). Pasé la noche y una buena parte del día siguiente.

¿Qué te gustó y qué no?

En general, me gustó todo (cómo no, ¡gané!), pero me molestó un poco el tema de las llamadas. Quiero decir, llamar y verificar cada versión resultó un poco incómodo, por lo menos, era extraño — sabía que había decenas de personas más llamando, la mitad bromeando e intentando ingeniería social.

¿Cómo entendiste cómo encontrar el token de batalla para el Megatron?

Cuando entré, ya habían spameado el servidor, tocado botones, encontrado la contraseña del panel de administración del láser, varios subdominios y páginas.

Además, fue fácil encontrar un perfil en GitHub y un gist con comentarios. Desde ahí, el proceso para generar el token y su secreto era obvio. En este tipo de misiones no es necesario inventar demasiado, ya que se puede uno hundir en un montón de posibles desarrollos; y por lo tanto, hay que seguir la dirección que te marca el creador de la misión.

Teniendo en cuenta los otros subdominios y el sitio de prueba en Tilda, estaba claro que después de suministrar energía al láser, habría que obtener el token. Por lo tanto, esa misma noche esbocé una solicitud aproximada para activar el láser (basada en 4 formularios disponibles: 1 en el sitio en funcionamiento y 3 en el de prueba/viejo) e intenté probar los tokens válidos empezando por el 42 (bueno, por probar — tal vez ya todo estuviera activado y la página para enviar el token solo se abriría después de ingresar el NIF y el nombre completo).

No estoy seguro de que la solicitud fuera correcta, ya que no tuve tiempo para comprobarlo (pues solo se podía verificar si el láser se encendía), pero me preparaba de antemano para el proceso de prueba del token.

Allí también había una lógica obvia con los websockets y el control de dispositivos en el archivo app.js. Había una clara pista sobre el dispositivo a9, que se bloqueaba al enviar power: true. Intenté enviarle varias cosas — quién sabe, podría haber un dispositivo adicional para descifrar el NIF, pero sin éxito.

Luego revisé los demás ID junto a esos diez, pero en todos decía dispositivo desconocido. También intenté buscar en Google, acceder a chsokolow@gmail.com, envié cosas a través del formulario en la página de precios, investigué sobre lasermasters, pero todo fue en vano. Al día siguiente estuve en el chat, buscando cosas, y luego surgió el tema del estego, así que consulté con una persona sobre stegsov para imágenes y GIFs (aunque sabía que 99% no había nada, ya que eso sería demasiado y contradice la línea principal de la misión).

Pero al final pasé un par de horas revisando todas las imágenes y GIFs. Llamé un par de veces con diferentes variantes de NIF, pero nada. Luego decidí dejarlo estar, pero publicaron una pista y quedó claro que en poco tiempo encontrarían el NIF, lo que sucedió. Luego yo o alguien más (no estaba claro) envié power: true al dispositivo a9 y el láser funcionó, aunque tal vez aquí no hay conexión y simplemente funcionó después del NIF. En resumen, entré al panel de administración del láser y me sorprendí, ya que el servidor enviaba el token automáticamente (y yo ya me estaba preparando para hacer un brute force). Quedó claro que el token era de prueba, ya que la transmisión + el sentido común + lo verifiqué.

En el código había una lógica para enviar un token de trabajo a alguna parte mediante notificaciones, pero, al parecer, o bien era un código incorrecto, o bien eso era necesario para otras partes del sistema. Elaboré un script para obtener el token de trabajo actual a partir del token de prueba y me quedé refrescando la página, intentando enviarlos; tuve problemas con eso, ya que todos presionaban el botón de envío cambiando el token. Luego también se cayó el sitio, el contador se reinició, pero ya no importa; después de un tiempo envié el token de trabajo. Se suponía que el contador era 58 y el token era 449a776938f7ce4cf19f8603045dca0f en el momento de la activación, si no me equivoco. Eso es todo.

Luego me molestaron un poco algunos comentarios como "sí, esto es todo trivial, sí, fue suerte solo". Bueno, si entras a la página, piensas un minuto, escribes un script en par de minutos, lo verificas, entonces sí, es trivial. Pero lo hice en unos 10-20 segundos, y luego simplemente no pude enviar el token durante unos minutos.

Por supuesto, se podría haber intentado escribir la lógica para la captura y el envío automático, pero eso tardaría más y conllevaría un gran riesgo; además, probablemente la nube comenzaría a quejarse. Lo que realmente me benefició fue la última etapa: algunos algoritmos para velocidad + tiempo de reacción, eso es lo mío. Si hubiera habido una tarea directamente relacionada con el pentesting, probablemente no habría sido el primero.

Pero esto aún no es el final

No puedo esperar para contarles sobre todo el increíble equipo que construyó esta búsqueda y todas las soluciones ingenieriles que encontraron. Pero esta publicación ya se ha hecho demasiado extensa, así que habrá artículos separados sobre esto; así que manténganse atentos y suscríbanse a nuestro blog en Habr.

¿Quién detuvo al triturador o cómo debería haberse pasado la misión de destrucción del servidor?

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster