En el desafío 11 se trata de analizar un supuesto sitio web que oculta un script y un pequeño criptograma. El objetivo del desafío era resolver ambas situaciones.
La primera parte plantea una situación típica del malware actual en donde un script es ocultado dentro de una página web pero a la misma no se puede acceder directamente y se deben seguir ciertos pasas para visualizarla. Entonces, si se intenta ingresar al enlace suministrado, se obtiene un error 403 real ("acceso prohibido"), el cual puede ser comprobado en la cabecera.
Esto sucede con gran parte de los navegadores actuales y en cualquier sistema operativo, pero si se logra "engañar" al servidor es posible obtener más información. Para ello, se debe cambiar el User-Agent simulando que se ingresa al sitio con un navegador web distinto a los tradicionales y existen muchas maneras de realizar esta acción con extensiones, plugins, herramientas para cualquier sistema operativo, etc. En este caso elegimos la aplicación CURL (una de las pistas hablaba sobre uno de los Tres chiflados, Curly):
En este caso simule el "navegador web" llamado "curl" pero habría podido utilizar cualquier cadena y como puede verse se descarga una página web de 24.727 bytes, la cual había que analizar.
Esta página simulaba un error 404 muy parecido al error real ("página no encontrada") obtenido en nuestro blog y lo que había que hacer era buscar las diferencias entre ambas. Este procedimiento también es típico en el malware, debido que al simular el error de página no encontrada, el usuario no se percata de que acaba de ser infectado por un script (cosa que por supuesto no ocurre aquí).
Al analizar las diferencias lo primero que se vé es que en la parte superior de la página aparece la cadena del User-Agent detectado por el servidor: en este caso "curl". Otra diferncia se ve aproximadamente en la mitad del archivo, ya que se ha agregado un script que en la página original no aparece:
Aquí se ve otra pista "resuelve y envíanos el criptograma" y una referencia al archivo sendus.js. Para obtener dicho archivo hay que seguir el mismo procedimiento de descarga anterior y una vez descargado el mismo se puede ver la siguiente cadena: lrreaaisbtoeoo@t.
Al saber que se trataba de un criptograma (sencillo) se podían aplicar distintas técnicas. La longitud de la misma es de 16 bytes lo que da una idea sobre dividir la cadena en partes iguales para verificar lo que se obtiene:
- Dividiendo en 2: lrreaaisbtoeoo@t -> lraibo...
- Dividiendo en 4: labora...
- Dividiendo en 8: lstrbl...
Queda claro que en la segunda opción aparece algo útil. Esto se obtiene de la siguiente tabla utilizada para "cifrar" el mensaje original:
l | r | r | E |
a | a | i | S |
b | t | o | S |
o | o | @ | T |
Leyendo de izquierda a derecha se ve la cadena cifrada y de arriba hacia abajo se lee la cadena original, la cual era la solución al desafío: laboratorio@ESET.
Cabe aclarar que si en el juego propuesto, se tratara de un malware, el usuario habría descargado un script real y dañino y quizás estaría infectado con algún tipo de malware. Aquí radica la importancia de conocer este método para realizar análisis.
Por pocos minutos, el ganador en este caso es Thor, quien brindó la respuesta y la justificación. Dentro de poco tiempo estarás recibiendo tu licencia.
Aprovechamos para felicitar a todos los que han jugado, esperando que la próxima vez sean ellos los beneficiados.
Cristian Borghello
Director de Educación e Investigación