Дуршлаг в Sendmail

Спецвыпуск Хакера, номер #007, стр. 007-040-2

(хотя меня, конечно, иметь лучше не стоит ;))) без пароля и с правами рута!

Плюсы: Баг достаточно прост в использовании.

Минусы: Обязательно наличие юзверских прав на ломаемой машине. Не работает

в следующих случаях:

1) /var и / на разных разделах.

2) /var/tmp отсутствует или доступ туда закрыт.

3) на машине присутствует postmaster, т.е. ошибочные письма не попадут в

/var/tmp/dead.letter.

Баг нумбер два раза - два админа-молодца, одинаковых с лица

Версии демона: до 8.10.0 (8.9.3 - абсолютно точно)

Все эти превосходные версии содержат целых 2 бага, а именно:

1) Возможность запихивать LMTP (local mail transfer protocol - протокол

передачи локальной почты)-команды прямо в тело сообщения.

2) Возможность создания тупика между сендмайлом и mail.local.

Описание:

1) Пока mail.local в режиме LMTP ищет в теле мессаги строку "./n" -

конец сообщения, сендмайл не пропускает ее. Но если в теле мессаги встроить

строку "(2047 chars).\n", то получится мнимый конец :). Остаток мыла будет

воспринят как LMTP-команды. Это позволяет, например, посылать сообщения на

несколько ящиков сразу, в обход самого сендмайла и фильтров.

2) Но mail.local возвращает результат выполнения LMTP-команды сендмылу. Но

поскольку в данный момент времени он не ждет этих сообщений, буфер

ввода/вывода будет просто наполняться ими. При большом количестве команд (или

просто текста, ведь он тоже будет восприниматься как команды, а следовательно

mail.local будет выдавать ошибки) буфер будет просто забит и возникнет

пресловутый тупик.

Баг нумбер два раза по два - люблю админов я

Версии демона: 8.10.0 и 8.10.1 (только на Solaris'е)

Описание: Эти версии тоже, как ни странно, содержат два бага:

1) Версия сендмыла 8.10.0 для соляриса предоставляла такую вещь, как

"Content-Length". По ней определяется, сколько места будет занимать мыло на

винте. Мол, эта фича у нас новая такая. Но они не учли возможность, что

злобные хацкеры могут заменить реальный "Content-Length" на подставной

"Content-Length:99999999" %))). Особенно забавный результат достигается, если

в конце заголовка вставить следующее:

"(2047 chars)\n

Content-Length: 99999999\n"

2) Если тело сообщения пусто, а в конце заголовка стоит "(2047

chars)Content-Length: \n", то следующая мессага будет "приклеена" к этому

заголовку, потому что строка "\n" будет потеряна, пока сендмайл пытается

считать Content-Length.

Баг нумбер три - сюда смотри

Версии демона: 8.7 - 8.8.2 (Linux и OpenBSD)

Описание: У сендмайла этих версий существует так называемый smtpd-баг. Что это

такое и кого им кормят, объяснять достаточно долго (скажу только, что баг

это достаточно известный).

Код эксплоита (в оригинале):

#Hi !

#This is exploit for sendmail smtpd bug

# (ver. 8.7-8.8.2 for FreeBSD, Linux and may be other platforms).

#This shell script does a root shell in /tmp directory.

#If you have any problems with it, drop me a letter.

#Have fun !

#

#

#----------------------

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

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001