CTF Smishing Intermediate

URL Download CTF = https://mega.nz/file/aMETwSKY#bRd1poVd5L-rN9bHA25z-gYL2rpVz5ahjirrq6WAczU

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip smishing.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

bash auto_run.sh smishing.tar

Info:

██████╗ ██╗    ██╗███╗   ██╗██████╗ ██████╗ ██╗
██╔══██╗██║    ██║████╗  ██║╚════██╗██╔══██╗██║
██████╔╝██║ █╗ ██║██╔██╗ ██║ █████╔╝██║  ██║██║
██╔═══╝ ██║███╗██║██║╚██╗██║ ╚═══██╗██║  ██║╚═╝
██║     ╚███╔███╔╝██║ ╚████║██████╔╝██████╔╝██╗
╚═╝      ╚══╝╚══╝ ╚═╝  ╚═══╝╚═════╝ ╚═════╝ ╚═╝

          ==                           
         @+:@ @##@                     
          @++:-----+@ @@#+:----:+#     
           #-+-----:+:---------:       
            *::-----++-----::::#       
             ::------+:--------:       
             #-+------+:-::-----#@     
              *::+=@@#++-------::@     
              @+=     @++::+#@@@#*#    
               #-@                     
                *+#++@                 
               +-:::+-@                
               :-:+:::+                
              @+::*::::                
             *::++-::*                 
          =:--:-:++ @-#                
      #*:---:--++@   @@                
      @::-:--++*                       
       @::-:++#                        
         *++*                          

 :: Plataforma de máquinas vulnerables ::
 :: Desarrollado por Pwn3d! y Dockerlabs - creado por @d1se0 ::

 █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
 █           FLAG{Pwn3d!_is_awesome!}            █
 █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█


[✔] bc ya está instalado.

[✔] Docker ya está instalado
[!] Limpiando previos contenedores e imágenes
[✔] Cargando la máquina virtual      
[✔] Activando máquina virtual      

[✔] Máquina activa. Dirección IP: 172.17.0.2
[!] Presiona Ctrl+C para limpiar y salir

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

Info:

Veremos varias cosas interesantes, entre ellas el puerto FTP y el 80, si entramos por el FTP de forma anonima ya que vemos que nos deja, veremos lo siguiente:

Dejamos la contraseña en blanco y si listamos veremos esto:

Nos vamos a descargar la note.txt para ver que pone.

note.txt

Veremos que no hay gran informacion simplemente alguien contrato unos servicios de un hacker, para poder ver la estafa que hay montada, si entramos en el puerto 80 veremos que hay una pagina web simulando que es Orange por lo que vemos es la pagina de los estafadores, como no vemos gran cosa, vamos a realizar un poco de fuzzing.

Gobuster

Info:

Veremos muchas cosas, pero entre ellas hay algo muy interesante llamado page.zip, vamos a ver que contiene.

Ahora si lo descomprimimos veremos la siguiente estructura de carpetas:

Info:

Veremos que es la estructura de la pagina entera, pero vemos un archivo muy interesante llamado apiTelegramBot.py si vemos que hace por dentro, veremos lo siguiente:

Veremos que los estafadores tienen un bot de Telegram con el que todas las tarjetas de credito que se depositan en la pagina se las van enviando con dicho bot al grupo de Telegram, si vemos esta estableciendo la API del Bot y el Chat ID del grupo de Telegram, por lo que vamos añadir dicho dominio que pone api.telegram.org al archivo hosts para que podamos utilizar dicho bot para obtener los mensajes que se vayan enviando desde dicho grupo, a ver si descubrimos algo interesante:

Conexión API Telegram Bot

Una vez que lo guardemos vamos a entrar por dicho dominio poniendo lo siguiente para realizar la conexion con el bot y ver si sigue funcionando.

Info:

NOTA: Si por lo que sea te da un 500 error significa que hay que esperar un poco mas hasta que el servicio se levante del todo, para que funcione.

Vemos que no nos aparece nada asi interesante y es por que cuando se envie un mensaje aparecera durante un tiempo corto en dicho chat update, por lo que vamos a montarnos un script para ir refrescando cada 1 segundo e ir obteniendo cualquier chat que se hable.

fetch_telegram_updates.py

Ahora lo ejecutaremos de esta forma:

Info:

Despues de un rato esperando, veremos que ya se van repitiendo, por lo que suponemos que no hay mas mensajes interesantes, vamos a cerrarlo con Ctrl+C y si leemos los mensajes, veremos varias cosas interesantes.

Por lo que vemos esta diciendo que hay otro dominio llamado staff.login en el que tiene un login para ellos, vamos añadirlo a nuestro archivo hosts y entrar dentro de el.

Lo guardamos y entraremos a dicho dominio a ver si carga.

Escalate user neopro (SMB)

Info:

Veremos que si hay un login por lo que vamos a probar las credenciales que hemos visto anteriormente a ver si sirven.

Metiendo dichas credenciales, veremos que si nos deja entrar, si nos vamos al apartado Perfil veremos una foto de la torre eiffel y despues una captura de una configuracion de SMB:

Vemos que esta el usuario neopro como usuario samba, pero no tenemos ninguna contraseña, tambien vemos que esta un magic script llamado neopro.sh por lo que vamos a crear el archivo para tenerlo ya preparado.

neopro.sh

Lo guardamos y vamos a probar a utilizar como contraseña para conectarnos al recurso compartido llamado NeoProShare la palabra torre eiffel ya que hay una foto de la misma y podria ser dicha contraseña.

Metemos como contraseña torre eiffel...

Veremos que estaremos dentro, acordemonos de que hay un magic script, no veremos ningun archivo llamado neopro.sh, por lo que podemos aprovechar esta vulnerabilidad ya que ahora si subimos un archivo llamado de la misma forma se va a ejecutar, por lo que vamos a ponernos a la escucha.

Y ahora vamos a subirlo de esta forma para que se ejecute.

Ahora si volvemos a donde tenemos la escucha, veremos lo siguiente:

Veremos que ha funcionado, por lo que vamos a sanitizar la shell.

Sanitización de shell (TTY)

Escalate user trinity

Si listamos un poco el sistema, veremos un archivo interesante en la siguiente ruta:

Info:

Veremos un users.php, vamos a ver que contiene dentro.

Veremos unas credenciales de un usuario llamado trinity si listamos los usuarios a nivel local veremos que tambien esta creado y existe, por lo que vamos a probar esa contraseña para dicho usuario a ver si fuera la misma.

Metemos como contraseña SuperP@ssw0rd!-#S3crt4ImpossibleD3D3c0d1f1c4r...

Con esto veremos que estaremos dentro, por lo que leeremos la flag del usuario.

user.txt

Escalate Privileges

Si listamos la /home del usuario trinity veremos el siguiente archivo llamado secure.sh.

Si hacemos sudo -l veremos lo siguiente:

Veremos que podemos ejecutar el archivo como el usuario root, por lo que vamos a ver que hace por dentro dicho archivo.

Veremos que esta validando si metemos bien un numero o no, pero vemos una vulnerabilidad bastante interesante, y es en la comparacion logica de los numero introducidos por el usuario y con el que lo compara, no vemos que este sanitizando la entrada a que sea solamente un numero, por lo que podremos meter lo que queramos, vamos a probar a utilizar una inyeccion de comandos a nivel de bash de esta forma:

Ahora cuando nos pida el numero, vamos a meter lo siguiente:

Info:

Y con esto veremos que ya seremos root, por lo que vamos a leer la flag del usuario root.

root.txt

Last updated