Взлом inteet-магазина: взгляд изнутриDreamerXakep, номер #050, стр. 060-061 В наступившей кибернетической жизни, где компьютерные технологии выдвинулись на первое место и уверенно держатся там уже не первый год, появились новые возможности, которые предыдущему поколению даже не снились. Например, интернет-магазины. Казалось бы, что такого? - заходишь на сайт, кликаешь по товару, и он у тебя в корзине. Ждешь его почтой, либо живой доставкой в течение дня. А представь, как приходится работникам этого магазина? В нашей жизни воровство - самое распространенное преступление, поэтому в реальных магазинах обязательно присутствует охрана. В виртуале - подобная ситуация. Незащищенный сервер видно издалека, а эта незащищенность чревата для магазина огромными убытками. Где же ищут такую незащищенность? Например, в поисковиках. Вполне подойдет yandex.ru. Заходят туда и тупо набивают "интернет-магазин". Поисковик наградит множеством ссылок, по которым хакеры начинают свое исследование. В большинстве случаев интернет-магазины подвержены двум, нашумевшим в последнее время уязвимостям - ssl_mod и php_mod для Apache. Таким образом, исследуя интересующий сервер на эти баги, вполне возможно, что хакер обнаружит уязвимость. При помощи данных ошибок он и внедряется внутрь системы. Обычно взломщики сканят и ломают сервера не с провайдерской подсети, иначе их запросто вычисляют, даже если они ничего путного и не сделали. Взлом интернет-магазина - это не дефейс сайта, который может запросто сойти с рук. Вполне возможно, что за магазином следят специалисты в области защиты информации. Если у хакера не было большого опыта во взломе крупных серверов, то он просто рискует своей свободой. Так что весь дальнейший материал - это пересказ вещей, которых КАТЕГОРИЧЕСКИ нельзя делать! Ведь далее будет показан механизм проникновения внутрь магазина. И запомни, это только информация, а не руководство к действию. Прежде всего, хакер определяет, какие товары ему необходимо заказывать, иначе взлом магазина теряет всякий смысл. Например, зачем ему ломать виртуальную аптеку, если он здоров? Если же ему не хватает каких-то книг или компьютерного оборудования, то он идет в виртуальный книжный магазин или в инет-шоп по продаже компьютерной техники и аксессуаров. Также у хакера существует проблема выбора магазина: буржуйский или русский. Сейчас есть тенденция ломать именно русские шопы, так как на буржуйских оплата за доставку не всегда окупает стоимость товара. Итак, хакер нашел жертву. Допустим, это www.ezine.com. Чтобы оставить минимум следов, он делает HTTP-запрос вручную с какого-либо далекого шелла. Диалог будет примерно следующим: [root@china /root]# telnet www.ezine.com 80Trying 220.30.20.10...Connected to 220.30.20.10.Escape character is '^]'.HEAD / HTTP/1.0HTTP/1.1 200 OKDate: Fri, 13 Dec 2002 21:05:29 GMTServer: Apache-AdvancedExtranetServer/1.3.19 (Linux-Mandrake/3mdk) PHP/4.0.4pl1Connection: closeContent-Type: text/htmlConnection 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-администрирование магазина. Взлом В первую очередь, хакеру необходимо найти WWW-директорию. Это он может сделать путем поиска строки в httpd.conf. Затем, перейдя в эту директорию, ему следует найти cgi/php-скрипты, которые подключаются к базе. Пароль в таких скриптах указывается в большинстве случаев без какой-либо шифрации. Шаблон поиска может быть, к примеру, "passwd" или "password" без учета регистра. Иногда инфа о базе данных находятся в так называемых конфигурационных файлах, которые включаются в скрипт в его заголовке. Допустим, в ряде скриптов он нашел такую строчку: include "config.inc". Это значит, что на 99% в config.inc хранятся важные переменные, в том числе и информация о подключении к базе данных. Пусть первые строчки этого конфига будут: $user="dbuser";$password="dbpassw0rd";$dbname="ezine";$dbhost="localhost"; Этой информации взломщику будет вполне достаточно для воплощения его идей в реальность. Следующим шагом будет исследование базы данных на предмет паролей к web-админ зоне. В 90 из 100 случаях в качестве базы данных используется mysql. Под нее ориентировано много движков, а синтаксис запросов наиболее популярен и пластичен (нежели postgresql, например). Вначале он подцепляется к mysqld и просматривает все базы. Затем, выбирает наиболее подходящую из них и находит в ней интересующую информацию. bash$ mysql -udbuser -pdbpassw0rd -e 'show databases'3 rows in set (0.00 sec)bash$ mysql -udbuser -pdbpassw0rd -e 'show tables' ezine3 rows in set (0.00 sec)bash$ mysql -udbuser -pdbpassw0rd -e 'select * from admins limit 1' ezine В данной таблице хакер обнаружил пароль на пользователя admin от админ-зоны www.ezine.com. Если все действительно так, то он приступает к штурму магазина. Но не всегда пароли на web лежат в mysql, да еще и plain text'ом. Может случиться так, что админ-скрипты просто закрыты .htpasswd-авторизацией. А обнаружить это легко. Он выясняет, где находится директория для администрирования на вебе (путем поиска строки 'admin' в httpd.conf) и просматривает ее содержимое. Если находит там .htaccess и .htpasswd (хотя он может называться и по-другому), значит, есть зашифрованные пароли. Их можно прочитать, так как его права удовлетворяют правам доступа на этот файл. Допустим, он нашел в .htpasswd строку: admin:xa.H512YeHBkA. Далее ему придется поручить расшифровку этого DES-хеша старому доброму John The Ripper'у. Он закидывает салт в какой-нибудь файл в директорию john (например, pswd), затем вызывает командную строку (без нее в XP наблюдались глюки) и набирает там примерно следующее: john -w:путь_к_словарю pswd -rules > done. Ломать без словаря он будет пытаться лишь в безвыходной ситуации, когда другие методы не прокатывают (вот пример где можно слить словарик: http://kamensk.net.ru/forb/1/dict.zip). Немного о параметрах John'a. Параметр -rules подбирает пароль с усложнением словарного слова (замена регистра, вставка цифр после слова и т.д.). Также существует метод -single (без параметра -w). Он подбирает пароль относительно заданного логина. Короче говоря, задача взломщика - любыми путями расшифровать этот пароль. Это довольно сложно. Изучение движка и структуры магазина После того, как хакер добыл аккаунт на web-админа магазина, он травит на него свой браузер (предварительно установив proxy, либо цепочку анонимных проксей, так как web-сервер ведет логи, а светить свой ip небезопасно). В первую очередь ему нужно посмотреть, сколько оплаченных заказов в день проходит через магазин. Для него это важно, так как, если в день проходит около 200-300 заказов и более, шанс на то, что заказанный товар вышлют, и за хакером никто не придет, резко возрастет. В противном случае ему следует серьезно задуматься, стоит ли рисковать. Во-вторых, порядок оформления заказа: как правило, российские магазины позволяют расплатиться за заказ почтовым переводом, и в случае перечисления денег отправляют заказ клиенту. Это, пожалуй, идеальный вариант. Его задачей будет через несколько дней после того, как он сделал заказ, поменять статус заказа на web-панели на оплаченный, и ждать товара =). Это все в теории. На практике все может оказаться немного сложнее, поэтому первый заказ хакер может послать своему корефану, который ничего не смыслит в компах, а тем более во взломе. Затем, если все ок, покупает у него свой заказ за бутылку пива. Если все проходит без последствий, он заказывает товар на себя. В то же время хакер не перегибает палку: не заказывает много товаров и не делает это слишком часто. А все дело в том, что убытки магазину должна списать бухгалтерия. На маленькие цифры могут закрыть глаза, но когда счет идет на тысячи долларов, тут ситуация непредсказуема. Также хакер как можно меньше светится на админ-зоне магазина и не рассказывает никому о факте взлома, иначе он может поплатиться. Ахтунг, второй раз! Эта статья написана только в целях просвещения. Это ни в коем случае не руководство к действию. Все, что здесь написано, уголовно наказуемо! Не надо повторять описанные действия! Далеко не все интернет-магазины стоят на сервере Linux. Достаточно много магазинов используют платформу Win2000-сервера. А там, как известно, полно своих багов - IIS, cart32 и многих других... Но, как это ни парадоксально, большая доля взлома приходится именно на Linux-сервера. Пингвин, пингвин... Содержание |


















































































































