Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #48, НОЯБРЬ 2004 г.

Извращения с тетей Асей

Роман Куберов aka q_ber

Спецвыпуск: Хакер, номер #048, стр. 048-050-5


Вот несколько функций, которые стороннее приложение может использовать для работы с ICQ:

ICQAPICall_GetOnlineListDetails – функция, которая возвращает список юзеров из твоего контакт-листа, которые в данный момент находятся в онлайне.

ICQAPICall_GetOnlineListType – функция возвращает код состояния отображения контакт-листа (0 – обычный вид, 1 – разбитие на группы)

ICQAPICall_SetOwnerState – функция устанавливает статус ICQ-клиента, например:

BICQAPI_USER_STATE_ONLINE 0

BICQAPI_USER_STATE_CHAT 1

BICQAPI_USER_STATE_AWAY 2

BICQAPI_USER_STATE_NA 3

BICQAPI_USER_STATE_OCCUPIED 4

BICQAPI_USER_STATE_DND 5

BICQAPI_USER_STATE_INVISIBLE 6

BICQAPI_USER_STATE_OFFLINE 7

ICQAPICall_SendMessage – ну а эта функция может быть использована для рассылки сообщения пользователям из контакт-листа с предложением посетить враждебный сайт.

А давайте повесим клиента?

Все мы знаем, что можно прислать товарищу свой контакт-лист. Но мало кто знает, что этот безобидный перечень контактов может намертво повесить ICQ-клиента. Пакет контакт-листа формируется следующим образом: вначале идет количество передаваемых уинов, а после - список вида Nick -> UIN. Если «подправить» пакет таким образом, чтобы количество передаваемых уинов было равно 65535 (0xFFFF), то клиент, которому передается «подправленный пакет», наглухо виснет. Происходит это, по видимому, из-за того что «Аська» выделяет память для обработки полученных адресов исходя из количества присланных уинов. Что из этого может получиться? Да все что угодно: Аська может выпасть, может зависнуть, может выделить много памяти и впасть в прострацию. Последствия такой атаки могут варьировать от перезагрузки до переустановки клиента.

Есть в ICQ интересная фича, называемая email-express. Если послать письмо на адрес [uin]@pager.icq.com, то оно в виде сообщения будет доставлено на уин, который мы указали. Пакет формируется в виде строки содержащей ник, уин, емэйл, тест емэйл-экспресса. Разделяются они символом «Ю» (0xFE). Если этот пакет сформирован некорректно, а именно - количество разделителей не соответствует количеству полей (например, в строку напихано 100 символов «Ю»), то Аська, при получении подобного пакета начинает глючить, а в перспективе - умирает. Большинство подобных багов, правда, исправлено в последних версиях ICQ.

Я от Ивана Петровича…

Как часто у тебя в Асе выскакивало сообщение: «Привет я Маша (Зина, Клава)! Я доярка из деревни Гадюкино, мне одиноко и скучно в деревне с коровами! Поэтому я фоткаюсь с ними голой и выложила свои фотки на сайт www.masha.freesexx.___!»? Что, часто? В данном случае мы имеем дело с ICQ-спамом, между прочим, весьма доходным видом бизнеса ;). Конечно, пользователи пытаются с ним бороться: сначала просто снимают галочку в настройках, которая показывает статус клиента в сети ICQ, поскольку многие спам-программы отсылают сообщения, если клиент в онлайне. Затем включают антиспам-фильтр, следящий за приемом сообщений от респондентов не из контакт-листа. Однако злые взломщики нашли способ обойти это препятствие. Комбинация проста и изящна: во-первых, отправляем пользователю сообщение, чтобы оказаться у него в «Not in list», затем отправляем клиенту сервисное сообщение, суть которого сводится к: «Спасибо, что вы меня авторизовали». Аська клиента по своей наивности полагает, что разрешение на авторизацию действительно было дано пользователем и добавляет нас в контакт-лист жертвы. И никакие антиспам-фильтры нам более не помеха.

Назад на стр. 048-050-4  Содержание  Вперед на стр. 048-050-6