Защита информации в Интернет

Sendmail



sendmail

Данная тема столь обширна, что вполне заслуживает отдельной книги. С чего же начать? Программа sendmail — это агент рассылки электронной почты (МТА — mail transfer agent), используемый во многих системах UNIX. Из всех программ UNIX sendmail, пожалуй, является самой "вредной". Она обладает очень широким набором функций, в связи с чем позволяет настраивать свои параметры самыми разными способами и является очень сложной в использовании. Фактически о первых попытках взлома sendmail стало известно еще в 1988 году и с тех пор ее использовали для получения несанкционированного доступа к нескольким тысячам систем. Одно время была даже популярной такая шутка: "Какая ошибка в sendmail признана лучшей ошибкой недели?" В течение последних лет sendmail была значительно улучшена в плане безопасности, но она по-прежнему остается очень большой программой, исходный код которой содержит более 80000 строк. Таким образом, вероятность обнаружения новых изъянов в системе зашиты по-прежнему достаточно велика.
Как вы помните из главы 3, с помощью программы sendmail, а точнее ее команд vrfy и ехрп, можно идентифицировать пользовательские учетные записи. Это само по себе представляет угрозу, однако данная угроза — ничто по сравнению с той опасностью, которую таит в себе работающая программа sendmail. За десять последних лет в sendmail были выявлены целые россыпи изъянов защиты. К сожалению, необходимо констатировать, что список ее недостатков еще далеко не полон — несмотря на столь давний срок эксплуатации, в программе постоянно обнаруживаются новые и новые проблемы. Многие из этих проблем связаны с возникновением состояния переполнения буфера при удаленном подключении, а также с возможностью взлома при отсутствии проверки ввода. Одним из самых популярных методов взлома sendmail заключался в использовании недостатка sendmail 4.1, проявляющегося при перенаправлении ввода-вывода. Суть проблемы состояла в том, что взломщик с использованием конвейера мог направить программе sendmail команды для выполнения. При этом sendmail выполняла любую команду с привилегиями, которые применялись для программ, расположенных в каталоге bin.

hello
mail from: |
rcpt to: bounce
data
mail from: bin
rcpt to: | sed 4,/^$/d' | sh
data

Помимо универсальных методов, направленных на переполнение буфера или взлом при отсутствии проверки ввода, для получения несанкционированного доступа часто применяются средства, специфичные для sendmail. Например, одним из распространенных методов является создание или модификация пользовательского файла -/.forward с применением FTP или NFS при условии, конечно, что у взломщика имеется доступ для записи в рабочий каталог этого пользователя. В файле -/.forward обычно содержатся сведения о том, куда нужно перенаправлять почтовые сообщения или какие программы нужно запускать при ее поступлении. Очевидно, что для взломщика этот файл представляет собой "лакомый кусочек", а его модификация открывает перед злоумышленником весьма богатые возможности. Давайте рассмотрим пример того, что взломщик может добавить в файл ~/.forward выбранной им жертвы.

[tsunami]$ cat > .forward
|"op /bin/sh /home/gk/evil_shell ;
chmod 755 /home/gk/evil_shell"
<crtl> D
[tsunami]$ cat .forward
I"cp /bin/sh /home/gk/evil_shell ;
chmod 755 /home/gk/evil_shell"

Создав такой файл, взломщик помещает его в соответствующий пользовательский каталог взламываемой системы (естественно, при условии, что у него имеется право записи в этот каталог). Затем ему остается лишь отправить почту по адресу жертвы. [tsunami]$ echo hello chump | mail gk@targetsystem.com
Получение сообщения приведет к созданию в рабочем каталоге пользователя файла evil_shell. При запуске этого файла будет запущена командная оболочка с привилегиями, соответствующими уровню привилегий использованной взломщиком учетной записи.

Содержание раздела