sábado, 31 de julio de 2010

Leviathan wargame level1 y level2

Hace un par de meses leyendo otro blog, leí sobre la existencia de intruder.net así como de los wargames que tiene.
Empecé por el primero, también el más sencillo. Y aunque estuve unos diez minutillos, no llegué a pasarlo entero, pero bueno, vamos paso a paso. Éste es "Leviathan":

Access:
ssh:leviathan.intruded.net
port:10101
username:level1
password:leviathan

Consiste en que dado un usuario, tenemos que ir escalando privilegios hasta el usuario level8, así que una vez nos conectamos, podemos ver un mensaje de bienvenida. En éste, se nos comenta que la mayoría de los niveles, los podemos encontrar en /wargame, así como que /tmp es "writeable". Pero si probamos, vemos que no es "readable", al menos no por nosotros.

Si se accede a /wargame podemos observar que existen unos cuantos archivos con el bit de SUID actio, por lo que pueden ejecutarse con permisos de otros usuarios "mayores".


Level 1:
En el caso de level1, no existe archivo en /wargame, así que hay que mirar en su propio home. Se puede ver que hay un archivo .password que contiene el password del nivel 1, pero esta no nos sirve, puesto que ya la tenemos.
Observamos que existe un directorio .backup, que dentro tiene un archivo bookmarks.html. Podemos abrirlo y mirar dentro a ver si nos puede dar alguna pista de la contraseña para el nivel 2, aunque haciendo una simple búsqueda de palabras podemos evitar leerlo entero (1400 lineas no es para menos!):P


grep intruded bookmarks.html
o
grep pass bookmarks.html


El resultado es una url donde si accedemos podemos ver la contraseña para el siguiente nivel.

El siguiente paso:
level1@leviathan:~/.backup$ su level2
Password:
level2@leviathan:/home/level1/.backup$

Level 2:
Como vemos, estamos como usuario "level2", en el home de level1. En este caso si que existe ejecutable en /wargame, así que.. vamos para allí.

Podemos ver, que el archivo que podemos ejecutar, y que nos dará privilegios de "level3" es el ejecutable "check".

level2@leviathan:/wargame$ ./check
password: prueba
Wrong password, Good Bye ...

Por lo que parece, está comparando la contraseña que nosotros le proporcionamos de alguna manera, y en caso de que sea válida nos dará acceso al siguiente nivel.
Así que, utilizaremos "ltrace" para ver las llamadas que hace y ver si podemos extraer algo de información que nos llegue a mostrar como obtener la contraseña.

Como se puede observar la imagen, hemos introducido como contraseña "prueba", y vemos que luego realiza una comparación con strcmp, para ver si las 3 primeras letras de nuestra contraseña, son "sex".

Así que en caso de introducir alguna palabra que empiece por sex, ya ejecutamos el /bin/sh que nos proporciona acceso a level3:

level2@leviathan:/wargame$ ./check
password: sex
sh-3.1$ id
uid=1001(level2) gid=1001(level2) euid=1002(level3) groups=1001(level2)
sh-3.1$

Actualización:

Faltaba una cosa, acceder al home de level3 y ver su contraseña para poder hacer el "su" ;)

sh-3.1$ cd /home/level3
sh-3.1$ ls
sh-3.1$ ls -lah
total 24K
drwx------ 2 level3 level3 4.0K 2008-03-26 02:08 .
drwxr-xr-x 10 root root 4.0K 2008-03-26 01:55 ..
-rw-r--r-- 1 root root 0 2008-03-26 02:08 .bash_history
-rw-r--r-- 1 root root 220 2008-03-26 01:53 .bash_logout
-rw-r--r-- 1 root root 414 2008-03-26 01:53 .bash_profile
-rw-r--r-- 1 root root 2.2K 2008-03-26 01:53 .bashrc
-rw-r--r-- 1 root root 9 2008-03-26 01:54 .passwd
sh-3.1$ cat .passwd

Eso sí, la contraseña no la pongo!

No hay comentarios:

Publicar un comentario