Категория > Новости > DDoS с усилением. Обходим Raw Security и пишем DDoS-утилиту для Windows - «Новости»

DDoS с усилением. Обходим Raw Security и пишем DDoS-утилиту для Windows - «Новости»


29-09-2021, 00:00. Автор: Аскольд
Под­робнос­ти в докумен­тации Microsoft.

Об­рати вни­мание на этот пункт докумен­тации.


Пря­мо заяв­лено, что ОС не поз­волит отправ­лять UDP-пакеты с полем IP-адре­са под­дель­ного отпра­вите­ля.


За­чем нам это нуж­но? Дело в том, что тра­фик, который мы получа­ем от уяз­вимых отве­тов служб, может быть каким‑то обра­зом перенап­равлен на сер­веры жертв. А это­го мож­но добить­ся, прос­то изме­нив IP-адрес отпра­вите­ля в заголов­ке UDP-пакета. Тог­да уяз­вимый сер­вер подума­ет, что зап­рос пос­тупил с компь­юте­ра жер­твы, и отпра­вит на него ответ.


Кто не зна­ком со струк­турой пакета UDP, может пос­мотреть на таб­личку ниже. Там ничего осо­бен­ного нет, фор­мирова­ние самого пакета мы раз­берем поз­же.


DDoS с усилением. Обходим Raw Security и пишем DDoS-утилиту для Windows - «Новости»
User Datagram Protocol

Собс­твен­но, из докумен­тации понят­но, что стан­дар­тные инс­тру­мен­ты и биб­лиоте­ки Windows не поз­воля­ют под­делывать адрес отпра­вите­ля. Для про­веде­ния DDoS это нуж­но обой­ти, и на помощь зло­дею или жела­юще­му про­вес­ти наг­рузоч­ный тест при­ходит такая вол­шебная вещь, как WinPcap.


С WinPcap мож­но фор­мировать пакеты отправ­ки незави­симо от инс­тру­мен­тов Windows. И это не прос­то биб­лиоте­ка для обра­бот­ки пакетов для C++, а собс­твен­ный драй­вер NPF.


Ес­ли вкрат­це, то это работа­ет так. Мы можем уста­новить кас­томный драй­вер про­токо­ла, при написа­нии прог­раммы мы будем ссы­лать­ся на него. Отту­да пакеты будут переда­вать­ся на драй­вер Network interface card (NIC) и идти даль­ше по сети. Таким обра­зом мы смо­жем пол­ностью кон­тро­лиро­вать про­цесс соз­дания и инкапсу­ляции пакетов.


 

Ищем уязвимые серверы


Для поис­ка уяз­вимых сер­веров широко исполь­зует­ся поис­ковик Shodan. Давай для при­мера поп­робу­ем най­ти сер­веры Memcached, которые исполь­зовались для ата­ки на Github нес­коль­ко лет назад. Вво­дим product:"Memcached" и видим, что сер­веров оста­ется все еще очень мно­го.


Раз­работ­чик испра­вил уяз­вимость и теперь порт, наз­начен­ный по умол­чанию, заменен с 11211 на TCP. Но, нес­мотря на это, в интерне­те оста­лись тысячи уяз­вимых сер­веров.


У Shodan есть филь­тры, которые помога­ют искать необ­ходимые сер­висы и сер­веры. Для прак­тики мож­но поп­робовать най­ти сер­висы RDP с пор­том UDP/3389, которые так­же уяз­вимы для атак ампли­фика­ции (с коэф­фици­ентом 85,9:1).


 

Разработка


Мы можем соз­дать прог­рамму для экс­плу­ата­ции уяз­вимос­ти сер­веров Memcached, DDoS с уси­лени­ем. Преж­де все­го нуж­но нас­тро­ить рабочую сре­ду.



  • Ус­танав­лива­ем необ­ходимый драй­вер (есть вер­сия для Windows 10, она под­держи­вает боль­ше интерфей­сов).

  • Ска­чива­ем биб­лиоте­ку Winpcap Developers Pack.

  • Под­клю­чаем биб­лиоте­ку в про­ект.


Фай­лы с заголов­ками
Мак­росы

В самом про­екте я исполь­зовал сле­дующие модули:


#define _ALLOW_KEYWORD_MACROS // Отключить предупреждение
#include <winsock2.h> // Здесь нужные нам функции, такие как htons() htonl()
#pragma comment (lib,"WS2_32.lib")
#include <Iphlpapi.h>// Поможет нам найти информацию про сетевые адаптеры и их характеристики
#pragma comment (lib,"Iphlpapi.lib")
#include <pcap/pcap.h> // Собственно, WinPcap
#pragma comment (lib,"wpcap.lib")
#include <iostream> // Здесь нам нужна функция sprintf()
#include <stdio.h>
#include <thread>
#define HOST sin_addr.S_un.S_addr // Переменные для пакета
using namespace std;

Пе­рей­дем к глав­ной задаче прог­раммы — фор­мирова­нию пакетов. Пой­дем по пун­ктам.



Перейти обратно к новости