ACTUALIZACIÓN: El texto aqui posteado está escrito en un lenguaje muy coloquial y sin florituras para que todo el mundo, incluso los que no tienen ni papa, sepan más o menos de que hablo. Para el que quiera rigurosidad (yo le llamo floritura) puede leer el comentario de Felipe Alfaro.
Bueno, el título es un poco peliculero ya que no es ni mucho menos intrusión, si no más bien errores comunes que cometen los webmasters y dichos errores son las principales puertas de acceso a los portales que administran. Lo que aqui explico se podria hacer con unos conocimientos muy muy básicos, asi que casi cualquiera habría sido capaz de entrar a la administración de uno de los blogs más visitados de la blogosfera.
El caso en cuestión es referente al famosísimo blog de mi amigo Javi Moya y de como he logrado acceder al panel de administración de su blog. Antes de nada decir que antes de publicar este post me puse en contacto con Javi Moya para solucionar el problema. Así que este texto será solo informativo y de curiosidad.
En la captura de la derecha, podemos ver el panel de administración del blog de Javi, como prueba de haber estado alli. Aunque tranquilos, no le cambié nada ni husmeé ni nada por el estilo. Nada más tener el acceso se lo comenté a Javi porque si lo he logrado yo, alguien con no tan buenas intenciones ha podido o podría hacerlo.
Bien, entremos en materia. En la mayoría de portales web con sistema de administración, la contraseña se guarda en la base de datos encriptada en MD5 (de 32 bits de numeros y letras, es decir, 32 caracteres 128 bits representado en 32 digitos en hexadecimal). Entonces en la base de datos podemos encontrar que cada usuario tiene la pareja nombre y contraseña en md5
admin - e07186fbff6107d0274af02b8b930b65
El problema reside en que no se puede hacer la función inversa, es decir, a partir del MD5, sacar la contraseña. Solo se puede hacer por fuerza bruta, es decir, probando todas las combinaciones posibles de dichos caracteres. De ahi el principal problema de los webmaster.
Situemonos. Durante la migración de Javi a su nuevo host (felicidades por ello Javi), Javi no se dió cuenta y puso el backup (copia de ‘porsiaca’) de su base de datos al descubierto. Solo fue durante un dia creo. Es posible que nadie se percatase, pero yo como soy muy curioso me di cuenta. Primer error. Las bases de datos pueden contener datos muy importantes que en manos listas pueden ser revelados. En dicha base de datos estaba el MD5 de la contraseña de Javi y me decidí a probar que tal era.
Como dije antes, la robusted del MD5 reside en la longitud y caracteres de la contraseña. Ejemplo, para adivinar una contraseña de 8 numeros (tipo dni) solo se tardan unos 2 minutos en romper la clave a partir de su MD5 (solo se combinan 10 elementos o números, del 0 al 9). En cambio, para adivinar la misma contraseña, pero con la letra del dni en mayúscula se pueden tardar meses ya que ahora hay que combinar los 10 números y las 29 mayúsculas del alfabeto. 39 en total. Segundo error. La contraseña de Javi era medianamente robusta ya que contenia numeros y letras minúsculas, pero era muy corta, lo que facilitaba el ataque. Esto era el hash MD5 de Javi y el tiempo del ataque. (Las X son para guardar algo de privacidad)
Hash MD5 - X5c4Xc889c4d0286X281327XX5ca6a0X
Process started - 2006-03-01 09:38:01
Process finished - 2006-03-01 11:17:40
Password - XXXXXXXXXXX
En algo menos de dos horas se pudo sacar la contraseña. Resultado, acceso garantizado al panel del blog de Javi. ¿Y esto es un problema? Bueno, lo es. Se podrían borrar post, poner noticias de cualquier tipo aunque todo esto se resolvería con un backup. Pero yendo (se escribe asi no?) mas allá se podría llegar a obtener la cuenta ftp de host o de las bases de datos (pudiendo hacer inyecciones SQL), subir alguna shell y en el peor de los casos rootear el server si este no estuviera actualizado, consiguiendo que todo tu trabajo fuera a parar a alguien no deseado o incluso borrado. Todo un peligro en algunas manos.
Conclusiones y consejos
Para todos los webmastes o bloggers un par de consejillos. Sobre todo no publiqueis ni dejeis por ahi vuestras bases de datos o backups ya que es un riesgo tanto para vosotros como para los usuarios ya que revelareis muchos datos de ellos. Y sobre todo usar contraseñas más robustas, es decir, al ser posible de más de 10 caracteres incluyendo en ellos números, minúsculas, mayúsculas y si es posible, algún carácter especial. Con eso seguro que aun teniendo la base de datos, puedan lograr la contraseña y hacer daño en el blog.
Nunca pasa nada, hasta que te pasa. Y casi siempre pasa por un fallo o despiste humano.