DDoS-АТАКИ

Спецвыпуск Xakep, номер #021, стр. 021-016-2


Итак, хакер нашел себе кучу компов и хочет завалить любимый сервер, как же найти слабое место? Для начала, как и перед любой битвой, надо изучить своего противника. Прежде всего узнать, какая стоит система на сервере, хотя бы примерно. Если это 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-модулями, они хороши в обучающих целях, но на практике их быстро найдут, и жертвоприношение не осуществится.

Назад на стр. 021-016-1  Содержание  Вперед на стр. 021-016-3