Solución al segundo Reto Como dijimos anteriormente, el reto de este mes consiste en 4 puntos: 1. Escaneo de vulnerabilidades 2. Vulnerabilidad en LILO, creación de usuarios 3. Uso de John 4. Uso de un keylogger 1. Escaneo de vulnerabilidades Para este punto vamos a hacer uso de Nessus. Lo primero que tenemos que hacer es, como ya dijimos en el pasado artículo, instalar con: # aptitude install nessus nessusd Una vez instalado seguimos los siguientes pasos: 1. Crear el certificado y el usuario: # nessus-mkcert # nessus-adduser 2. Con el certificado y el usuario creados arrancamos el servidor nessusd. # nessusd 3. Ahora arrancamos el cliente y lo configuramos según las instrucciones dadas en el artículo para luego lanzar el escaneo. # nessus Julio Gómez Agustín Pérez María del Mar Castilla Solución al segundo Reto Figura 1. Ejemplo de escaneo 2. Vulnerabilidad en LILO, creación de usuarios Ahora vamos a mostrar como hacer uso de una vulnerabilidad de LILO para hacernos con una cuenta de root y crear nuevos usuarios. No es una vulnerabilidad muy grave ya que para hacer uso de ella debemos tener acceso físico al host. Para hacer uso de esta vulnerabilidad solo tenemos que pulsar “control + x” y luego escribimos “linux single”. Tras esto tendremos a nuestra disposición una consola con privilegios de root, sin haber usado contraseña alguna. Julio Gómez Agustín Pérez María del Mar Castilla Solución al segundo Reto Figura 2. Gestor de arranque LILO Una vez ha arrancado el sistema podemos comprobar que las contraseñas están almacenadas en el fichero “/etc/passwd” con el comando: # more /etc/passwd Este fichero puede leerlo cualquier usuario, esto es un grave problema de seguridad que en nuestro caso podemos solventar pasando las contraseñas al fichero “/etc/shadow” el cual solo puede leer el root haciendo uso del comando: # pwconv Una vez hecho esto pasamos a crear nuevos usuarios aprovechando que tenemos privilegios de superusuario con los comandos: Julio Gómez Agustín Pérez María del Mar Castilla Solución al segundo Reto # adduser usuario # passwd usuario A modo de ejemplo podemos insertar la siguiente relación de usuarios con distinta complejidad en las contraseñas: Usuario Contraseña gato 52321 perro orrep riete 5riete2 laboratorio laboratorio15 myadelis myadelis bardock 27a32z?9 tipo hola00?adios32? Tabla 1.- Relación de usuarios - contraseñas Tras introducir las contraseñas reiniciaremos con # reboot y veremos que efectivamente hemos creado las nuevas cuentas con éxito sin hacer uso de la contraseña del root. 3. Uso de John Una vez que hemos creado los usuarios y sus contraseñas con distinto nivel de seguridad que mejor que ponerlas a prueba con John. Para esto lo primero que tenemos que hacer es instalar John tal y como explicamos en el articulo del mes pasado. Julio Gómez Agustín Pérez María del Mar Castilla Solución al segundo Reto Una vez lo tenemos instalado nos encontramos con un problema. ¿Cómo nos hacemos con el fichero de contraseñas? Una opción bastante viable y que ya conocemos es hacer uso del mismo exploit que usamos para solucionar el primer reto. $ ./exploit –t 19 –d IP_Victima Usando este exploit ya tenemos acceso a las contraseñas del sistema, ya que aunque hemos migrado las contraseñas al fichero “/etc/shadow” para una mayor seguridad al tener privilegios de root de poco sirve esto. Una forma muy sencilla de hacernos con el fichero de contraseñas es mostrar el fichero “/etc/shadow” haciendo uso del exploit para posteriormente copiarlo a un editor de texto y guardarlo en el host del atacante. Para mostrar el fichero podemos usar: # less /etc/shadow Y una vez que hemos guardado el fichero en nuestro ordenador no tenemos mas que ejecutar (estando en la carpeta donde instalamos john): # ./john rutaFicheroShadowCopiado Julio Gómez Agustín Pérez María del Mar Castilla Solución al segundo Reto Figura 3. Contraseñas sacadas con john 4. Uso de un keylogger A continuación mostramos un ejemplo del uso de un keylogger. Vamos a usar lkl. Podemos instalarlo y lanzarlo haciendo uso de los comandos: # aptitude install lkl # lkl –k /usr/share/lkl/keymaps/us_km –o ficheroLog –l Julio Gómez Agustín Pérez María del Mar Castilla Solución al segundo Reto Pero un atacante no actuaría así, sino que buscaría la forma de que este se ejecutara cada vez que iniciáramos el sistema y así poder capturar nuestras contraseñas. Para esto un método bastante sencillo consiste en, tras instalar el keylogger, escribir la línea lkl –k /usr/share/lkl/keymaps/us_km –o ficheroLog –l & en el script de arranque “/etc/rc.local” Tras hacer esto podemos probar si funciona reiniciando el sistema y autentificarnos. Después una opción que tendría el atacante seria acceder al host de la victima, por ejemplo, a través de una sesión Telnet y recuperar el fichero de log de lkl, en el cual estarán el usuario y la contraseña que introdujimos para autentificarnos. Puedes ver una animación de la solución al reto con mas detalle en la dirección http://www.adminso.es/todolinux Y recuerda el objetivo es aprender y si se da el caso saber como defenderse, pero nunca atacar para demostrar que sabes un poco más. ¡Hasta Pronto! Julio Gómez Agustín Pérez María del Mar Castilla
© Copyright 2024