Comenzamos lanzando un escaneo a la ip de la máquina con nmap y el parámetro -sS para hacer un primer escaneo sigilosos de todos los puertos abiertos.

 

nmap -sS -p- --min-rate 5000 -vvv -n -Pn 10.129.32.150 -oG allPorts

Vemos los puertos abiertos y lanzamos un segundo escaneo con nmap para que me muestre versiones y tecnologías que se están desplegando por detrás.

nmap -sCV -p22,80 10.129.32.150 -oN targeted

al hacer un curl de la máquina vemos que se esta haciendo un virtual hosting

Añado esta dirección al /etc/hosts

lanzo un script de enumeraciín http, pero no me muestra nada relevante

nmap --script http-enum -p80 10.129.32.150

lanzo un whatweb y reafirmo lo que he visto antes de que se está aplicando virtual hosting.

whatweb 10.129.32.150

Desde el navegador veo lo siguiente, acabo de subir una imagen png y me devuelve una url

puedo ver que me ha subido la imagen en formato jpeg , en el directorio de pilgrimage.htb/srunk/67db13863ab87.jpeg

Con nmap http-enum por el puerto 80 veo que me dice algo de git head, investigo por internet

lo busco también en hacktricks

Busco git-dumper en github y me clono este repositorio

Me clono este repositorio

Instalo Git-dumper

Tras leer el Readme que trae git-dumper busco por github y encuentro ImageMagick, le lo instalo

Sigop los paso que me dice, instalo exiftool

Pruebo con una imagen para comprobar que me funciona exiftool

Subo una imagen y me genera una url … aun que me la esta creando .jpeg la vulnerabilidad creo que también funciona con png

Veo que me ha creado una imagen, que es la misma

Instalo pngcrush

Lanzo el siguiente comando que me permitirá ver el contenido del /etc/hosts de mi maquina al procesar la imagen que subimos en la web pilgrimage.htb

pngcrush -text a "profile" "/etc/hosts"  67db2c844c63e.png

me ha creado ahora un archivo llamado pngout.png

Veo con exiftool que me ha cargado el contenido de mi /etc/hosts, en hexadecimal

Subo el archivo que me acaba de crear

Me la traigo a mi equipo con wget

Veo que tiene un contenido

le paso un xxd -p -r para pasar del formato a hexadecimal

Con el objetivo de “reversear” lo que me muestra y veo que es el contenido de mi /etc/host. Asi que tengo una manera de leer código de una maquina remota.

Voy a hacer este proceso en un directorio que he visto que es vulnerable a ejecución remota en /

leo el /etc/passwd de la máquina víctima y descubro un usuario llamado emily

Vuelvo a hacer el mismo proceso con el objetivo de leer otro directorio donde hay una base de datos y poder descubrir la contraseña de emily

Una vez dentro tengo la contraseña de emily y entro con ssh

No tengo permisos para entrar en el home de root

Pruebo capabilities, no tengo asi que me exporto el path del sistema

Busco permisos SUID, veo que tengo en /usr/bin

hago un ps -aux y veo que root esta ejecutando un archivo malware.sh

leo el contenido del script para enterder que hace, es el proceso que monitoriza la subida de imagenes, que después convertira en una url

Busco este exploit en github y encuentro WalkingPath y me lo clono

leo el contenido del walkingpath para ver que hace y parece que permite entrar como root usando el par de claves pública y privada, le hago un reverseo a las lineas de código del malware que estan ejecutando esta acción

Antes de ejecutar el comando, me creo un par de claves con ssh-keygen

Pongo el comando usando python3 walkingpath.py eligo ssh le paso la imagen.png y la clave id_rsa.pub

Antes de lanzarlo me ,monto un servidor con python que pongo en escucha

Desde mi equipo me conecto por ssh como root sin que me pida contraseña

Conclusión:

He podido ganar acceso a root con ssh,desde mi equipo local por que me he generado con keygen un par de claves, publica y privada. Con el parámetro -i le estoy indicando identity_file, es decir que le estoy certificando con mi clave privada, quien soy (root en este caso). Al hacerlo, el protocolo ssh ya no me pide el password.

Categorías: Writeups

0 comentarios

Deja una respuesta

Marcador de posición del avatar