Техника сетевых атак
Шрифт:
Отсюда мораль - не каждая попытка заткнуть дыру заканчивается успешно. Забудьте свою психологическую инерцию и тестируйте все возможные значения -от осмысленных до явно бредовых.
Врезка «замечание»
При правильной политике администрирования, ошибка в IIS никак не влияла на его работу. Достаточно было убрать права на чтение файла. К сожалению, в большинстве случаев такие права установлены, в надежде на грамотную защиту сервера, теоретически никогда не путающего содержимое скрипта с результатами его работы.
В
Рисунок 20 Демонстрация удаленного выполнения программы
Если заглянуть в исходный файл, прилагаемый к книге (“/SRC/Hello.pl”), бросается в глаза одна странность:
· #!/usr/local/bin/perl -w
· print "Content-type: text/html\n\n";
· print "Hello,Sailor!\n";
Сервер «съел» одну строку (в листинге она выделена жирным шрифтом). Если же ее попытаться убрать, то выполнение скрипта прервется с сообщением об ошибке. Причины такого поведения подробно рассмотрены в дополнении «Протокол CGI».
В главе «Что можно сделать с помощью Perl» замечалось, что многие сервера неявно предоставляют возможность выполнения скриптов. Для этого достаточно поместить свой файл в директорию, с атрибутами “r w x - - x - - -x”, которая, как правило, называется «/BIN» или «/CGI-BIN». Иногда это можно сделать с помощью FTP (File Transfer Protocol, смотри главу «Протокол FTP» [258]), но в подавляющем большинстве случаев ftp-доступ закрыт (точнее, правильнее было бы сказать, не открыт).
Напротив же, метод PUT может быть не закрыт, что позволит с успехом им воспользоваться (в Internet все, что явно не запрещено - разрешено). Использование метода PUT требует явного заполнения некоторых полей, которые будет рассмотрены ниже.
При «заливке» файла на сервер в заголовке запроса обязательно наличие поля “Content-length”, равного длине закачиваемого файла в байтах, а так же “Accept”, указывающего в каком формате будут переданы данные. Необязательное поле “From” может содержать электронный адрес отправителя, а может и вовсе отсутствовать.
Методом PUT можно воспользоваться, для создания нового или замещения любого уже существующего файла на сервере, разумеется, при наличии надлежащих прав доступа. Например, чтобы оставить свое graffiti на главной страничке сайта[259] можно послать серверу следующий запрос:
· PUT /~kpnc/ HTTP/1.0
· Accept: text\html
· From: vasia@bestia.my
· Content-type: text/html
· Content-length:220 [260]
·
· «BODY»
· Съел бобра - спас дерево!
· «HR»
· «H1»
· «CENTER»
· «IMG SRC="http://www.aport.ru/w_liven.gif"»
·
Здесь был «A href="#"»Вася«/A»…· «IMG SRC="http://www.aport.ru/w_liven.gif"»
· «/H1»
· «/BODY»
Если операция прошла успешно, главная страница в браузере Internet Explorer будет выглядеть так:
Рисунок 21 Так выглядит главная станица сервера после ее модификации
Это один из многочисленных способов, используемых злоумышленниками для модификации страничек плохо защищенных серверов в Internet. Такие в настоящее время необычайная редкость, тем не менее, приведенный ниже фрагмент убеждает, что они все-таки есть:
"И взбрело мне (по закрепившейся привычке) поглядеть степень защищенности и (самое главное) степень тупости админа. Для этого я стал юзать (что думаете???) свой любимый Нетскап 3.01 (Браузер Netscape Navigator поддерживает метод PUT, в отличие от Internet Explorer - К.К). Стал лазить по директориям и обнаружил очень странную для сегодняшнего дня вещь, а именно директории /scripts и /cgi-bin оказались открытыми"
«История о Забывчивости и Извращениях, или как маленький локальный Баг изменил ход дела» Story by DiGGertaL SpOOn (Оригинал статьи находится по адресу.
Дальше статья повествует, как наивный чукотский «вьюноша» манипулировал всеми «хакерскими» утилитами по очереди, ломясь в широко открытую дверь. Чтобы повторить его «подвиг» вовсе не обязательно устанавливать на своей машине Netscape Navigator. Можно воспользоваться, например, приложением «Microsoft Web Publishing», которое поддерживает закачку файлов на сервер по HTTP-протоколу всеми доступными способами:
Рисунок 22 Microsoft Web Publishing поддерживает метод POST необходимый для «заливки» документов на сервер
Однако чаще всего злоумышленнику под тем или иным предлогом в доступе будет отказано. Возможные мотивации - метод PUT запрещен; метод PUT разрешен, но нет прав записи в указанный файл (директорию); наконец, метод PUT разрешен, права записи есть, но требуется авторизация (ввод имени и пароля).
Ниже приведены протоколы трех последовательных попыток подключения к следующим серверам:http://dore.on.ru и http://195.161.42.222.
· PUT /index.html HTTP/1.0
·
· HTTP/1.1 405 Method Not Allowed
· Date: Sat, 15 Apr 2000 21:50:26 GMT
· Server: Apache/1.2.6
· Allow : GET, HEAD, OPTIONS, TRACE
· Connection: close
· Content-Type: text/html