Лекция: Создание и отправка сообщения
Вначале мы опишем, как можно запустить на атакованном компьютере команды MS-DOS, чтобы продемонстрировать всю мощь технологии внедрения активного кода в собщения электронной почты. Эти команды (в том числе форматирования дисков) исполняются сразу, как только несчастная жертва выделит полученное письмо в почтовом клиенте Outlook Express.
Итак, хакер Петя получил от ламера Коли письмо и решил над Колей «подшутить». В коде письма, приведенного выше, Петя находит заголовок X-Mailer: который указывает, что Коля, на свою беду, использует устаревшую версию почтового клиента Outlook Express 5.00. Петя, будучи малый не промах, знает, насколько уязвим клиет OE 5.00 для атак с вложенным активным кодом, и составляет письмо с активным вложениема, действуя следующим образом.
На первом шаге с помощью текстового редактора Блокном (Notepad) петя создает MIME-код, представленный ниже, и сохраняет этот код в файле Attack-hello.txt.
Если вы захотите повторить описываемый эксперимент, то при подготовке MIME-кода введите код в точности, как написано в коде выше, включая пустые строки перед строками-границами --1 и --2 и после каждого набора заголовков во вложениях. Код MIME весьма чувствителен к таким деталям.
Первые четыре строки послания — это команды протокола SMTP, которые обеспечивают отправку сообщения на сервер SMTP, работающий в режиме свободной ретрансляции — рассылающий любые сообщения, поступающие на сервер, по любому адресу. Команда hello устанавливает связь с сервером-ретранслятором, в качестве которого в нашей экспериментальной сети будет использоваться хост sword-2000.sword.net. Команда mail from указывает почтовый адрес отправителя, и ее следует избегать, а команда rcpt toзадает адрес получателя, который Петя смог увидеть в листинге в поле Received:.Последней стоит командаdata, после которой начинается собственно послание.
В послании из листинга выше активный код помещен во вложение, ограниченное строками "--1", и этот код содержит несколько команд MS-DOS для отображения каталога диска C: и вывода сообщения о наличии в системе уязвимости. Чтобы почтовый клиент автоматически отобразил послание, в него помещен код HTML, содержащий тег IFRAMEдля включения в текст послания встроенного фрейма:
<IFRAME src=3Dcid:THE-CID height=3DO width=3DO>
This message uses a character set that do not supported by the Internet Service. Please disregard.<BR</IFRAME>
Обратите внимание на атрибут src=3Dcid:THE-CID, который указывает на источник даных для фрейма с помощью идентификатора, и этот же идентификатор присвоен второму вложению в заголовке Content-ID: <THE-C1D>. При открытии этого письма в почтовом клиенте происходит автоматическая загрузка данных во встроенный фрейм, и тут-то и происходит самое интерестное.
Данные во втором вложении — это набор команд MS-DOS:
Тип данных для второго вложения определен как audio/x-wav — т.е., абсолютно не соответствующий действительности, поскольку вложение содержит команды MS-DOS. И вот, простой эксперимент показывает, что при чтении подготовленного таким образом письма почтовый клиент OE версии 5.00 (но не версии 5.50 или 6!) сбивается, и автоматически, без участия пользователя, исполняет эти команды при выборе письма в диалоге почтового клиента!
Давайте покажем это на практике. Чтобы послать это письмо, хакер Петя на своем компьютере исполняет такую команду MS-DOS:
type attack-hello.txt | nc -vv sword-2000.sword.net 25
Здесь nc — это название программы nc.exe (www.atstake.com), представляющей собой мощную многофункциональную утилиту, чаще всего называемую netcat — сетевой скальпель. Далее мы более подробно опишем ее возможности; здесь же указем, что утилита netcat используется для отсылки конвейеризованного текстового файла attack-hello.txt по адресу ретранслирующего SMTP-сервера sword-2000.sword.net, на стандартынй порт 25.
Получивший это послание Коля, почтовый клиент которого, как и у всякого ламера, настроен на автоматическое открытие полученных почтовых сообщений, щелкает на строке послания, и ему отображается диалог сеанса MS-DOS.
Рис. 1. Выделение полученного письма запускает вложение
Как видим, при этом были иполнены все включенные в письмо команды MS-DOS, и Коле просто повезло, что это послание — вполне безобидная дружеская штука, поскольку вложенный активный код всего лишь отображает содержимое диска C:\ и сообщение Your system has a problem (Ваша система в опасности). Однако в распоряжении хакера Пети имеются и более опасные команды, например, форматирования дисков или удаления файлов — мало ли можно натворить на чужом компьютере с помощью команд MS-DOS!
Тем не менее, описанная атака имеет чисто иллюстративный характер, и ее польза не очень велика. Самое большее, что она может сделать — это напугать неопытного пользователя, поскольку такие опасные команды, как форматирование и удаление файлов, всегда требуют подтверждения пользователя на начало работы. А вот сейчас вы узнаете, как можно сделать кое-что покруче и посодержательней — такое, что даст вам полный контроль над компьтером-жертвой.