17 мая 2012 года

О сервере бедном замолвите слово…

«Кто предупрежден, тот вооружен» или обстоятельный инструктаж по взлому серверов.

Автор: Алексей Павленко | Раздел:  | Дата: 07 августа 2001 года

Продолжая тему сетевой безопасности, начатую в статьях «Шпионы как мы» и «Мы как шпионы», поговорим о безопасности веб-серверов и вообще компьютеров, имеющих доступ в Интернет. У читателя может возникнуть чувство, что автор ярый Microsoft-ненавистник — не стоит так думать! Просто в Windows я разбираюсь гораздо лучше, чем во всяких народных Linux, — именно поэтому о дырах в безопасности этой системы знаю больше [1]. Я уверен, что после более глубокого изучения операционных систем из мира Linux в них удалось бы найти не меньше лазеек, но дальше речь пойдет не об этом. (Если же вас интересует, как вывести из строя Linux, — читайте одноименные «How to…» и ищите раздел «Взломать Linux».)

К статье Алексея Павленко, очевидно, требуется небольшой дисклаймер. Публикуя материал, посвященный технологиям взлома Интернет-серверов под управлением Internet Information Server, мы ни в коем случае не призываем использовать эти технологии в корыстных целях (да и аудитория «КТ», я полагаю, все же поцивилизованнее аудитории, скажем, журнала «Хакер»). Мы лишь хотим предостеречь читателей от слепого доверия той самой сетевой безопасности, о нерушимости которой громко трубят зарубежные фирмы. А администраторам серверов статья послужит еще одним напоминанием о необходимости защиты собственных сетей и заставит принять все меры к тому, чтобы описанные здесь методы и приемы взлома стали недоступны по крайней мере на их сервере.

Praemonitus praemunitus, господа: «кто предупрежден, тот вооружен»…

Сергей Scout Кащавцев

Итак, начнем.

Компьютер, подключенный к сети, может быть взломан — это уже аксиома. Но одно дело, если он используется лишь для редкого обмена файлами с сервером, и совсем другое — если сам является сервером и к нему часто подсоединяются клиенты (для этих целей существуют специальные www-, ftp-, почтовые и прочие серверы, причем довольно часто все службы работают на одной машине).

Сейчас наиболее популярны веб-серверы, которые обычно работают под управлением Windows NT/2000 (Internet Information Server — IIS) или Linux (Apache) [2]. Так сложилось, что большинство взломов сайтов (сводящихся чаще всего к банальной замене главной страницы) происходит чаще всего на IIS.

В каждом из нас живет ребенок, жаждущий разобрать любимую игрушку, дабы «посмотреть, что у ей внутре». Вот и мне всегда хотелось что-то поломать. Однажды я тоже заменил главную страницу некоего сервера (под управлением FreeBSD, кажется), попутно прихватив файлик с паролями в открытом виде. По истечении суток (!) взлом замечен так и не был, а поскольку человек я не вредный, то вернул все на свои места. Хак можно повторить хоть сейчас, но он стал возможен по вине администратора, а не программного обеспечения сервера. А как насчет возможности взломать любой компьютер? Скажете, что мне нужна губозакаточная машинка? Вот и нет! Microsoft сделала все, чтобы я обошелся без нее.

Фирма NSFOCUS security team нашла много глюков, сводящих безопасность IIS на нет. Именно она, помнится, предложила способ [3] , нахождения пароля для входа на сетевые ресурсы буквально за считанные минуты. Но этим ее изыскания не ограничились, и ниже приведено еще несколько находок.

Интернет дает абсолютную свободу для нарушения авторских прав. Тут можно найти терабайты последних версий программ, музыку и фильмы любых жанров. Секреты оформления сайтов легко подсмотреть в меню «View Source»; flash-ролики, которые «легально» сохранить вроде бы не удается, отыскиваются в кэше браузера — в папке «Temporary Internet Files» вашего компьютера; однако некоторые вещи все-таки остаются недоступными — к примеру, Java- и серверные скрипты. А что делать, если захочется узнать, как устроена, к примеру, гостевая книга, написанная на Perl? Писать письма автору, просить выслать кусочек исходника и получать отказ? Ну уж нет! Если сервер работает под управлением IIS, достаточно попробовать в адресе справа от названия скрипта добавить пять символов: +.htr. Чтобы не напрягать Интернет-сервер, попробуем на своем… Вуаля! Результат — на рис. 1.

1
Рис. 1. Вот вам и код чатового движка

Понравилось? Мне лично стало страшновато. А ведь этот глюк позволяет получить тексты файлов типа *.asp, *.asa, *.pl и многих других! Кстати, говорят, что в исходнике global.asa частенько лежат пароли к MS SQL Server…

Итак, узнавать исходные тексты некоторых файлов, доступных через Интернет, мы научились. А можно ли добраться до содержимого серверного диска C:? Нет проблем! На помощь приходит очередная ошибка, берущая начало в проблеме, именуемой UNICODE bug. Согласно документированному описанию [4], суть ошибки в том, что пользователь, набрав адрес определенными символами, может выполнить команды на сервере и тем самым добраться до файлов, недоступных из Интернета. На рис. 2 я получаю доступ… к списку каталогов своего компьютера!

2
Рис. 2. А вот — листинг корневой директории диска C:\

Как видно из рисунка, я хитрым образом послал команду dir c:\ командному интерпретатору. Самое забавное, что, даже если вы забыли командную строку и не помните, какие существуют команды и ключи (как, например, работать с тем же dir?), то всегда можно запустить Command Prompt или — что еще веселее — попросить помощь у взламываемого сервера, подкорректировав адрес. К примеру, вместо dir+c:\ (символ «+» используется вместо пробела) можно написать dir+/? и получить полный листинг параметров команды dir. В общем, сервер вас сам научит. Мило, не правда ли? А для того, чтобы после детального изучения содержимого каталогов вывести файл на экран, вполне подойдет старая добрая команда type, если же вы забыли правила ее использования, на помощь опять придет /?.

Впрочем, вынужден разочаровать тех, кто уже собирался почувствовать себя кул хацкером: в данном случае все ваши обращения к компьютеру идут от пользователя IUSR_НазваниеКомпьютера, чьи права изначально ограничены, поэтому, допустим, файл с паролями SAM вам украсть так просто не удастся, да и вывод на экран иногда будет обрываться… И слава богу.

Однако и «официально» доступные через эту дыру ресурсы таят немало интересного. Приведу еще один скриншот (рис. 3), сделанный уже не с локальной машины, а с американского сервера, на главной странице которого красуются картинки авторизованного партнера Microsoft и IBM. Письмо, посланное мною администратору, почему-то вернулось: видимо, сервер ждет следующего посетителя, посему, чтобы не возникло излишних соблазнов, адрес зарисован.

3
Рис. 3. Как вы думаете, что было в файле password.txt?

Кстати, на вышеупомянутом сервере была установлена Windows 2000 с Service Pack 1. Чтобы закрыть доступ пользователям к запуску команд на стороне сервера, администратору достаточно было отключить учетную запись IUSR_НазваниеКомпьютера, но после этого заходить на веб-сервер смогли бы лишь пользователи, которые прописаны в системе, и если для корпоративного сервера это нормально, то публичному уже не подойдет. В этом случае для Windows 2000 требуется установить второй Service Pack или HotFix [5], а вот Windows NT поможет только HotFix.

Таким образом, доступ к серверу можно получить, если на нем установлен веб-сервер и не хватает патчей. Однако компьютер находится под ударом даже тогда, когда веб-служба не запущена! Часто для доступа извне бывает открыт 139-й порт. Пусть есть небольшая локальная сеть из, скажем, десяти компьютеров, часть которых имеет свой IP-адрес. Допустим еще, что они работают под управлением Windows 98. Разумеется, у пользователей открыты сетевые ресурсы, некоторые с паролями, некоторые без. Подключить их сетевые ресурсы можно простой командой

net use z: \\xx.xx.xx.xx\ресурс

Пароли, как вы могли убедиться из статей «Шпионы как мы» и «Мы как шпионы», тоже не преграда. Единственный вопрос: как получить список доступных сетевых ресурсов? Не подключать же методом тыка все подряд! На выручку приходит LANguard Network Scanner [6].

Кстати, вполне возможно, что вместо списка сетевых ресурсов мы получим куда больше информации. Так, просканировав компьютер, страдающий от UNICODE bug, я узнал много интересного (рис. 4).

4
4-2
Рис. 4. Может, вам еще ключи от квартиры, где деньги лежат?

Ох уж эта безалаберность сисадминов! Уж не знаю зачем, но администратор этого сервера сделал практически все данные доступными любому желающему [7], я даже смог подключить… реестр сервера [8]! Трудно найти ворота шире…

Надеюсь, ознакомившись со статьей, читатели не кинутся ломать серверы под IIS (это, господа, уже не комильфо. — Scout.), а обратят больше внимания на свой личный компьютер, администраторы же поставят ВСЕ доступные сервис-паки. Сам же я сделал следующее: кинул в Favorites ссылку на NSFOCUS, стал почаще заходить на сайт Microsoft, а еще — загорелся желанием написать расширенный аналог LANguard Network Scanner. Все, решено, дописываю новую версию mp3Tag [9] и займусь этим — благо для создания сканера необходимо использовать всего несколько функций. Следите за статьями на www.softerra.ru…


[1] — Кстати, и вероятность того, что мой следующий веб-сервер будет работать именно под управлением Windows 2000, чрезвычайно велика.
[обратно к тексту]

[2] — Подробнее о них в моем втором уроке по программированию для Интернета на сайте SoftТерры: www.softerra.ru/review/program/11366
[обратно к тексту]

[3] — www.nsfocus.com/english/homepage/sa_05.htm
[обратно к тексту]

[4] — www.nsfocus.com/english/homepage/sa01-02.htm
[обратно к тексту]

[5] — Ищите на серверах Microsoft файл под названием Q293826_W2K_SP3_x86_en.EXE.
[обратно к тексту]

[6] — Подробнее в статье «Мы как шпионы».
[обратно к тексту]

[7] — Может быть, он работает в ФБР? — Scout.
[обратно к тексту]

[8] — И с удивлением увидел, что в Америке пользуются AVP.
[обратно к тексту]

[9] — www.kulichki.com/castle/soft/mp3tag
[обратно к тексту]

Share
/  iBusiness