Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Обрати внимание на этот пункт документации.
Прямо заявлено, что ОС не позволит отправлять UDP-пакеты с полем IP-адреса поддельного отправителя.
Зачем нам это нужно? Дело в том, что трафик, который мы получаем от уязвимых ответов служб, может быть каким‑то образом перенаправлен на серверы жертв. А этого можно добиться, просто изменив IP-адрес отправителя в заголовке UDP-пакета. Тогда уязвимый сервер подумает, что запрос поступил с компьютера жертвы, и отправит на него ответ.
Кто не знаком со структурой пакета UDP, может посмотреть на табличку ниже. Там ничего особенного нет, формирование самого пакета мы разберем позже.
Собственно, из документации понятно, что стандартные инструменты и библиотеки Windows не позволяют подделывать адрес отправителя. Для проведения DDoS это нужно обойти, и на помощь злодею или желающему провести нагрузочный тест приходит такая волшебная вещь, как WinPcap.
С WinPcap можно формировать пакеты отправки независимо от инструментов Windows. И это не просто библиотека для обработки пакетов для C++, а собственный драйвер NPF.
Если вкратце, то это работает так. Мы можем установить кастомный драйвер протокола, при написании программы мы будем ссылаться на него. Оттуда пакеты будут передаваться на драйвер Network interface card (NIC) и идти дальше по сети. Таким образом мы сможем полностью контролировать процесс создания и инкапсуляции пакетов.
Для поиска уязвимых серверов широко используется поисковик Shodan. Давай для примера попробуем найти серверы Memcached, которые использовались для атаки на Github несколько лет назад. Вводим product:
и видим, что серверов остается все еще очень много.
Разработчик исправил уязвимость и теперь порт, назначенный по умолчанию, заменен с 11211 на TCP. Но, несмотря на это, в интернете остались тысячи уязвимых серверов.
У Shodan есть фильтры, которые помогают искать необходимые сервисы и серверы. Для практики можно попробовать найти сервисы RDP с портом UDP/3389, которые также уязвимы для атак амплификации (с коэффициентом 85,9:1).
Мы можем создать программу для эксплуатации уязвимости серверов Memcached, DDoS с усилением. Прежде всего нужно настроить рабочую среду.
В самом проекте я использовал следующие модули:
#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;
Перейдем к главной задаче программы — формированию пакетов. Пойдем по пунктам.
|
|