Español | English
rss facebook linkedin Twitter

La seguridad en los foros

Me paseaba yo tranquilamente repasando los foros oficiales de World of Warcraft cuando observe un post que me llamaba la atención por encontrarse totalmente fuera de lugar.
En primer lugar el asunto del post estaba en ingles, así como su contenido (raro en un foro en castellano) y en segundo lugar invitaba a ver fotos de chicas “ligeritas”.

Realmente era un reclamo burdo y poco elaborado para un foro de esa temática (en otras ocasiones he visto enlaces a objetos del juego, etc ) pero aun así y por curiosidad me dispuse a analizarlo.

Lo primero fue visitar el enlace... con un cliente http raw :D y se podía observar que no era un enlace a una foto, sino que el servidor devolvía un html con un par de frames. El primer frame si apuntaba a una foto, el segundo apuntaba contra otro dominio y otro html donde se encontraba el código del infector en si.

El código del infector en si no tenia mayor relevancia, era un simple html que diversos frames y scripts para explotar diversas vulnerabilidades ya conocidas.. desde la ya famosa del .ani introduciendo un cursor “tt.gif”, hasta el lanzamiento de un wav con payload....

Todos los infectores realizaban la misma tarea, bajarse un fichero “lese.exe” desde diversas localizaciones (cada infector de una distinta) y ejecutarlo en la maquina local.

El nombre ya lo conocía, “lese.exe” era el nombre de un conocidillo troyano roba contraseñas del World of Warcraft que ya había visto en el pasado y estuve a punto de “dejarlo pasar”, pero me di cuenta de que no era el mismo que había visto en el pasado y su diferencia de tamaño era notable... era una nueva versión pero no era un “refrito” del anterior.

Así que me puse manos a la obra. Lese.exe estaba sin comprimir ni cifrar, llevaba un binario empaquetado dentro y realizaba tareas bastante sencillas.. así que, maquina virtual, discos de deshacer y a infectarla monitorizando con filemonitor / regmon,etc.
El ejecutable instalaba en el sistema una dll llamada “kbass1p.dll”, dicha dll se incrusta como una garrapata en mil sitios (asociaciones de ficheros, carga en aplicaciones, etc).

El primer análisis de la dll me indicaba que estaba empaquetada, además, si había variado mucho ya que la versión que conocia del “lese” instalaba unas cuantas cosas mas, no una simple dll y además tan pequeña (36k’s). Deje el equipo infectado, active el remote debugger y ... a verla. Empecé a navegar por su código y vi cosas bastante curiosas como por ejemplo la rutina para componer la ip destino de sus datos y como se enganchaba al sistema (básicamente un keyloger basado en un hook al bucle de mensajería de Windows). Como no tenia ni tiempo ni excesivas ganas de desensamblar absolutamente todo el código, simplemente la deje correr. Situé un Wireshark en el adaptador de red en la maquina host, puse filtros para ver solo las comunicaciones de la maquina virtual y en esta ultima abrí un simple Internet Explorer y me dedique a navegar. Cual fue mi sorpresa que tras una conexión https que llevara “user” y “password” en el código de la pagina.... se establecía una misteriosa conexión a una maquina situada en China al puerto TCP 2034 y con unos datos de naturaleza poco clara


El anterior troyano solo enviaba cuentas de World of Warcraft y además lo hacia con una conexión http .. encima en el propio get... esto sin embargo pasaba unos datos (que no sabia que eran) a una maquina con su propio protocolo (y lógicamente usando el contexto de la aplicación que hubiera capturado, esto es , en mi caso, el Internet Explorer)

Había que romper el cifrado que usaba, así que, análisis diferencial y búsqueda de patrones... capture un par de paquetes que enviaba después de haber usado yo de usuario y contraseña “abcdefg” y “gfedcba”, analizando las diferencias se observaba esto:


26 67 0b 0e 67 a8 c5 07 c4 ed 8e 0d ac 4e a7 8e
ac 0f 8e 6b ae 6e ac 4e cd 2c ad ac ab 2c 4c 6c
8c ac cc ec e5 0e 2c 6e 6e ee ed 4e 8c 6b 0e 2c
6e 6e ee ed 4e 8c ab 2c 4c 6c 8c ac cc ec e5

Paquete “abcdefg” en user y password

26 67 0b 0e 67 a8 c5 07 c4 ed 8e 0d ac 4e a7 8e
ac 0f 8e 6b ae 6e ac 4e cd 2c ad ac ab ec cc ac
8c 6c 4c 2c e5 0e 2c 6e 6e ee ed 4e 8c 6b 0e 2c
6e 6e ee ed 4e 8c ab ec cc ac 8c 6c 4c 2c e5

Paquete “gfedcba” en user y password

Vaya! Bingo! Hay correlación :D ahora solo hay que sacar el patrón... además el algoritmo de cifrado no cambia en el tiempo!
Como hemos observado, aparece la secuencia de valores a la inversa así que, tomando el primer caso suponemos que “2c” es la “a” es decir “64” en hexadecimal. Elaboro una simple tabla con los números en binario, el correspondiente en el paquete capturado y...

01100001-00101100 – “a”
01100010-01001100 – “b”
01100011-01101100 – “c”
01100100-10001100 – “d”
01100101-10101100 – “e”
01100110-11001100 – “f”
01100111-11101100 – “g”

Anda! Si es fácil! Si rotamos los bits 5 posiciones a la izquierda obtenemos el valor “codificado” :D Entonces aplicando rotación a la derecha, descifraremos. Aplicando eso al total de paquete obtenemos la información que este keyloger / troyano es capaz de enviar:

01 01 01 01 01 00 18 00 30 00 68 08 06 80 73 69 64 ........0.h..€sid
3d 77 6f 77 6f 76 65 72 33 36 35 26 75 72 6c 3d 2f =wowover365&url=/
77 77 77 2e 77 6f 77 2d 65 75 72 6f 70 65 2e 63 6f www.wow-europe.co
6d 2f 6c 6f 67 69 6e 32 2f 6c 6f 67 69 6e 3f 73 65 m/login2/login?se
72 76 69 63 65 3d 68 74 74 70 73 25 33 41 25 32 46 rvice=https%3A%2F
25 32 46 77 77 77 2e 77 6f 77 2d 65 75 72 6f 70 65 %2Fwww.wow-europe
2e 63 6f 6d 25 32 46 61 63 63 6f 75 6e 74 25 32 46 .com%2Faccount%2F
25 33 42 6a 73 65 73 73 69 6f 6e 69 64 25 33 44 41 %3Bjsessionid%3DA
39 44 36 37 33 46 35 31 41 32 33 32 46 32 32 35 45 9D673F51A232F225E
35 34 39 32 45 46 36 39 31 41 30 37 42 46 2e 61 70 5492EF691A07BF.ap
70 30 38 5f 30 35 26 6c 6f 63 61 6c 65 3d 66 72 5f p08_05&locale=fr_
46 52 26 70 63 3d 43 65 72 62 65 72 6f 63 6c 69 65 FR&pc=Cerberoclie
6e 74 3b 31 37 32 2e 31 37 2e 31 2e 31 31 31 3b 58 nt;172.17.1.111;X
70 3b 45 2e 38 26 6f 74 68 65 72 3d 74 65 78 74 5b p;E.8&other=text[
75 73 65 72 6e 61 6d 65 5d 61 62 63 64 65 66 67 2f username]abcdefg/
....

Manda la url, el idioma de la maquina, versión de operativo, nombre de maquina ip así como los campos de usuario y contraseña capturados! :D Cuanta cosa y solo por visitar un inocente enlace en unos foros oficiales de un juego... y que encima no me habría salvado aunque no usara IE (ya que dispone de exploits para Firefox también)

Encima, para rematar el asunto, decidí subir el binario inicial a una web de análisis de malware online ¿resultado? Ayer tarde 13 de Diciembre, solo 4 motores de antivirus de 32 de los que disponía la web eran capaces de detectar “algo” por heurística en este bichito, es decir, que disponer de Antivirus no te salva y disponer de Firewall tampoco (si tiene permisos el Wow, Internet Explorer, Firefox,etc como es lógico, el troyanito este enviara información)

¿Cuál es la solución? Dos, sentido común y proteger las webs, aquellas que son visitadas por amplias multitudes mediante sistemas de análisis automáticos de aquellos enlaces colgados por los usuarios.

Victor Jurado.
S21sec Labs

(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login