Quebrando la seguridad …

Consegui acceso a un servidor hosting de una empresa cuyo nombre no lo mencionare, gracias a ese acceso me pude percatar, que el servidor donde estaba alojado el sitio contaba con una vaga, por no decir nula, seguridad en cuanto a proteccion de datos de sus clientes y proteccion del servidor en si. Con unos cuantos scripts en php logre ejecutar codigos arbitrarios que, de alguna forma, me entregaban el poder del sistema. Logre obtener varios datos importante sobre el servidor, distribucion, kernel, version de los paquetes, estructura de directorios, configuracion de servicios y lista de usuarios.

Intente ingresar al home de cada usuarios a ver si podia encontrar informacion confidencial que me sirviera para poder tomar el control total del servidor, me di cuenta que podia listar el directorio /home recurvisamente sin ninguna restriccion, usuario por usuario, directorio por directorio … En ese momento los usuarios eran poco y muy vulnerables. Todo esto lo hacia tras un script php, ejecutado desde la cuenta con la que pude acceder al servidor. Luego de eso, liste el directorio /etc y me percate que el archivo shadow y passwd estaban con permisos de lectura para cualquier usuario y entonces, descarge el shadow con las claves encriptadas de cada usuario (clientes de la empresa). Estaba programando una utilidad en C para crackear esas password encriptadas en md5 por fuerza bruta, pero me di cuenta que ya existia una utilidad asi, entonces abandone esa idea y use esa utilidad que lo que hacia, no era exactamente decifrar el password, sino que encriptaba digitos para luego comprobarlo con la encriptacion original, si coinciden ¡bingo!. Fuerza bruta quiere decir que va probando digito por digito (ej: a, aa, aaa, aaaa, b, ab, aab, etc…). Para apurar un poco este proceso, que podia tardar dias, escribi una lista de posibles palabras o numeros para que vaya probando, dentro de esa lista estaba la numeracion consecutiva desde el uno hasta el 6 y ¡sorpresa! TODOS los clientes tenian una cuenta en el sistema con acceso ssh con la esa clave. Cuando supe esto pense “que porqueria de seguridad …” y me di cuenta de inmediato que no me iva a costar nada tomar el control del servidor. Decidi dar a conocer este fallo de seguridad a los administradores del servidor, dejandoles un mensaje en el directorio donde se alojaba la pagina principal de la empresa y enviandole un email con el link para que lean ese mensaje, poco tiempo despues el mensaje desaparece, pero el agujero de seguridad aun existia pero cuando intente seguir intruseando los directorios de los clientes me di cuenta que habian sido restringidos, al intentar listar el directorio /home me decia “Acceso negado”, asi tambien al intentar listar el home de cada usuario, con esto me di cuenta que, quizas, leyeron el mensaje e intentaron solucionar el problema entonces, deje de molestar y entrar al sistema. Pasaron tres meses y volvi a verificar si existian fallos de seguridad y me di cuenta que si, aun habian entonces nuevamente, me aproveche. Con un script un poco mas evolucionado que el de antes (php) ejecute un script en perl que escuchaba un puerto a mi eleccion y emulaba una terminal en bash, como el servidor no tenia proteccion no me costo nada abrir el puerto, en este caso el puerto 31337, para conectarme via telnet. Deje corriendo el script perl (backdor) en 3 puertos distintos (1337, 31337, 8888) y estuvo corriendo minimo tres dias, sin que los administradores se dieron cuenta. Rapidamente pense … El script lo ejecute desde php entonces, el que ejecuta el script perl es el usuario nobody, verifique mi teoria ingresando via telnet y escribiendo el comando para saber quien era yo (whoami) y efectivamente, me devolvio nobody y volvi a pensar, rapidamente, si Apache puede leer las paginas de los usuarios, eso quiere decir que como nobody puedo ver el contenido de los public_html perteneciente a cada usuario. Esribi un script en bash que me recorra todos los public_html de los usuarios y me vaya guardando la salida en un arhivo, asi poder saber que cosas hay dentro de cada usuario, el archivo parecia eterno, pues los clientes habian aumentado mucho. La mayoria de estos nuevos clientes tambien tenian la clave.

En el archivo de salida que me creo mi script en bash, pude ver que muchos usuarios tenian claves en texto plano, ya sean de bases de datos, emails o de su propia cuenta, habian tambien muchos archivos de extension .inc que, supuestamente, nadie debe saber que existen. Me di cuenta que existia un usuario llamado igual que el nombre de la empresa y que en ese usuario se alojaba la pagina de la empresa, asi que vi los archivos que tenia y haciendo un cat a uno de esos tantos ficheros inc decia:
mysql_connect(“root”, ….. “pass”);
Lo primero que hice, fue verificarlo, pues ingrese a la base de datos como usaurio root, es decir, con acceso a la base de datos de todos sus clientes y pues, claro, era cierto ya era dueño de la base de datos. Comence a ver cada base de datos y encontre la de un foro que guardaba las contraseñas en texto plano, junto con los emails y nombres de usuarios. Rapidamente diseñe un script en php que se conectara a esa base de datos y me lo imprimiera en pantalla, los datos que me interesaban era el nombre de usuario, email y contraseña. Como esta base era de un foro, la contraseña no tenia mucho que ver con el email, ya que era la clave para ingresar al foro no a su correo. Pero viendo la lista me di cuenta que las claves eran demasiado “obvias” como para ponerlas en un foro y parecian password de email, entonces relacione los correos de cada uno con la clave que habia puesto en el foro. De una lista de casi 200 usuarios, 150 claves correspondian al correo. Segui intruseando la base de datos y entre base y base, logre obtener una lista de casi 3500 usuarios con su respectiva clave, de los cuales, al menos 2500 claves corresponden a los correos, la sorpresa fua cuando me puse a pensar el tipo de claves que la gente usa para sus correos… Numeros de telefonos, nombres, fechas de nacimiento o rut. Guarde la lista y segui investigando, llegue a la base de datos con la informacion de todos sus clientes como el rut, numero de telefono, nombre completo, direccion, etc. Guarde esta lista y segui investigando … Encontre una base de datos con llamadas y envios de mensajes de texto (sms) para encuestas por opciones, una base de datos llamada granja_vip y otro granjeras, que almacenaban informacion sobre quien habia votado por que opcion, cuando voto, etc.
Entre tantas acciones, se me ocurre ver los usuarios que estaban actualmente en linea, conectados al servidor, y sale que estaba root (administrador) conectado y me asuste, pero dije … a ver si se da cuenta que estoy dentro de su sistema. Fue un momento emocionante y desafiante, estar frente al dueño del servidor en el que estoy metido, y para mi sorpresa, ni se percato que estaba dentro y se desconecto … Pues, segui en lo mio … Minutos despues, vuelve a entrar y sigue sin hacer nada, pues no encuentro nada mejor que escribir un script en bash, que envie casi 300 emails al administrador diciendo que estoy dentro de su sistema y pues, el administrador, no hizo nada …
Pues desde ese momento, mi teoria que el administrador no tenia idea sobre seguridad ni mucho menos de como administrar un servidor era cada vez mas cierta, entonces deje de preocuparme por los administradores y segui en lo mio. Intruseando en las bases de datos encontre los nombres, apodos y direcciones de correo electronico de todos los de la empresa, entonces empece poco a poco a investigar de cada uno. Hasta el momento tenia en mi poder:
– Cerca de 2500 correos electronicos con su respectiva contraseña
– Las claves de los clientes del servidor
– Informacion de los clientes del servidor
– Informacion de los integrantes de la empresa
– Acceso administrativo a la base de datos general
Ya sabia todo lo que habia en los public_html de cada usuario, lo que me habia servido para obtener mucha informacion. Ahora faltaba ingresar al home de cada usuario a investigar, pero tenia el acceso negado. Intruseando un poco mas, dentro de la lista de usuarios habia uno que correspondia a uno de los dueños de la empresa, cuya contrasela eran numeros consecutivos desde el uno al seis. Ingrese via ssh a ese usuario y dentro de la cuenta, habia un directorio llamado backup donde a simple vista, pense de inmediato “Los respaldos…” ingrese y claro, estaban los respaldos de los directorios de todos sus clientes. Pense astutamente, si no tengo acceso a su directorio, pero tengo su respaldo … ¿Que hago? Pues descomprimi cada respaldo dentro del directorio y entre a ver que tenian, era lo mismo que estar en el directorio real del usuario. Para investigarlo con mas calma, comprimi los respaldos y los descarge. Hasta el momento ya tenia el control total de todos los clientes, conociendo todos los datos para poder hacer con sus cuentas, lo que yo quiera.

Continuara …

9 comentarios

  1. nice…
    falla humana…
    nada mas que eso, la causa de gran parte de nuestros problemas…
    falla humana…
    saludos ^^…

  2. jajaja
    todavia recuerdo cuando
    llegaste con esa historia
    a la U compare puta extraño
    esos dias pero donde estudio
    ahora te enseñan por lo menos xD
    pa algun dia ser todo un zerialipliz
    eaeaea
    ia compare gran historia ta weno la info
    de APPY me rei demasiado xD
    ojala salgan mas de sus historias.

  3. exelente historia men, pero te mandere proximamente un video con le que seguramente te emicionaras… me meti en una aerolinea de vuelo de noruega accedi al gps de las aviones lo que me mostraba en pantala ne tiempo real todas las avionesvolando por noruega…

    ahi hableremos … algun dia men. saludos

  4. HOOOOLA ksha…

    suponemos que eres tu ….

    no conozco otro KSHA…jajajaj

    cuando pirateamos la nasa denuevo?????

    pd: ven a terminar la carrera weon.

    jaquer……

    saludos.

  5. jajaja me gusto la historia, la lei enterita 😀

    se espera el final de la pelicula…

    saludos

  6. Tenian razón! Aca son todos jaunkers :-O

  7. Buena HIstoria y tecncas Zerial
    Saludos

  8. que buena history men!! consulta.. se pueden leer los sms de un numero en particular de una emp. muy clara. si sabes algo me contás. Gracias

  9. @angel: No se si sea posible leer los sms de un numero ajeno

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.