"В этой статье рассмотрим мануал по «умному» DDoS'у где скрипт полностью иммитирует поведение реальных пользователей".
Надеюсь, что такое DDoS тебе рассказывать не надо. Если надо — вон из класса. В этой статье мы не будем обсуждать примитивные атаки многотысячных ботнетов, приводящие к отказу оборудования. Это уже в прошлом.
Сегодня я тебе расскажу про «умный» DDoS. А именно про атаки L7, или атаки уровня приложения. Я расскажу тебе как с помощью небольшого скрипта на Python и фреймворка Selenium полностью иммитировать поведение реальных пользователей. Реализуется такой подход путём контроля реального браузера. Таким образом реализуется механизм максимально похожий на поведение человека, бороться с которым бессильны большинство самых продвинутых методов защиты.
Для проведения наших тестов нам не потребуется никаких ботнетов. Все необходимые ресурсы мы абсолютно бесплатно возьмём у Google, Amazon или Microsoft, у каждого из которых есть возможность попробовать их услуги абсолютно бесплатно. Например, Google, с весьма небольшими ограничениями предоставляет пробный период в 3 месяца и суммой в $300, которых вполне хватит для того, чтобы разнести в пух и прах вполне серьёзный ресурс. Информация о том, как получать халяву, а также о том, как настраивать облачные инстансы выходит за рамки этой статьи))
Инструмент, который мы будем делать — это простейший booter/stresser, простейший скрипт для тестирования допустимой нагрузки на сайт. Для того, чтобы полноценно протестировать даже достаточно крупные ресурсы, тебе понадобится 5-10 инстансов с 2-4 процессорами и 4гб память (понятно, больше — лучше). Желательно брать инстансы полегче из-за ограничений на исходящий трафик в большинстве облачных сервисов.
Кстати, Selenium, походит не только для DDoS. Более того, я бы назвал DDoS с помощью этого замечательного фреймворка просто варварством. Selenium справляется и с намного более изысканными задачами, такими, как парсинг сложных, закрытых ресурсов или накрутка рекламы (в том числе и на YouTube, что доказал на практике Александр Жуков, создатель Methbot, основой которого как раз таки и являлся Selenium. Кстати, Жукова, арестованного и представшего перед судом в США недавно признали виновным по всем обвиненям. Но это уже другая история.
Справедливости ради следует заметить, что Selenium — старейший, но не единственный инструмент контроля браузеров на рынке. Помимо Selenium для подобных задач можно использовать и Puppeteer и его адаптацию на python, pyppeteer, тоже отлично зарекомендовавшие себя.
Итак, загружаем Python, устанавливаем все зависимости, качаем ChromeDriver. Помимо самого Selenium, мы будем использовать Concurrent Futures для обеспечения многопоточности.
Что писать: https://telegra.ph/skript-07-21
scrape(url)Скрипт загружает заданное количество потоков Google Chrome, каждый из которых выгребает ссылки и тем самым плотно нагружает атакуемый сайт. Для достижения лучшего эффекта рекомендуется нагружать тестируемый ресурс сложными запросами (например к функции поиска или сложной выборки).
В действенности метода можешь не сомневаться. С различными модификациями этот простенький скрипт позволяет достаточно успешно тестировать ресурсы, размещенные даже на защищенных сервисах типа Cloudflare, Varity или DDoS Guard. Однако, скорее всего тебе понадобятся соксы и дополнительные инструменты, разгадывающие «капчу».
Поверь, при правильном использовании этот скрипт заставит взяться за голову даже самых искушенных админов и самые изощренные сервисы защиты от ddos.