CTF LFI.elf Easy

URL Download CTF = https://drive.google.com/file/d/11bz5RKPRZTrsY79R1VfRodKUhUhWgEJ7/view?usp=sharing

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 lfi.elf.zip

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

bash auto_run.sh lfi.elf.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:

Por lo que vemos hay una pagina web, entrando en ella vemos muchas cosas e informacion innecesaria, pero a parte de en algunas partes decirlos lo que hace un LFI (Local File Inclusion) tambien lo pone en el propio nombre de la maquina, por lo que tiraremos por ahi probando suerte con el index.php.

Pero antes si hacemos una busqueda de direcotios.

Gobuster

Info:

Como dije veremos varias cosas, pero entre todas las que mas atrae es el directorio llamado /secret.txt.

Si nos metemos dentro veremos lo siguiente.

Por lo que nos da una pista de que busquemos, asi que ahora si, buscaremos por el index.php si hubiera algun parametro vulnerable.

FUZZ

Info:

Vemos que hay un parametro llamado search que es vulnerable a ello, por lo que haremos lo siguiente.

LFI (Local File Inclusion)

Si en la URL ponemos lo siguiente veremos el archivo passwd.

Info:

Por lo que vemos lo saca bien, asi que vamos a utilizar wrappers en este LFI para podernos hacer un parametro llamado CMD y asi poder ejecutar comando para obtener una shell.

Wrapper con LFI

URL_Script = https://github.com/synacktiv/php_filter_chains_oracle_exploit/blob/main/filters_chain_oracle_exploit.py

Si queremos por ejemplo crear un parametro llamado cmd que ejecute cualquier comando que le pongamos, seria de la siguiente forma...

Copiamos eso y lo metemos despues del igual de la siguiente manera...

Info:

Veremos que funciona, por lo que haremos lo siguiente.

Reverse Shell

Primero vamos a comprobar que tenga la herramienta curl instalada en la maquina victima.

Estando a la escucha para saber que te llega el mensaje del envio del comando desde la maquina victima...

Si al enviar el comando con curl llega un mensaje al comando de python3 significa que la herramienta esta instalada, por lo que podremos hacer lo siguiente...

Guardamos el archivo y ahora lo ejecutaremos desde curl en la maquina victima haciendo lo siguiente...

Donde tengamos el archivo abrimos un servidor de python3 de la siguiente manera...

Una vez hecho eso, estaremos a la escucha...

Y por ultimo lo ejecutaremos con curl de la siguiente forma en la maquina victima...

Info:

Y con esto ya tendriamos la shell autenticada como www-data.

Escalate user lin

Si nos vamos al siguiente directorio...

Veremos un directorio llamado .secret_www-data y si nos metemos dentro.

Pero el archivo agenda.txt no sirve de mucho, el que si interesa es .passwd.

Por lo que leeremos el archivo.

Vemos las credenciales de lin por lo que cambiaremos a el haciendo lo siguiente.

Metemos como password agentelinsecreto y ya seriamos el.

Escalate Privileges

Sanitizaremos la shell (TTY), para que no nos de problemas.

Y seguimos con la escalada, leeremos la flag.

user.txt

Vemos que en el mismo directorio /home del usuario lin hay un archivo .py bastante interesante, si lo ejecutamos vemos lo siguiente.

Info:

Si leemos el codigo por dentro.

Vemos que esta importando un modulo bastante raro llamado subthreads un modulo que no suele ser muy comun, por lo que lo buscaremos.

Info:

Vemos que existe un .py del modulo, veremos que tiene dentro de ese modulo y como funciona.

Info:

Vemos que llama a un archivo llamado script.sh en la carpeta de /tmp y lo ejecuta como sudo, pero si vamos a tmp no veremos dicho archivo, lo crearemos poniendo lo siguiente para ser root.

Y ahora ejecutamos el script sistem.py y seleccionamos el numero 3, ya que es el que ejecuta ese script.sh.

Info:

Una vez hecho eso si vemos que permisos tiene la bash.

Info:

Vemos que tiene los permisos de SUID por lo que haremos lo siguiente.

Y con esto ya seremos root, por lo que leeremos la flag.

root.txt

Last updated