# HTB | Pilgrimage

lanzamos un nmap -sS para hacer un primer escaneo sigilosos de todos los puertos abiertos.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742679914864/d38bf4e2-9043-4fe1-9968-10cd38ff3b37.png align="left")

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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680029222/f6ffef00-f1b1-46e8-94b0-9cb482b92eb4.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680144190/9ce587d0-bdc8-429d-a951-ea673e502c78.png align="left")

Añado el host al /etc/hosts

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680229336/2a7163d0-42ab-4098-b606-be91de3991d6.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680270875/7a032627-9f16-4d97-bda4-9c20fa61db49.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680340083/454a2b76-2ad1-49b1-b3c5-0a7fb431aec3.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680453001/685fc2d5-dd6d-4170-bb18-05d216890600.png align="left")

Esta url contiene la misma imagen, se ha cambiado el nombre

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680544459/d3f4b143-035a-4ac2-8027-41c7aac55589.png align="left")

En el anterior escaneo de nmap he visto que me dice algo de Git, lo investigo por internet

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680606949/cfc14ef0-be86-48e4-956a-64caac83f96e.png align="left")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680684482/7952bf36-cf8a-4318-a850-b0472f59469f.png align="left")

lo busco también en hacktricks

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680717415/9430800b-73e8-467b-9ca8-1fabc6517f34.png align="left")

Busco git-dumper en github y me clono este repositorio

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680796205/47f76063-9c84-4d00-9e58-648b3991af47.png align="left")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680858994/ef826ede-7cf0-4b56-a4ee-fe446418918c.png align="left")

lnstalo Git-dumper

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742680892894/7fc0856b-9b4e-490e-ad39-1b25ab7890e5.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681153410/adee21d4-a322-4933-ac4f-34379b1d91dc.png align="left")

sigo los pasos y me instalo las herramientas como exiftool

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681231003/ac4db46b-9b02-4771-83b0-f670cd9baa55.png align="left")

Pruebo con una imagen para comprobar que me funciona exiftool

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681253398/b5fda18e-5b5f-4453-a530-5f0330b3bf1a.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681344610/77c01a8a-62c6-4722-9531-1b9a99a360cc.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681453006/38d6d615-7fe9-4257-b4d4-750f42d3b9db.png align="left")

instalo pngcrush

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681487338/f854aaba-e9c6-4271-baaf-395eea79d600.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681589431/60bda467-02c2-4f08-b6fd-bce3fe7ff376.png align="left")

me ha creado ahora un archivo llamado pngout.png

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681693567/9a2b67f9-1708-44db-b3a8-6231a792cc1c.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681753605/c254a034-ce38-4cee-a96b-13d518d45b7f.png align="left")

Subo el archivo que me acaba de crear

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681832468/5f4fb87d-f935-4250-9d3a-076261c61bda.png align="left")

Me la traigo a mi equipo con wget

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681925146/0bc368fc-87dc-4afd-8e58-89543b067b84.png align="left")

Veo que tiene un contenido

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742681971899/5a27c426-4c3e-4765-9305-d3a70679f08e.png align="left")

le paso un xxd -p -r

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682027120/41d80aec-16d7-4706-9537-752cf8d4bb62.png align="left")

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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682081661/f6ca365c-621a-4663-aa2a-8fc93d645fa6.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682271092/bc2d8459-5f27-4f65-a0a2-96ab0c0fe877.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682337037/ed3e0ee7-8c18-4ea4-bb9e-efa65de89b16.png align="left")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682438125/7397a6c0-9bf3-486b-9623-8e0250316807.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682471778/98bad9e3-47fb-4ac0-bcdf-35a6c59b8084.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682562097/9747510f-71a3-47e2-805a-8636a8df1701.png align="left")

No tengo permisos para entrar en el home de root

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682747506/3cb1e979-5901-49af-953c-f20b4ce57c6e.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682785962/d22a8943-4ed6-48f7-8ec7-f2f408c5bbf2.png align="left")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682937028/10ee4377-16cc-4ec0-b3b0-f709d31fd9d9.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682831654/8fee50ef-30ef-4e45-9874-74dfbd9826a5.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742682973273/c4c1df8f-a345-4869-bbed-fa4232688054.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683032689/c8a07062-f9e6-4897-bc11-01d15f4d0a65.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683124212/dd870a4a-af0c-49c3-a264-7b0b65028b66.png align="left")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683197847/3278ea95-e293-4374-90f0-7a990139968c.png align="left")

leo el contenido del walkingpath para ver que hace y parece que permite entrar como root usando el par de claves publica y privada, le hago un reverseo a las lineas de codigo del malware que estan ejecutando esta accion

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683241541/ae270534-0239-49b1-bd63-7ff2a43f74ca.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683260573/342e30be-fa89-4a20-a98f-2efc900e414e.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683285234/13a1dba6-4180-45fa-a59f-78e52b425b8c.png align="left")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683305960/95a66a78-a104-4854-8bfc-2c63336b4853.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742683454691/3fe43682-0a43-48a1-b385-d2ad96f910e8.png align="left")

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.
