Взлом internet-магазина: взгляд изнутри

Dreamer

Xakep, номер #050, стр. 050-060-1


В наступившей кибернетической жизни, где компьютерные технологии выдвинулись на первое место и уверенно держатся там уже не первый год, появились новые возможности, которые предыдущему поколению даже не снились. Например, интернет-магазины. Казалось бы, что такого? - заходишь на сайт, кликаешь по товару, и он у тебя в корзине. Ждешь его почтой, либо живой доставкой в течение дня.

А представь, как приходится работникам этого магазина? В нашей жизни воровство - самое распространенное преступление, поэтому в реальных магазинах обязательно присутствует охрана. В виртуале - подобная ситуация. Незащищенный сервер видно издалека, а эта незащищенность чревата для магазина огромными убытками.

Где же ищут такую незащищенность? Например, в поисковиках. Вполне подойдет yandex.ru. Заходят туда и тупо набивают "интернет-магазин". Поисковик наградит множеством ссылок, по которым хакеры начинают свое исследование. В большинстве случаев интернет-магазины подвержены двум, нашумевшим в последнее время уязвимостям - ssl_mod и php_mod для Apache. Таким образом, исследуя интересующий сервер на эти баги, вполне возможно, что хакер обнаружит уязвимость. При помощи данных ошибок он и внедряется внутрь системы. Обычно взломщики сканят и ломают сервера не с провайдерской подсети, иначе их запросто вычисляют, даже если они ничего путного и не сделали.

Взлом интернет-магазина - это не дефейс сайта, который может запросто сойти с рук. Вполне возможно, что за магазином следят специалисты в области защиты информации. Если у хакера не было большого опыта во взломе крупных серверов, то он просто рискует своей свободой. Так что весь дальнейший материал - это пересказ вещей, которых КАТЕГОРИЧЕСКИ нельзя делать! Ведь далее будет показан механизм проникновения внутрь магазина. И запомни, это только информация, а не руководство к действию.

Прежде всего, хакер определяет, какие товары ему необходимо заказывать, иначе взлом магазина теряет всякий смысл. Например, зачем ему ломать виртуальную аптеку, если он здоров? Если же ему не хватает каких-то книг или компьютерного оборудования, то он идет в виртуальный книжный магазин или в инет-шоп по продаже компьютерной техники и аксессуаров. Также у хакера существует проблема выбора магазина: буржуйский или русский. Сейчас есть тенденция ломать именно русские шопы, так как на буржуйских оплата за доставку не всегда окупает стоимость товара.

Итак, хакер нашел жертву. Допустим, это www.ezine.com. Чтобы оставить минимум следов, он делает HTTP-запрос вручную с какого-либо далекого шелла. Диалог будет примерно следующим:

[root@china /root]# telnet www.ezine.com 80

Trying 220.30.20.10...

Connected to 220.30.20.10.

Escape character is '^]'.

HEAD / HTTP/1.0

HTTP/1.1 200 OK

Date: Fri, 13 Dec 2002 21:05:29 GMT

Server: Apache-AdvancedExtranetServer/1.3.19 (Linux-Mandrake/3mdk) PHP/4.0.4pl1

Connection: close

Content-Type: text/html

Connection closed by foreign host.

[root@china /root]#

Как видно, требуется всего лишь запросить HEAD на корневой каталог сервера (путем ввода HEAD / HTTP/1.0 и два перевода строки). Собственно для проведения анализа его интересует только одно поле Server в ответе. Хакеру такой ответ вполне подходит, так как на нем установлен PHP версии 4.0.4pl1 (он уязвим и с помощью 7350fun эксплойта на сервере возможно получить удаленный шелл). Остается последняя сложность - найти на сервере php/cgi-скрипт, которому можно передавать параметры, и запустить эксплойт с параметром этого скрипта (найти его можно на www.packetstormsecurity.nl). Через определенное время наш хакер получает шелл с правами nobody. Для него важно оставить на сервере минимум следов, поэтому его задача - проведя на нем немного времени, найти пароль на базу данных (а скорей всего она будет присутствовать, так как большинство движков магазина ориентированы на них) и изучить эту базу с целью обнаружения в ней паролей на web-администрирование магазина.

Содержание  Вперед на стр. 050-060-2