Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #67, ИЮЛЬ 2004 г.

Атаки и взлом IRC-сетей

KZer-Za

Xakep, номер #067, стр. 067-046-1

(stevex@herzeleid.net, www.dalnet.ru)

Практические советы кодера DalNet(RU)

В последнее время IRC стал дико популярным сервисом. В российских сетях уже крутятся тысячи пользователей, не редкость каналы, на которых одновременно сидит по сотне человек. Чем популярнее IRC, тем актуальнее для хацкеров следующий вопрос: "Как же можно захватить чужой канал, несанкционированно получить статус иркопа и поглумиться над пользователями?". Ответ на него дает один из программистов, работающих в команде сети Dalnet(Ru). Наслаждайся!

Атаки на IRC-сети можно разделить на три категории:

1) взлом программного обеспечения

2) поиск дырок в конфигурации серверов

3) взлом IRC-операторов :)

Взлом Ircd

Ircd - это обычный unix-демон, написанный, как правило, на C++. При этом используются стандартные системные вызовы для выделения памяти, копирования и перемещения информации между модулями и процедурами. Многие современные ircd активно используют средства шифрования, сжатия и аутентификации, применяя такие широко распространенные библиотеки, как zlib и OpenSSL. Эти библиотеки страдают от тех же самых дыр, что и все остальные, чем грех не воспользоваться.

Системные администраторы - народ в большинстве своем довольно ленивый. Фразы "Я не использую OpenSSL" или "А, какая ерунда zlib, его я тоже не использую" стали уже традицией. Конечно, большинство служб на машинах, где установлен ircd, может и не использовать эти библиотеки, но сам ircd обычно активно их юзает. Достаточно просмотреть bugtraq, найти подходящую дырку, грамотно написать соответствующую "открывашку" и получить доступ к внутренностям IRC-сервера. Грамотный взлом обнаружить крайне непросто, настоящие профессионалы умеют сделать все очень чисто, без лишнего шума и пыли, убрав за собой все следы своего пребывания. А имея на руках исходники демона, найти в нем несколько опасных дыр не так уж и сложно, это лишь вопрос времени и профессионализма взломщика.

Старые болячки

Обычно на IRC-сервере, помимо ircd, крутится масса других приложений: это и веб-сервер, и ssh, и ftpd. Соответственно, порутав машину через баг в одном из этих демонов, ты получишь и полный контроль над ircd. Каким же образом можно удаленно взломать какой-либо сервис? Самая распространенная уязвимость - переполнение буфера. Эта атака была впервые зафиксирована в 1988 году под именем червя Морриса. Используя переполнение буфера, он инициировал вредоносный код на заражаемой машине. Вот кусок программы, подверженной buffer overflow:

Buffer overflow

{

char buf[1024]; /* полагаем, что этот буфер вместителен, на всякий случай */

strcpy(buf,src);

/* BANG! Если src содержит более 1024 символов, остаток будет вписан... сразу после окончания этого буфера! */

}

Достаточно только обнаружить такое место в проекте, грамотно сформировать информацию, идущую в переполняемый буфер, и выполнить хоть execve("/bin/sh",0,0), получив в итоге удаленный шелл с правами пользователя, под которым крутится взломанный процесс. На самом деле, переполнение буфера - это безграничная тема, есть очень много разнообразных видов атак, так или иначе связанных с buffer overflow. Многие методы детально описаны в различных руководствах по безопасности и периодически всплывают во всевозможных багтраках. Кроме того, читай по этой теме Х-спец!

Содержание  Вперед на стр. 067-046-2
ttfb: 14.648199081421 ms