Video: CÓMO HACER CHOCOLATE INFINITO (Noviembre 2024)
Obtenga un grupo de piratas informáticos y otras personas con mentalidad de seguridad en el mismo lugar y un poco de competencia y piratería de buen carácter es inevitable.
La Cumbre de analistas de seguridad de Kaspersky Lab de la semana pasada estuvo repleta de sesiones interesantes y asistieron algunas de las mejores mentes en seguridad de la información, pero eso no fue todo. Los asistentes también podrían competir en el "Crypto-challenge", donde usan sus habilidades de piratería para resolver una serie de acertijos. Estuve entre los pocos que terminaron el desafío, y en el camino aprendí un poco más sobre criptografía, ofuscación e ingeniería inversa.
Sobre todo, aprendí que piratear es como resolver acertijos; sigues pensando, "Déjame probar esto", y te sientes realmente emocionado cuando lo entiendes.
La criptografía tiene la llave
En esencia, la criptografía se trata de tomar un mensaje y escribirlo de tal manera que parezca un galimatías para quien no conoce el secreto. Es un poco como Pig Latin. Si no conoce las reglas del idioma, entonces no tiene idea de lo que significa "ellohay". Algunas cifras son muy simples, como intercambiar la letra con la siguiente letra, de modo que a se convierte en b, b se convierte en c, y así sucesivamente, hasta que "hola" se convierte en "ifmmp". Otros son mucho más complejos matemáticamente y se utilizan para proteger nuestros números de tarjeta de crédito y credenciales de contraseña.
Cada asistente a la cumbre, al registrarse, recibió una carta sobre el desafío criptográfico. Al final había una cadena de letras que no tenía sentido pero tenía un formato familiar. Comenzando con "vhhd: //" y seguido de grupos de letras separadas por un punto (.), Era claramente la URL de un sitio web. Una vez que me di cuenta de que las primeras letras eran "http: //" supe que era ROT13, un cifrado popular (y tremendamente débil), que intercambia cada letra con una que aparece 13 lugares más adelante en el alfabeto. No había necesidad de calcular la URL manualmente, ya que hay toneladas de decodificadores ROT13 en la Web.
Javascript ofuscado, Oh My
La página resultante, con una imagen y un mensaje de bienvenida, era aburrida. La fuente de la página era cualquier cosa menos. Eran líneas y líneas de más galimatías, encerradas en etiquetas <script type = "text \ javascript">. Ah, Javascript ofuscado.
La ofuscación es una técnica de uso común en la que los codificadores maliciosos escriben código de ataque de tal manera que un humano no pueda leer el código fácilmente. Es diferente de la criptografía en que no se basa en un secreto sino en métodos de programación complicados para generar código difícil de leer. El código resultante es ilegible para el ojo humano, pero la máquina no tiene problemas para comprenderlo y ejecutarlo.
Como fue el caso con ROT13, no hubo necesidad de intentar analizar el Javascript ofuscado manualmente. En cambio, utilicé el inspector DOM que está integrado en el navegador web Chrome y revisé cada elemento de la página. Pude ver el código para mostrar la imagen y el mensaje de bienvenida escondido dentro del galimatías, así como una línea de código comentada que contiene la siguiente pista.
La ofuscación no se limita solo a Javascript, tampoco. Tuve que editar un script de Perl para descubrir qué estaba tratando de decir ese feo código.
Ingeniería inversa como un jefe
En un momento, descargué un archivo ejecutable (escaneado con Kaspersky Antivirus; ¡no hace daño tener cuidado!) Que me solicitó ingresar un nombre de usuario y contraseña. Había llegado el momento de aplicar ingeniería inversa a ese ejecutable.
Trabajar desde una computadora portátil Linux ayudó en este punto, porque podría usar cadenas , una herramienta Linux de línea de comandos que imprime el contenido de archivos que no son de texto, y gdb , un depurador que le permite ver lo que sucede dentro de un archivo mientras se ejecuta. cadenas también fue útil más adelante en el desafío, cuando descargué archivos.d64. Podría haber descargado un emulador Commodore 64, como pretendía el organizador del desafío, para ejecutar el archivo, pero simplemente ejecuté cadenas para averiguar a dónde ir después.
He oído hablar de incrustar mensajes secretos dentro de una imagen, pero cuando me enfrenté a esa imagen, inicialmente me quedé perplejo. Entonces recordé que las imágenes tienen capas, y los atacantes pueden incrustar información en diferentes capas sin interrumpir la capa visible. Podría haber examinado cada capa en GIMP, una herramienta de código abierto similar a Adobe Photoshop que se ejecuta en Linux. En cambio, ejecuté la imagen a través de cadenas , que extrajeron todo el texto oculto en la imagen. Ese es un comando versátil y práctico.
Nota sobre contraseñas
Algunos de los pasos del desafío me solicitaron una contraseña válida. Si bien la "contraseña" nunca apareció, hubo al menos una ocasión en la que simplemente ingresé palabras que tenían alguna relevancia para la conferencia y el juego hasta que me topé con la correcta. En un paso, me tropecé con minúsculas / mayúsculas, así que simplemente generé una lista de todas las combinaciones posibles y me abrí camino.
Un atacante, armado con alguna información sobre la víctima, puede fácilmente tratar de adivinar la contraseña correcta o simplemente revisar una lista de posibles palabras. Seguí murmurando: "Voy a burlarte de ti", y cuando lo descubrí, pensé: "¡JA! ¡Lo tengo!"
Solo para resolver acertijos
Con la excepción de cadenas y gdb, cada elemento del desafío dependía de algo bastante sencillo, o algo que podría aprender con una búsqueda en Google. Si bien no todo el pirateo es tan simple, es importante comprender que las habilidades se desarrollan una encima de la otra. Para comenzar, solo necesita un poco de curiosidad y disposición para perseverar.
Escuchas sobre personas que intentan entrar en sistemas o lanzan campañas en línea por diversión, o simplemente para demostrar que pueden hacerlo. Lo que mantiene a los piratas informáticos pirateando es esa evasiva descarga de adrenalina que proviene de resolver un rompecabezas desafiante.