Найти тему
The Codeby

Пишем свой DOS скрипт на Python3

Источник codeby.net

Всем привет! Сегодня я вам покажу, как вы можете написать свой скрипт для DOS атак.

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

Для начала разберемся что такое DOS и в чем различие от DDOS.

DoS (аббр. англ. Denial of Service «отказ в обслуживании») — хакерская атака на вычислительную систему с целью довести её до отказа

Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от англ. Distributed Denial of Service, распределённая атака типа «отказ в обслуживании»). Такая атака проводится в том случае, если требуется вызвать отказ в обслуживании хорошо защищённой крупной компании или правительственной организации.

Думаю вы поняли. Если проще объяснить различие, то получится так: ddos - много атакующих и одна цель. dos - один атакующий и одна цель.

Цель этой статьи - написание скрипта для отсылки большого количества пакетов на удаленную машину с целью довести её до отказа.

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

Давайте сначала установим зависимости для нашего Python3. Их всего 3: colorama, requests, threading.

Команда, которой вы можете это всё установить под Linux:

Объясню для чего нужна каждая зависимость.

colorama - библиотека, которая упростит работу с цветами в консоли. Можете обойтись без неё, использую спец. символы консоли, как в .sh скриптах, либо всё сделать одного цвета.

requests - библиотека, которая позволит отправлять post/get запросы на удаленный сервер.

threading - библиотека, которая обеспечит многопоточность программы. Многопоточность увеличит скорость.

Приступим к написанию.

Сначала импортируем наши библиотеки, которые мы установили несколько минут назад.

Дальше напишем функцию, которая будет отправлять запросы и контролировать состояние цели:

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

мы будем сочетанием клавиш ctrl+c. Так же вы можете модифицировать функцию, например как только сервер начал не отвечать прекратить работу. Ну это дело вкуса. Всё в ваших руках.

Дальше приступим к главному коду.


Теперь объясняю. Создаем переменную
threads, в которой мы будем хранить количество потоков. Я по умолчанию на 20 поставил. (Это не очень много, чисто поставил для примера). Дальше объявили переменную url, в которую мы запишем домен цели.

Далее мы запрашиваем у пользователя количество потоков, которое он хотел бы использовать. Заметьте мы это делаем в блоке try, если это делать без него, то может выдать исключение, если при преобразовании строки в int попадётся текст.

Дальше мы так же проверяем количество потоков, если их 0, то программа не будет работать. (Ни один поток не запущен - не работает)

Мы проверяем точно ли это ссылка при помощи двух проверок:

  • Проверка на содержание http/https
  • Проверка на содержание точки. Если есть точка, то скорее всего после точки идет что-то еще. (Пример: "https://google.com")

Дальше мы создаем в цикле потоки и запускаем их. Ну и так же информируем пользователя о запуске потока под номером i.

Вот собственно и всё.

Как выглядит рабочая программа

-2

Полный код:

На этом всё :)