На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Хакинг

Что же хакер может извлечь из Web? В начале книги мы уже писали, что Web служит для хакера одним из основных источников информации, необходимой для успешного выполнения атаки на компьютерные системы. На Web-страничках хакер может найти телефоны организации, адреса электронной почты сотрудни­ков организации и адреса Web-сайтов филиалов организации и ее партнеров. Все это весьма ценная вещь, требуемая для выполнения атак на почтовые клиен­ты, для сканирования телефонов организации с целью удаленного взлома досту­па к корпоративной сети, или других задач.
Далее, очень часто хранящаяся на Web-серверах информация содержит много такого, что не связано напрямую с предоставлением информации посетителям, а оставшееся, например, вследствие недосмотра разработчиков сайта. Очень часто в комментариях внутри кода HTML Web-страничек можно найти указания на
фамилии разработчиков (а это - логин для попыток входной регистрации), их
телефоны, адреса электронной почты. Ссылки в коде HTML на ресурсы сайта содержат сведения о структуре каталогов сервера. Применяемые для работы сайта сценарии также не лишены недостатков и подчас позволяют проникать на серверный компьютер за счет элементарных ошибок программирования (на этом основаны описываемые далее атаки переполнения буфера).
Программное обеспечение, применяемое на в частности,
содержит большое число уязвимостей, и выявивший их хакер может с их помо­щью взломать доступ к сайту. Далее хакер превратит сервер HTTP, обслужи­вающий сайт, в ворота для проникновения из Интернета в локальную сеть орга­низации, содержащую лакомые информационные ресурсы. Успеху такой атаки
весьма способствует плохая настройка системы защиты Web-сервера, наличие открытых для записи каталогов, слабые пароли доступа и так далее.
Наконец, отчаявшись взломать Web-сайт, хакер может выполнить атаку DoS и попросту «завалить» работу компьютерной системы сайта, что неоднократно происходило даже с такими мощными системами, как сайт Yahoo. Такие атаки
мы опишем в следующей главе, а в этой главе займемся более созидательными и
полезными задачами хакинга Web-серверов, нежели такое достаточно бессмыс­ленное занятие, как отправка (за свой счет) на Web-сервер пакетов, затрудняющих работу серверного компьютера. Вначале сделаем экскурс в вопросы функциониро­вания сайта Web и выявим задачи, которые должен решить хакер для его взлома.
Функционирование сети Web можно представить себе как обмен информацией между пользователем Web или, как говорят, клиентом Web, и ресурсом Web, причем на пути этого обмена находится многоуровневая программно-аппаратная система, которая выполняет следующие функции.
На компьютерах пользователей Web работают программы-клиенты Web, кото­рые обеспечивают пользовательский интерфейс и обмен информацией с серве­ром Web через сеть Интернет. Сервер Web - это служба, исполняемая на сете­вом компьютере и обеспечивающая прием запросов пользователя с последую­щей передачей запроса приложениям Web, которые обрабатывают запрос и пе­редают ответ серверу Web для пересылки запрошенной информации пользова­телю. Приложения Web для обработки запросов чаще всего обращаются к базам
данных, используя для этого специальные механизмы подключения к базам дан­ных и поиска в них нужной информации.
В качестве клиентов Web чаще всего используются программы-браузеры Web, например, Internet Explorer (ГЕ), работающие на основе двух средств - языка HTML разработки Web-страниц, и протокола HTTP, регламентирующего обмен
информацией между сервером и клиентом Web.
В качестве серверов Web используется множество программных средств от раз­личных производителей, включая информационный сервер Интернета IIS от фир­мы Microsoft, сервер Apache HTTP Server от фирмы Apache Software Foundation и другие. Эти серверы передают запросы приложениям Web, созданным на основе
технологии ASP (Active Server Page - активные страницы сервера) протокола CGI,
регламентирующего вызовы сценариев сервера, сервлетов Java фирмы SUN, языка РНР фирмы Apache Software Foundation и многих других.
Приложения Web, получив запрос от сервера Web, чаще всего обращаются к
базам данных, чтобы извлечь нужную информацию. В качестве этих баз дан­ных используются базы SQL фирмы Microsoft, Oracle фирмы Oracle и так далее. А чтобы подсоединиться к базам данных, передать им запрос и обменяться ин­формацией, в общем, выполнить функции управления базами данных - чаще всего используются протоколы ODBC (Open Data Base Connectivity - Открытый интерфейс доступа к базам данных).
И вот перед хакером встает задача - взломать всю эту махину программ, прото­колов, сценариев, языков, баз данных, операционных Что же он дол­жен для этого сделать?
Этапы хакинга Web-сайта
Исходя из такой многоуровневой структуры средств, обеспечивающих работу с
ресурсами Web-сайта, хакеру приходится потрудиться для прорыва к нужному
ему информационному ресурсу. Как правило, от хакера потребуется выполнение
следующих задач.
• Исследовать структуру Web-сайта - определить, какие компоненты входят в средства, обеспечивающие работу сайта, в том числе какие клиенты, прото­колы, серверы и приложения Web используются сайтом.
• Взломать Web-сервер - поскольку Web-сервер всегда подключен к Интернету, как правило, через TCP-порт 80, а программы, реализующие Web-серверы, изобилуют уязвимостями (про которые регулярно оповещают всех желаю­щих базы данных CVE, и даже ленты новостей многих Web-сайтов), то уда­ленный взлом Web-серверов - это отнюдь не фантастика.
• Исследовать приложение Web - какие механизмы задействованы для обра­ботки запросов - ASP, Java, CGI и так далее - без этого ничего сделать не удастся, сами понимаете.
• Взломать систему защиты приложения Web - это означает, во-первых, взлом механизма аутентификации, а во-вторых, механизма авторизации пользова­теля (и обойти систему аудита!). Задача аутентификации состоит в подборе пароля, скажем, методом словарной атаки или методом грубой силы - про­стым перебором всех вариантов пароля. Задача авторизации решается мно­гими путями, например, подменой файла куки (cookie), идентифицирующего
пользователя, если для авторизации использован механизм файлов куки.
• Выполнить атаку вводом данных - хакер должен попытаться взломать защи­ту приложения путем передачи Web-приложению специально подобранных данных, воспользовавшись уязвимостями приложения, вызванными ошибка­ми программирования. Наличие таких уязвимостей позволит, например, пе­редать исполняемый код вместо числового параметра, - и если этот не проверяет входные параметры, то, исполнив передан­ный хакерский код, сервер открывает к себе доступ.
• Исследовать интерфейс с базой данных - именно базы данных хранят нуж­ную хакеру информацию, так что хакер должен изучить способ подключения Web-приложения к базе данных, чтобы попытаться им воспользоваться.
• Взломать защиту интерфейса управления сайтом - как правило, Web-сайты снабжены средствами удаленного управления, так что ,у них всегда имеется открытый порт для удаленного управления, и его поиск и взлом - весьма
эффективный метод хакинга.
• Взломать сайт с помощью клиента - например, подменив серверный сцена­рий, можно собирать информацию обо всех посетителях сайта, а если этот
сценарий внедрить в содержимое Web-странички, можно выполнять успеш­ный хакинг Web-клиентов, который мы обсуждали в предыдущей главе.
Ясно, что описание всех этих средств заняло бы целую книгу (например, см. [11]). Мы, однако, ограничимся только некоторыми, наиболее популярными метода­ми взлома сайтов, реализованных с помощью сервера      5. Мы опишем, как
можно получить доступ к файловой системе серверного компьютера (раздел «Хакинг НТТР»), найти уязвимые CGI-сценарии сервера (раздел «Уязвимые сценарии») и получить доступ к запароленной страничке Web взломом пароля доступа методом грубой силы (раздел «Взлом доступа к страничкам Web»). В конце главы мы опишем методы загрузки на жесткий диск компьютера целого Web-сайта и объясним, что из этого можно извлечь для пользы дела.
Сервер IIS избран по той причине, что это наиболее популярный Web-сервер, ставший поэтому излюбленной мишенью для хакеров. Антихакер должен отчет­ливо понимать, что взлом Web-сайта представляет собой значительную угрозу, поскольку взломанный сервер - это ворота в сеть организации, и проникнувше­му в серверный компьютер хакеру открываются большие возможности. Хакер сможет изменять содержимое сайта - а это прямая угроза фальсификации и дис­кредитации всей организации, которой принадлежит взломанный Web-сайт. Ха­кер сможет перехватывать почту - а это угроза конфиденциальности информа­ции или ее фальсификации. Далее, подменяя загружаемые по FTP-доступу фай­лы, хакер сможет распространять трояны и прочие хакерские утилиты. Так что методы хакинга сайтов должны быть досконально известны антихакеру -более того, именно с их учетом следует выполнять тестирование системы защи­ты сайта на предмет ее устойчивости к атакам.
Рассмотрим перечисленные выше задачи хакинга Web-сайтов по порядку.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика