Цей посібник допоможе вам налаштувати вебсервер із симульованою вразливістю SSRF та інстанс Kali Linux у хмарі Amazon Web Services (AWS).
Попередні вимоги
- Акаунт AWS.
- Базове розуміння сервісів AWS EC2 та IAM.
- SSH-клієнт (наприклад, OpenSSH або PuTTY).
Частина 1: Налаштування вразливого вебсервера (Ubuntu EC2 Instance)
У цьому розділі описано кроки для запуску інстансу Ubuntu EC2, налаштування його безпеки та розгортання базового вебдодатка.
Крок 1: Увійдіть в консоль AWS

- Введіть адресу електронної пошти кореневого користувача (root) і натисніть «Next».

- Дотримуйтесь підказок, щоб завершити процес входу.
Крок 2: Перехід до панелі керування EC2
Після входу скористайтеся рядком пошуку у верхній частині консолі.
Введіть «EC2» і виберіть «EC2 – Virtual Servers in the Cloud» зі списку сервісів.

Крок 3: Запуск нового інстансу EC2
На панелі керування EC2 у розділі «Instances» натисніть «Instances».

Потім натисніть кнопку «Launch instances» (Запустити інстанси).

Крок 4: Конфігурація деталей інстансу
Назва та теги (Name and tags):
- Дайте вашому інстансу описову назву, наприклад, lgt_web1.
Образи програм та ОС (Amazon Machine Image – AMI):
- Виберіть «Ubuntu» зі списку швидкого запуску «Quick Start».
- Переконайтеся, що вибрано варіант «Free tier eligible» (доступно в межах безкоштовного рівня), якщо ви використовуєте відповідний акаунт.

Тип інстансу та ключова пара (Instance type & Key pair):
- Натисніть «Create new key pair» (Створити нову ключову пару).

-
Виберіть тип інстансу, який підпадає під «Free tier eligible», наприклад t2.micro.
-
Вкажіть назву ключової пари (Key pair name), наприклад, lgt_web1.
-
Виберіть «RSA» для типу ключа (Key pair type).
-
Виберіть формат «.pem» для приватного ключа.
-
Натисніть «Create key pair». Після цього файл .pem буде автоматично завантажено на ваш комп’ютер. Зберігайте його в надійному місці.

Перевірка та запуск (Review and Launch):
- Перевірте підсумкову конфігурацію вашого інстансу в правій панелі (Summary).
- Натисніть «Launch instance».

Ви побачите повідомлення про успішне завершення операції з підтвердженням запуску та вашим ID інстансу.

Крок 5: Підключення до інстансу Ubuntu через SSH
- На сторінці EC2 Instances виберіть свій щойно запущений інстанс lgt_web1.
- Натисніть кнопку “Connect” (Підключитися).
- Перейдіть на вкладку “SSH client”.

Дотримуйтесь наданих там інструкцій:
- Знайдіть файл вашого приватного ключа (lgt_web1.pem).
- Встановіть відповідні права доступу для ключа: chmod 400 lgt_web1.pem
- Підключіться, використовуючи команду формату: ssh -i “lgt_web1.pem” ubuntu@
.

- Якщо з’явиться запит про автентичність (authenticity), введіть yes і натисніть Enter.
Крок 6: Налаштування групи безпеки (Security Group) для вебдоступу
Щоб дозволити доступ до вашого вебсервера, необхідно відкрити порти HTTP та HTTPS у групі безпеки інстансу.
- На сторінці EC2 Instances виберіть свій інстанс lgt_web1.
- Прокрутіть вниз до вкладки “Security” і натисніть на посилання “Security groups” (наприклад, sg-015f…). Ви перейдете до деталей групи безпеки.

- На сторінці групи безпеки перейдіть на вкладку “Inbound rules” (Вхідні правила) і натисніть “Edit inbound rules” (Редагувати вхідні правила).

- Натисніть “Add rule” (Додати правило).
- Для першого нового правила:
- Type: “All TCP”
- Source: “Anywhere-IPv4” (0.0.0.0/0)
- Для другого нового правила:
- Type: “All UDP”
- Source: “Anywhere-IPv4” (0.0.0.0/0).
- Для першого нового правила:
- Натисніть “Save rules” (Зберегти правила).

Крок 7: Розгортання лабораторії для тестування SSRF-вразливості
Після підключення до вашого інстансу Ubuntu через SSH:
- Перейдіть до директорії вебсервера (наприклад, /var/www/html/). Можливо, вам знадобиться створити окрему папку для лабораторії: sudo mkdir /var/www/html/labssrf
- Перейдіть у створену директорію: cd /var/www/html/labssrf
- Створіть файл index.php для SSRF-лабораторії. Вам потрібно буде наповнити цей файл вразливим PHP-кодом (код у документі не наведено, але він має бути розміщений саме тут).
- Після розгортання ви зможете отримати доступ до лабораторії через браузер за адресою: http://<Public_IP_вашого_інстансу>/labssrf/.


Крок 8: Створення та підключення IAM-ролі до інстансу
Цей крок призначає інстансу EC2 певну IAM-роль із заданими дозволами, що є критично важливим для певних видів атак (наприклад, підвищення привілеїв через метадані EC2).
Створення IAM-ролі:
- У рядку пошуку консолі керування AWS введіть “iam” і виберіть “IAM – Manage access to AWS resources”.

- У панелі керування IAM натисніть “Roles” (Ролі) у розділі “Access management”.

- Натисніть “Create role” (Створити роль).
- Trusted entity type: Виберіть “AWS service”..
- Use case: Виберіть “EC2”.

- Натисніть “Next” (Далі).
- Permissions policies (Політики дозволів): Знайдіть через пошук amazonec2full і виберіть “AmazonEC2FullAccess”..

- Натисніть “Next” та перейдіть до розділу “Name, review, and create”:**
- Встановіть “Role name” (Назва ролі), наприклад: Ec2_role.
- Перевірте вибрану політику та натисніть “Create role” (Створити роль).

Підключення IAM-ролі до інстансу:
- Поверніться на сторінку EC2 Instances і виберіть свій інстанс lgt_web1.
- Натисніть “Actions” (Дії) -> “Security” (Безпека) -> “Modify IAM role” (Змінити IAM-роль).

- У діалоговому вікні виберіть створену вами роль Ec2_role зі спадного списку. Натисніть “Update IAM role” (Оновити IAM-роль).

Крок 9: Зміна параметрів метаданих інстансу (IMDSv2)
IMDSv2 додає рівень безпеки для служби метаданих інстансу. Для деяких лабораторних сценаріїв вам може знадобитися змінити ці налаштування.
- На сторінці EC2 Instances виберіть свій інстанс lgt_web1.
- Натисніть “Actions” (Дії) -> “Instance settings” (Налаштування інстансу) -> “Modify instance metadata options” (Змінити параметри метаданих інстансу).
- Переконайтеся, що позначка “Enable” (Увімкнути) встановлена для пункту “Instance metadata service”.
- Ви можете встановити IMDSv2 у режим “Optional” (Необов’язково) або “Required” (Обов’язково), залежно від потреб вашої лабораторної роботи. На скриншоті вказано “Optional”. Натисніть “Save” (Зберегти).

Частина 2: Налаштування машини атакувальника (інстанс Kali Linux в EC2)
У цьому розділі детально описано кроки для запуску інстансу Kali Linux, який слугуватиме вашою машиною для атак.
Крок 1: Запуск нового інстансу EC2 (для Kali)
- На сторінці EC2 Instances знову натисніть кнопку “Launch instances” (Запустити інстанси).

- Name and tags (Назва та теги):
- Дайте вашому інстансу назву, наприклад: Kali linux.

Application and OS Images (Образи програм та ОС — AMI):
- Натисніть “Browse more AMIs” (Переглянути більше AMI)..

- У рядку пошуку введіть kali linux.
- Перейдіть на вкладку “AWS Marketplace AMIs”.
- Виберіть відповідний образ Kali Linux. Зверніть увагу, що використання образів Kali Linux часто платне (наприклад, $0.046/год, як показано на зображеннях).
- Натисніть “Subscribe on instance launch” (Підписатися під час запуску інстансу).


Instance type (Тип інстансу):
- Виберіть тип інстансу, зазвичай це t2.medium, як показано в прикладі.
Key pair (Ключова пара для входу):
- Створіть нову ключову пару для Kali, наприклад: kali_key (аналогічно тому, як ви робили для інстансу Ubuntu).
Network settings (Налаштування мережі):
- Натисніть “Edit” (Редагувати) поруч із пунктом “Network settings”.

- Переконайтеся, що параметр “Auto-assign public IP” (Автоматичне призначення публічної IP-адреси) увімкнено (Enabled).
- У розділі “Firewall (security groups)” виберіть “Create security group” (Створити групу безпеки).
- Додайте вхідні правила (Inbound rules):
- Додайте правило для “All TCP” з джерела “Anywhere” (0.0.0.0/0).
- Додайте правило для “All UDP” з джерела “Anywhere” (0.0.0.0/0).
- Натисніть “Add security group rule”, якщо потрібно додати більше правил.


Review and Launch (Перегляд та запуск):
- Перевірте підсумкову інформацію та натисніть “Launch instance” (Запустити інстанс).

Крок 2: Перевірка стану інстансу Kali Linux та групи безпеки
- Після запуску поверніться на сторінку EC2 Instances. Ви маєте побачити обидва ваші інстанси: lgt_web1 (Ubuntu) та Kali linux. Спочатку інстанс Kali, ймовірно, перебуватиме у стані “Initializing” (Ініціалізація).

- Коли Kali linux перейде у стан “Running” (Запущено), виберіть його.
- Перейдіть на вкладку “Security” (Безпека) і натисніть на посилання відповідної “Security groups” (Групи безпеки).

- На сторінці групи безпеки натисніть “Edit inbound rules” (Редагувати вхідні правила).

- Додайте правило “All ICMP – IPv4” з джерелом “Anywhere” (0.0.0.0/0), щоб дозволити ping-запити. Натисніть “Save rules” (Зберегти правила).

Крок 3: Запуск вебсервера Ubuntu (якщо він зупинений)
Якщо ваш інстанс lgt_web1 був зупинений, ви можете його запустити:
- Виберіть lgt_web1 на сторінці EC2 Instances.
- Натисніть “Instance state” (Стан інстансу) -> “Start instance” (Запустити інстанс).

- Переконайтеся, що інстанс перейшов у стан “Running”.

- Перевірте, чи його група безпеки має всі необхідні правила.


Крок 4: Перевірка зв’язку з Kali Linux
- Спершу підключіться до вашого інстансу Kali Linux через SSH, використовуючи відповідну ключову пару та публічну IP-адресу/DNS (аналогічно тому, як ви підключалися до інстансу Ubuntu).
- Після підключення до Kali спробуйте виконати команду ping для публічної IP-адреси вашого інстансу Ubuntu (або приватної IP, якщо вони знаходяться в одній VPC і це дозволено групами безпеки).

- Успішний обмін пакетами (ping) свідчить про наявність мережевого зв’язку між вашою машиною атакувальника Kali та вразливим вебсервером.
На цьому налаштування лабораторного середовища в AWS із вразливим вебсервером та машиною атакувальника Kali Linux завершено. Тепер ви можете переходити до тестування безпеки та розробки експлойтів.