# Занятие 4. Web Application Firewall # # В данной лабораторной работе использовался следующий стенд # ![](https://i.imgur.com/xiqz0pU.png) Затем к waf был подключён host ![](https://i.imgur.com/dNbOgrK.png) Для того чтобы конвертировать vdi в qcow2 была скачена программа qemo ![](https://i.imgur.com/I7frRFS.png) На virtual box была установлена ubuntu 20.04 ![](https://i.imgur.com/C1PDP3e.png) После утсановки были произведенны операции обновления репазитория и программ ос. Затем следующий командой был конвертирован файл диска в qcow2 ![](https://i.imgur.com/8TX97wk.png) Важно, чтобы имя файла qcow2 было virtio.qcow2 иначе образ не будет запускаться. Так же в virtual box нужно изменить тип подключения на IDE как показано на скриншоте ![](https://i.imgur.com/uuSLBU5.png) Посел того как утилита qemo завершит работу можно отправлять файл на EVE NG для этого использовалась утилита xftp ![](https://i.imgur.com/6zbZfTD.png) После копирования файла на сервере EVE NG была выполнена комада после чего сервер был перезагружен ![](https://i.imgur.com/YzpOIXe.png) Теперь образ ос появился в списке ![](https://i.imgur.com/6cfY9uj.png) # Обновление ОС # Обновим репозиторий и установим обновления ![](https://i.imgur.com/SZCqTc5.png) У пользователя есть доступ к sudo ![](https://i.imgur.com/ts8gzxV.png) Nginx не установелна ![](https://i.imgur.com/rc1aX73.png) # Добавим последнюю стабильную версию nginx # Установим PPA ![](https://i.imgur.com/VSFitxk.png) После установки PPA и обновления репазитория усатновим nginx ![](https://i.imgur.com/C2kG77p.png) Изменим файлы конфигурации чтобы можно было загрузить исходных код nginx ![](https://i.imgur.com/JUfDSTg.png) ![](https://i.imgur.com/O0UaFVx.png) Расскоментируем строчку ![](https://i.imgur.com/goixCuD.png) Сохраним файл и обнвим список репазиториев ![](https://i.imgur.com/J3ZbxL9.png) # Скачивание исходного кода Nginx # Создайте местоположение следующим образом ![](https://i.imgur.com/hyI6n9k.png) Изменим права доступа для каталога ![](https://i.imgur.com/EVyrf4v.png) Затем загрузим исходный пакет ![](https://i.imgur.com/wyrL5dp.png) ![](https://i.imgur.com/ZkOndfM.png) Установленная версия nginx MAINLINE ![](https://i.imgur.com/j3hEZuy.png) ![](https://i.imgur.com/zMbWQzl.png) # Установите libmodsecurity3 для ModSecurity # Сначала установим git ![](https://i.imgur.com/D2OcK9H.png) Затем клонируем репазиторий libmodsecurity3 следующим образом ![](https://i.imgur.com/pzS85iP.png) Для компиляции потребуется установить следующие зависимости следующим образом ![](https://i.imgur.com/eZV8N6t.png) Теперь, чтобы закончить, установим следующие подмодули GIT следующим образом ![](https://i.imgur.com/at2UhKZ.png) Затем обновите подмодули ![](https://i.imgur.com/KAeqiTZ.png) Следующим шагом теперь является создание среды ![](https://i.imgur.com/93icB2I.png) Запустим команду конфигурации ![](https://i.imgur.com/SYSRsih.png) Скомпилируем. При переустановки я использовал клчючь -j чтобы задеёствовать все ядра процессора ![](https://i.imgur.com/gKAKrlG.png) ![](https://i.imgur.com/tHqxSoj.png) После компиляции можно выполнить установку ![](https://i.imgur.com/Sg6ejp7.png) # Установить коннектор ModSecurity-nginx # Клонируем репазиторий ![](https://i.imgur.com/wcyQbFQ.png) Затем переместите каталог CD в исходный каталог Nginx следующим образом ![](https://i.imgur.com/JgUJD4d.png) Теперь установим необходимые зависимости ![](https://i.imgur.com/1dEEZ3G.png) Далее вы скомпилируете модуль ModSecurity-nginx Connector только с флагом –with-compat следующим образом ![](https://i.imgur.com/i7BS6la.png) Теперь создадим динамические модули с помощью следующей команд ![](https://i.imgur.com/gTgytk0.png) Затем, находясь в исходном каталоге Nginx, используем следующую команду, чтобы переместить только что созданный динамический модуль, сохраненный в папке ![](https://i.imgur.com/rkVHWb1.png) # Загрузить и настроить коннектор ModSecurity-nginx с помощью Nginx # Нжуно внести правки в файл конфигурации nginx, а именно указать путь до модуля безопастности и включить ModSecurity ![](https://i.imgur.com/yAP0in4.png) ![](https://i.imgur.com/pCdRVS5.png) ![](https://i.imgur.com/bx0qGL1.png) ![](https://i.imgur.com/sr07IJB.png) Сохраняем изменения в файле # Создание и настройка каталога и файлов для ModSecurity # Создадим каталог для хранения файлов конфигурации и правил ![](https://i.imgur.com/llkeHDY.png) Скопируем образец файла конфигурации ModSecurity обратно из клонированного каталога GIT ![](https://i.imgur.com/JHWxdN5.png) Откроем файл modsecurity.conf ![](https://i.imgur.com/kOS7Vzu.png) Данная строчка не изменялась так как далее в методичке написано, что из за этого могут возникнуть ошибки ![](https://i.imgur.com/wHbjqHc.png) Изменим значение в строчке 224 ![](https://i.imgur.com/IsqLa4x.png) Сохраним изменения и закроем файл. Затем нужно создать фалй modsec-config.conf. В этот фай добавляются пути до правил ![](https://i.imgur.com/neKJZKn.png) Наконец, скопируйте файл unicode.mapping ModSecurity с помощью команды CP следующим образом ![](https://i.imgur.com/enQXjIj.png) ![](https://i.imgur.com/F1BlAR0.png) Чтобы изменения вступили в силу, перезапустите службу Nginx с помощью команды systemctl ![](https://i.imgur.com/WEXi9X0.png) Настроим proxy внеся следующие изменения в файл /etc/nginx/sites-enabled/default ![](https://i.imgur.com/ASGOiUP.png) ![](https://i.imgur.com/xkhnw4W.png) Указываем адрес веб-сервера. Выполним подключение к waf через браузер и увидим что страница веб приложения доступна ![](https://i.imgur.com/H1gdUaR.png) # Установите основной набор правил OWASP для ModSecurity # С помощью команды wget загрузите архив OWASP CRS 3.3.2 следующим образом ![](https://i.imgur.com/btK5M31.png) Теперь распакуйте архив master.zip следующим образом ![](https://i.imgur.com/fqdWhkw.png) Как и раньше, как и пример конфигурации modsecurity.conf, OWASP CRS поставляется с образцом файла конфигурации, который необходимо переименовать. Лучше всего использовать команду CP и сохранить резервную копию на будущее, если вам потребуется перезапустить снова ![](https://i.imgur.com/PuyEcrG.png) Чтобы включить правила, добавим пару строчек в файл /etc/nginx/modsec/modsec-config.conf ![](https://i.imgur.com/tvSR1ti.png) Ошибок нет ![](https://i.imgur.com/dGnfDwW.png) Перезапускаем nginx ![](https://i.imgur.com/5WPJaaE.png) Чтобы проверить работает ли OWASP CRS в браузере перейдём по следующему адресе ![](https://i.imgur.com/lL6Zu8e.png) Получена ошибка 403 значит защита работает. # Проведение атак # SQL инъекции Зайдём под учётной записью администратора. Вероятно что администратор это первая запись в таблице пользователей ![](https://i.imgur.com/JiK5tBa.png) ![](https://i.imgur.com/shazBcx.png) Логи ![](https://i.imgur.com/zg9LNsx.png) ![](https://i.imgur.com/pLFuQdO.png) Атака не удалась. Выполним ту же атаку на веб сервере ![](https://i.imgur.com/YBvmvqA.png) ![](https://i.imgur.com/fv1jWfy.png) DOS атака Дос атака с сервера waf ![](https://i.imgur.com/lv1EeRk.png) ![](https://i.imgur.com/Zb05NQT.png) Была получена ошибка 404. Просмотрим логи ![](https://i.imgur.com/TdVZHHf.png) ![](https://i.imgur.com/uoFWN2n.png) Дос атака с удалённого хоста ![](https://i.imgur.com/R4pzPZD.png) Защита так же сработала. Логи ![](https://i.imgur.com/A4wmhbr.png) ![](https://i.imgur.com/7xtnCih.png) XSS атака Попробуем через отправку комментария вызвать скрипт оповещения. ![](https://i.imgur.com/eHZwBcV.png) Логи ![](https://i.imgur.com/Uhes8xd.png) ![](https://i.imgur.com/PcrJJ6g.png) Защита сработала успешно. # Sniper # Попробуем создать большое количество пользолватеелй Создадим пользователя и перехватим пакет ![](https://i.imgur.com/JMLGZD7.png) Находим запрос и отправляем его в intruder ![](https://i.imgur.com/ajXQhJt.png) ![](https://i.imgur.com/FqnXaQX.png) Нажмём сюда чтобы убрать лишние параметры и сделать чистый запрос ![](https://i.imgur.com/EZoEr50.png) Чтобы добавить символ нужно нажать на эту кнопку ![](https://i.imgur.com/weC0dUZ.png) ![](https://i.imgur.com/OWVvD8s.png) Переходим на вкладку ![](https://i.imgur.com/pdHvvUu.png) Выберем тип нагрузки ![](https://i.imgur.com/Uo8foeI.png) От 1 до 12 с шагом 1 ![](https://i.imgur.com/nbmGi7p.png) Теперь можно нажать start attack ![](https://i.imgur.com/KIhYx8n.png) ![](https://i.imgur.com/xdPSL4I.png) Создание пользователей ![](https://i.imgur.com/s4Qm6mX.png) Логи ![](https://i.imgur.com/LD9VCCQ.png) Все пользователя были созданы защита нет ![](https://i.imgur.com/Xu6nysq.png) Нужно писать отдельное правило, чтобы waf смог блокировать подобные атаки.