Solución al segundo Reto

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