| 
 
.::Главная::. Гостевая Hack $oft Video vzlom Статьи Разное Hack Магазин .::Написать::.

.::DDOS & DOS oтказ в обслуживании ::.


DDoS - сокращение от английского Distributed Denial of Service, что означает "распределенная атака "отказ в обслуживании"". Слово "распределенная" говорит о том, что атака производится не одним компьютером и, соответственно, не по одному каналу, а целой группой компьютеров-зомби, которые одновременно начинают атаку. Используется как грубая сила, так сказать, танком напролом, для завала сервера (3.14zDoS серверу) или роутера (3.14zDoS целому сегменту сети).

Приблизительная схема DDoS такова: хакер ломает кучу серваков по всему Инету, устанавливает туда DDoS-модули, а потом, когда возникает соответствующая необходимость, командует всем своим зомбированным сервакам валить жертву. Соответственно, чем больше у него таких зомби, тем страшнее атака. Только представь, ведь существуют DoS-атаки, которые позволяют забить более мощный канал, чем у атакующего, а при DDoS общая пропускная способность всех зазомбированных машин может в десятки раз превосходить пропускную способность атакуемого!

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

Работает это очень просто, и до сих пор загадка, почему данный вид атаки является наиболее свежим и малоиспользуемым. Как известно, любой канал Интернета не резиновый и имеет свои ограничения. Вот на этом все и основано, то есть забивание канала мусором. Иногда бессмысленным, иногда конкретными запросами, иногда пакеты формируются так, чтобы ответ сервера был по размеру больше запроса. DDoS-модули могут быть также разными по написанию и использованию, например, бывают этакие навороченные троянские кони с системой прицеливания, а бывают просто бомбы с часовым механизмом. Даже баннер при желании можно использовать как DDoS-модуль. Для распространения можно использовать чаты, форумы или мыло. В принципе, для DDoS можно заюзать прокси-сервер, но данный метод пока мало обкатан и не дает нужных результатов.

По видам можно разделить DDoS-модули на саморазмножающиеся (e-mail вирусяги) и размножающиеся вручную (ломаешь и ставишь). Для размножения вручную хорошо подходят компы в интернет-кафе, и если приготовиться к акции за пару месяцев, то можно осуществить хорошую атаку, а если есть друзья в других городах, готовые пройтись по местным интернет-кафешкам, то атака получится просто замечательная. Как правило, серверные модули после установки слушают порт и ждут команд, поэтому вероятность обнаружения у них выше, чем у молчаливых, которые имеют все данные о жертве в себе и ждут своего часа, никак не проявляя себя. Еще делят по запросам: на посылающих "мусор", это случайные данные, как правило, посылаются по UDP или ICMP; расширяющиеся, например, минимальный запрос на HTTP-сервер имеет длину пакета 7 байт, а ответ зависит от сервера, www.yahoo.com в ответ послал 21239 байт, что в 3000 раз больше; и загружающие сервер, что очень эффективно против поисковых машин и страниц, собранных с использованием Perl или PHP.

Итак, хакер нашел себе кучу компов и хочет завалить любимый сервер, как же найти слабое место? Для начала, как и перед любой битвой, надо изучить своего противника. Прежде всего узнать, какая стоит система на сервере, хотя бы примерно. Если это 95 или 98 форточки (что крайне маловероятно), то достаточно знать, что максимальное количество соединений на данной ОС - 255. Понадобится флудилка вроде PortFucker и примерно 3-4 машины. Запустив этот агрегат на порт 80, можно идти пить кофе, поскольку порты забьются достаточно быстро, и до тех пор, пока админ файрволом или роутером не отрежет запросы, сервер будет недоступен ввиду слишком большой занятости. Это больше всего похоже на анекдот про Ржевского, помнишь? Дали мне одну свечку в левую руку, вторую - в правую, дают третью, а я и не знаю, куда ее деть... Вот так и сервер - вроде как занят, вроде работает, а никто этого не видит. Пойдем дальше: если это NT4/2000/XP, то можно и старым способом, но надо значительно больше машин, при 64М RAM на сервере он нормально держит 7000 соединений, а значит надо 30 машин под 95/98, можно и 2-3 под NT, но сами зомби тоже порядком подвиснут. В данном случае можно просто загрузить сервер мусором и забить канал (UDP пакеты), что сильно затормозит сервер. Но как на NT, так и на любом сервере Linux есть такая хорошая вещь, как timeout, то есть ограничение по времени. Это очень скользкая часть, поскольку если ограничение маленькое (1-2 секунды), то клиенты на медленном канале будут с трудом получать необходимое. Но если Timeout около минуты, то это самое слабое место, причем нет разницы, где он установлен, на POP3-порту или на FTP. Можно написать прогу, которая будет коннектиться, посылать команду типа "help" и опять коннектиться, и опять "help", поскольку сервер не отличает "хорошего" клиента от зомби, он будет вынужден висеть с каждым клиентом по минуте, а это достаточно для забивания всех возможных ресурсов. Если же жертва - поисковый сервер, то можно сконнектиться, сделать запрос по букве "а", вторым сконнектиться, сделать запрос по букве "б" и т.д. Все закончится тем, что сервер будет искать и мучить себя до потери пульса, а пульс сервак "пень-3/256Mb/канал на 64к" потерял после двенадцатого запроса. Если же это определенно линух, да еще и на хорошей машине, то тут только мусор, то есть если машина хороша, то слабое место в ней - это ее канал в И-нет, а следовательно, надо набирать как можно больше зомби и устраивать одноразовую массовую бомбардировку.

Ну, допустим, что с жертвой мы разобрались, теперь давай посмотрим на хакерское "оборудование", то есть программы для зомбирования машин. Прежде надо определиться, что именно лучше всего подходит. Если есть доступ к большому количеству интернет-кафе и им подобным заведениям, то писать надо определенно под форточки. Если же есть огромное количество серваков с возможностью запуска Perl, то на нем и надо писать. А если имеется просто 2000000 показов баннеров и при этом есть возможность показывать Flash-баннеры или html-баннеры (что значительно лучше) то ими и надо пользоваться. Затем, выбрав на чем писать и выбрав тактику нападения, неплохо посчитать, сколько надо машин и что лучше делать - серверподобного зомби или же все-таки бомбу с часами. Определившись и прикинув план работы программы (например, ждем 12:00 пятницы тринадцатого, затем начинаем бомбежку), стоит приступить к написанию программы. При реальных взломах не рекомендуется пользоваться готовыми DDoS-модулями, они хороши в обучающих целях, но на практике их быстро найдут, и жертвоприношение не осуществится.

НЕМНОГО ИСТОРИИ

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

1. Yahoo

Наиболее шумный случай использования DDoS. Произошел он в начале февраля 2000 года с сервером компании yahoo и отрубил его на три часа. Для компании такого размаха, как yahoo, три часа - это, по примерным подсчетам, 1.2 млрд. баксов. По заявлениям прессы, атака была произведена с университетских компьютеров, которые оказались зомбированными. По примерным подсчетам было задействовано более тысячи компьютеров-зомби. В то же время был атакован сервер интернет-магазина e-bay, а затем книжный магазин amazone.com. Атакующим (не зомби :)) оказался канадец, называющий себя MafiaBoy, пятнадцати лет отроду. Все атаки производились банальным флудом UDP-пакетами с корявым содержанием, расчет велся на слабый канал, и стоит отметить, в расчетах он не ошибся, поскольку канал действительно не выдержал. Парень отделался 160 долларами штрафа и восьмью месяцами лишения свободы.

2. RLE-SLE

Целенаправленное использование баннеров одной компании против другой. Ребята из RLE заметили, что их дизайн был слизан SLE-шниками, после чего (по словам владельцев SLE) было зарегистрировано три сайта, и начались "показы" их быннеров с частотой примерно 20-30 показов в секунду. Сайт плюхнулся, переделали алгоритм, подняли. Теперь уже на всех участников (а не только на тех трех зарегистрированных) пошли показы с частотой 100-150 запросов в секунду. В принципе ребята просто хотели помочь с накруткой баннеров :)))). Но вот сервер SLE не выдержал хорошего потока, от чего слег. Завершение этой истории подробно не описано, но дизайн ребятки сменили. В настоящий момент сайт www.sle.com.ua находится в дауне. Способ решения проблемы нельзя назвать тактичным, но то, что он сработал и ожидаемый результат был получен, - это очевидно. Учитывая размах RLE (вчера было показано 27922759), использование этой дырочки может повредить и более сильным сайтам, не каждый может выдержать такой резкий наплыв "посетителей".

ИНСТРУМЕНТАРИЙ ДОСЕРА

один толстый конец - хорошо, а два - еще лучше

Bug

В основном все DDoS-тулзы работают по такой схеме: хакер получает доступ к машине, устанавливает на нее программу-демона из комплекта своей DDoS-тулзы - проделывает то же самое еще с несколькими машинами. Машина, на которую установили демона, называется "зомби" (а процесс этот называется - "зомбировать"). Потом он запускает программу-мастера (тоже из комплекта DDoS-тулзы) на своем компе (иногда мастера, как и демона, можно установить на удаленную машину) и командует ей начать атаку на такой-то IP. Мастер в свою очередь командует всем демонам пинговать жертву. Получается, что несколько машин из разных точек нета атакуют одну, и, если зомбированных компов достаточно, жертве скоро настает 3.14zDoS, а вернее - 3.14zDDoS, так как атака распределенная ;). Это теория. А мы сейчас поглядим, что собой представляют эти самые DDoS-тулзы на самом деле. Let`s do it!

TFN

Tribe Flood Net Project - одна из первых DDoS-тулз. Арсенал TFN состоит из udp flood, syn flood, icmp flood и smurf`а. TFN был разработан хацкером под ником Mixter, который считается одним из наиболее грамотных людей, шарящих в DDoS-атаках (его статью о будущем DDoS-атак можно почитать тут: http://www.packetstorm.linuxsecurity.com/distributed/tfn3k.txt). Сам TFN можно утянуть по этой ссылке: http://www.packetstorm.linuxsecurity.com/distributed/tfn.tgz.После распаковки появится директория TFN. Чтоб скомпилировать тулзу, надо перейти в эту директорию и ввести "make". После этого появится три исполняемых файла: td, tfn и tfn-rush. td - это демон, tfn - мастер, а tfn-rush - тоже мастер, но работающий в каком-то rush-mode. Итак, давай установим у себя на машине демона, чтоб посмотреть, как все это работает, - вводим в командной строке:

./td

На этом тяжелейшая задача по установке демона решается ;). Теперь надо создать iplist - файл, в котором должны лежать IP-адреса зомбированных компов. Так как зомби у нас один (наша же тачка), открываем любой текстовый редактор, пишем в нем одну строку - 127.0.0.1 - и сохраняем его под именем iplist в директорию, куда разархивировался TFN. Теперь можно атаковать ;). Вводим:

./tfn ./iplist 3 127.0.0.1

Это мы, типа, атаковали пингом. Если хочешь узнать, какие еще есть способы, запусти tfn без параметров.

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

TFN2K

Это современная версия обычного TFN (от того же Maxter`а). Отличий очень много - появилась куча наворотов. Теперь тулза позволяет при каждом соединении мастера с демоном произвольно менять порты и методы атаки - так что блокировка firewall`ом одного из портов уже не спасает. Появилась куча новых атак, пароль на доступ к демону (чтоб левые перцы не могли воспользоваться зазомбированной тобой тачкой) и т.д. Кроме того, TFN2k умеет по-человечески спуфить IP`шники (если ничего не задавать специально, IP будет спуфиться random`ом).

Одно плохо - при компилировании этой тулзы полезли баги :(. Пришлось лезть в исходники и искать ошибки. Все запахало нормально, когда я заменил везде в файлах ip.h, ip.c и tribe.c "in_addr" на "in_addr_". Ну ладно, будем считать, что когда ты сидишь под линухом, лезть постоянно в исходники - это в порядке вещей (а это разве плохо? нужна тебе прога - лезь в исходники. Под виндами такой возможности вообще нет - если прога глючит и не работает, то можно забыть про нее насовсем - прим. ред.). Зато после моих ковыряний все нормально откомпилировалось (во время компиляции меня попросили задать пароль), и в директории появилось несколько бинарников, из которых нас интересуют только td (демон) и tfn (мастер). Как и раньше, запускаем демона (./td), а потом мастера:

./tfn -f ./iplist -c 6 -i 127.0.0.1

И вводим пароль, который задали во время компиляции. Это опять icmp flood. Чтоб узнать, как делаются другие атаки, запусти tfn без параметров.

Итог: TFN2k - хоть и немного подглючил при установке, оказался очень мощным и гибким DDoS-инструментом. Наверное, самым лучшим на сегодняшний день :). Да, чуть не забыл - TFN2k качается тут: http://www.packetstorm.linuxsecurity.com/distributed/tfn2k.tgz.

STACHELDRAHT

У этой тулзы печальная история - ее сначала зарезили в нерабочем виде (некто Randomizer), и только потом некто Psychoid отфиксил баги и добавил новых возможностей. Посмотрим, что получилось ;). К достоинствам можно отнести то, что трафик между демоном и мастером шифруется. Ну и, конечно, куча доступных атак - тоже немаловажное ;) достоинство. И еще: Stacheldraht состоит не из двух частей, а из трех. Демон ставится на зазомбированной тачке, мастер-сервер ставится на любой удаленной тачке, а мастер-клиент - на тачке хацкера. Такой подход сводит к нулю возможность поймать взломщика и надавать ему по ушам.

Взять можно тут: www.packetstorm.linuxsecurity.com/distributed/stachelantigl.tar.gz. Распаковываем архивчик в директорию ./stachel и идем компилировать:

cd ./stachel

make

Попросят ввести пароль. Вводим и идем компилить дальше (в поддиректориях):

cd ./client

make

Попросят ввести IP-адрес сервака, на котором висит мастер. Вводим 127.0.0.1 и идем дальше:

cd ../telnetc

make

Все должно пройти нормально :). Если все ок, лезем в папку ./client и запускаем бинарник td (демон). Потом возвращаемся обратно в ./stachel и вводим:

./mserv 127.0.0.1

Прога (это мастер-сервер) отрапортует, что нашла одного клиента. Теперь можно потирать ручки и приступать к действиям ;). Идем в директорию ./telnetc и вводим:

./client 127.0.0.1

Это и есть мастер-клиент. Прямо на входе он попросит ввести пароль. Вводим и попадаем в интерактивное меню тулзы. Кроме всего прочего, тут куча приколов :))))). Например, прога пишет: "type .help if youare lame", а к тебе обращается примерно так: "no packet action at the moment, sir" :). Не DoS-тулза, а шут какой-то :))). Ок, давай традиционно попингуем самих себя и оставим Stacheldraht в покое:

.micmp 127.0.0.1

Для остальных атак введи ".help".

Итог: рулезнейшая прога! Достаточно продвинутая, обладает кучей функций, знает кучу атак.

MSTREAM

Эта тулза досталась мне в виде одного большого текстового файла: в нем содержится код Makefile`а, код master.c и код server.c. Если тебя не заломает выковыривать все из этого файла, можешь забрать его отсюда: http://synapsys.nm.ru/www.packetstorm.linuxsecurity.com/distributed/mstream.txt. Меня не ломает, так что я запустил текстовый редактор, аккуратно порезал и разложил все как надо. В итоге у меня получилась директория с тремя файлами внутри: Makefile, master.c и server.c. Компилирую:

make

Как ни странно, все сошлось с первого раза, и в папке появилось два бинарника: master и server. Запускаю демона:

./server

Молча запускается и уходит в бэкграунд ;). Теперь запускаю мастера:

./master

И этот уходит в бэкграунд... И что? И как? А как же DDoS-атаки и все такое? Ничего не понял...

Итог: если бы что-нибудь запустилось, можно было бы подвести итог...

TRIN00

Еще одна DDoS-тулза. Копируем отсюда архив: http://www.packetstorm.linuxsecurity.com/distributed/trinoo.tgz, распаковываем в какую-нибудь директорию и заходим в нее.

Две папочки: ./daemon и ./master с соответствующими составляющими Trin00 внутри. Сначала займемся мастером. Заходим в его папку:

cd ./master

и компиллируем мастера:

make

После этого в папке появится бинарник ./master. Все, мастер готов :).

Теперь лезем в папку с демоном

cd ../daemon

Там лежит всего один исходник - ns.c. Его придется править. Открываем и ищем следующий фрагмент:

Это, типа, настройки мастера. Я настроил все вот так:

Далее надо откомпилировать ns.c следующей командой:

gcc -o daemon ns.c

но что-то он у меня не захотел компилироваться :(. Пришлось лезть в исходник еще раз и смотреть, в чем проблема. А проблема в том, что компилятор не может найти функцию "crypt", которая заюзана в исходнике.

Ковыряться неохота, поэтому просто убираю эту функцию на фиг, заменив ее на дурацкое сравнение следующим образом:

Хреново, конечно, так делать, зато после этого все нормально откомпилировалось :). В папке ./daemon появился бинарник daemon. Запускаем его:

./daemon

Теперь можно запустить и мастер:

../master/master

Появится два вопросительных знака:

Это, типа, мастер просит ввести пароль на запуск: вводим "gOrave". Все, мастер запущен. Теперь, чтоб с ним работать, надо прителнетиться к порту 27665.

telnet 127.0.0.1 27665

Видим следующую штуку:

Мастер ждет ввода пароля на соединение: вводим "betaalmosdone" и попадаем в командную строку Trin00:

Вот теперь можно развлекаться :). Нет... кое-что забыли. В директории мастера надо создать файл, название которого состоит просто из трех точек ("...") - это аналог TFN`овского iplist`а. Пишем в него одну строчку (т.к. у нас только один демон) - 127.0.0.1 - и сохраняем. Теперь можно вернуться в меню проги. Если не знаешь, что делать, можно ввести "help", и программа выплюнет список доступных команд. Пингуем :):

mping 127.0.0.1

Итог: довольно глючная тулза, работает как-то криво (пакеты шлет, но почему-то очень вяло). В общем, лучше пользоваться чем-нибудь другим, благо DDoS-тулз достаточно.

На этом, пожалуй, стоит закончить знакомство с DDoS-тулзами (хотя их еще много: Kaiten, Voyager Alpha Force и т.д.). Тебе, друган, я советую скачать все, что мы сегодня обозрели, и опробовать на практике (на своей тачке, естественно - я тебя не призываю кого-либо DoS`ить, Боже упаси...). Нагиморроешься, зато и знаний наберешься, а то сейчас, небось, читаешь и думаешь - "это не для меня", "линукс еще какой-то ставить", "я это не умею", "не могу" и т.д. Ты сейчас какой журнал читаешь? Спец или фуфло какое-нибудь для домохозяек? Если Спец, то должен уметь... Удачи!





Дизайн и разработка сайта  Project.Lepest "Проект Amega"

© 2000-2005 Все права защищены и охраняются законом.

Сайт управляется системой uCoz