Два героя двух следующих историй принадлежат к особой хакерской ветви под названием «кракеры», — так называют хакеров, которые взламывают программы при помощи реинжиниринга коммерческих приложений или простой кражи кодов этих приложений или лицензированных кодов, так что они могут использовать эти программы бесплатно и распространять их через лабиринт тайных кракерских сайтов. (Не надо их путать с программами «кракерами» для взлома паролей).
У кракеров есть три главных мотива для погони за определенным продуктом:
• Получить программу, которая их интересует, для пристального изучения.
• Принять вызов, чтобы понять, сможет ли он превзойти конкурента (обычно разработчика), — аналогично тому, как игроки стремятся превзойти оппонента за шахматной доской, в бридже или за покерным столом.
• Разместить программное обеспечение в Интернете, чтобы оно стало доступным другим обитателям виртуального мира бесплатно. Кракеры взламывают не только программы, но также и коды, используемые для создания лицензированных ключей.
Оба героя наших историй взламывают сайты производителей ПО, чтобы украсть у них коды программ и распространить их ключевые элементы в группах кракеров, чтобы они могли использовать это ПО бесплатно. Есть много людей с хакерскими способностями, которые занимаются тем же, и есть производители программ, которые не представляют, какой вред наносят им хакеры.
Кракеры существуют в темном, надежно спрятанном мире, где валютой является украденная программа — масштабы кражи интеллектуальной собственности могут ужаснуть любого нормального человека. Потрясающий последний акт этой истории подробно описан в конце главы в разделе «Распределение: мир кракеров».
Истории в этой главе сильно адаптированы для обычных читателей.
ДВУХЛЕТНЕЕ ХАКЕРСТВО
Эрик — тридцатилетний консультант по безопасности. Он жалуется: «Когда я сообщаю об уязвимости, я часто слышу: «Это ерунда.
Что за проблема? Какой от этого вред?». Его рассказ хорошо иллюстрирует часто забываемый трюизм: обычно люди гибнут от небольших ошибок.
Надо предупредить, что эта история может показаться людям с недостаточным знанием технического арсенала хакеров слишком трудной для восприятия. Это — некая хроника, описывающая трудовые будни кракеров. То, о чем здесь рассказывается, произошло совсем недавно. Итак, Эрик, как и многие другие герои этой книги, днем работает консультантом, который помогает бизнесу защитить свои информационные активы. Но зато ночью он превращается в хакера, проникающего в самые неожиданные места.
Эрик принадлежит к специальному типу хакеров, которые стремятся к цели с невероятным упорством и никогда не бросают своих попыток, даже если они занимают месяцы или годы.
РАБОТА НАЧИНАЕТСЯ
Несколько лет назад Эрик и еще несколько хакеров собирали различные типы программ и, в конце концов, достигли такого состояния. когда они стали «собственниками кодов» всех основных программ с одним единственным исключением. «Это была последняя программа, которой у меня не было, — объясняет Эрик, — и я не знаю почему, но мне было просто суперважно добраться до нее». Я прекрасно понимаю эту его страсть. Эрик в душе — охотник за трофеями и чем ценнее программа, тем крупнее трофей.
Это задача заводила Эрика больше, чем он мог признаться себе. «Есть несколько сайтов, на которые я хочу попасть, но они действительно трудны по некоторым причинам», — просто объясняет он. Я могу понять и эту его эмоцию.
Он начал обычным способом, « с о сканирования портов на Интернет-сервере, — это первое место, куда я заглядываю, когда пытаюсь проникнуть на Интернет-сервер. Обычно там есть много интересного. Но на этот раз я не мог ничего найти». Начиная атаку, хакеры обычно подбираются к мишени осторожно, чтобы избежать сигналов тревоги и не быть замеченными администратором. Это особенно актуально в наши дни, когда многие компании пользуются системами обнаружения вторжения, чтобы заметить сканеры портов и другие типы хакерских инструментов, которыми обычно пользуются атакующие.
Эрик: «Я искал несколько портов, которые должны были стать для меня интересными мишенями». Он охотился на список номеров портов, которые используются для Интернет-сервера, терминальных сервисов, Microsoft SQL-сервера, Microsoft VPN. NetBIOS, почтового сервера (SMTP) и других целей.
На сервере Windows, порт 1723 (как отмечалось в главе 7) обычно используется для протокола, известного, как туннель «точка-точка», который является реализацией V P N компанией Microsoft и использует авторизацию на базе Windows, Эрик вспоминал, что пробуя порт 1723, он «понял, какую роль играет сервер».
Он даже не пытался скрывать свою личность на этом этапе, поскольку «компании так часто подвергаются сканированию в наши дни, что на это никто не обращает внимания. Одно сканирование среди сотни тысяч таких же ничего не значит».
(Оценка Эриком невысокой степени риска быть обнаруженным и идентифицированным базируется на его авантюрном предположении, что это сканирование портов будет похоронено в «шуме» современного Интернета. Действительно, сетевой администратор компании-мишени может быть слишком загруженным или ленивым для того, чтобы проверять все записи об активности в сети, но всегда есть шанс, что он займется именно этим. Более осторожные хакеры стремятся не рисковать даже в такой малости).
Несмотря на весь риск, в этом случае сканирование портов не выявило ничего полезного. Далее, используя стандартную программу. которая работала как сканер CGI (common gateway interface), он обнаружил log-file, созданный WSFTP-cepвepом, который содержал, кроме всего прочего, список имен файлов, загружаемых на сервер. Он был аналогичен любым другим распечаткам работы FTP-серве-ров, говорит Эрик, «за исключением того, что этот список хранился в каждой директории, файлы которой были загружены», так что, когда вы видели имя файла в списке, который выглядел интересно, то он находился именно здесь — вам не надо было охотиться за ним.
Эрик проанализировал FTP-записи и обнаружил имена файлов, которые были загружены в директорию «/include», где обычно хранились файлы типа «.inc» — программные функции общего типа, которые взяты из других модулей кодов. В Windows 2000 по умолчанию эти файлы не были защищены. После тщательного просмотра списка файлов в log Эрик использовал свой Интернет-браузер, чтобы просмотреть коды в некоторых файлах, которые, по его мнению, могли содержать важную информацию. Специальное внимание он уделял файлам, которые могли содержать пароли резервного сервера баз данных. И случайно он наткнулся на нечто интересное.
«В тот момент», — вспоминает Эрик, — «я уже сделал десяток запросов на Интернет-сервер и ничего не мог там найти». Хотя находка паролей базы данных и была восхитительной, он быстро понял, что на этой машине нет сервера баз данных.
С этого момента ситуация стала «интересной».
«Я ничего не мог найти на том сервере, но у меня была специальная программа, которая перебирала возможные имена узлов на основе списка общеупотребительных имен узлов — как gateways, backup, test и т.д. плюс имя домена. Она перебирала список общеупотребительных имен узлов, чтобы убедиться, какие имена узлов существуют в этом домене.
Люди очень предсказуемы в выборе имен узлов, поэтому очень просто найти серверы».
Отыскать серверы было просто, но это по-прежнему не привело его никуда. Затем его озарило: компания расположена не в США. Поэтому «я начал добавлять в конце расширения различных стран и опять перепробовал все названия узлов, которые уже отыскал при помощи моего сканирующего средства». Например, для японской компании это выглядело бы так:
hostname.companyname.com.jp
Это позволило ему отыскать сервер архивирования и почтовый сервер. Он попал на них с помощью паролей, которые он обнаружил в файлах источников (.inc) в «include». Пароль для сервера Microsoft SQL был найден в директории администратора ( « s a » ) . Он смог выполнять команды при помощи стандартной процедуры (xpcmdshell), которая позволяла ему запускать shell-команды там, где работал SQL-сервер, обычно в привилегированном режиме. И — удача! Это дало ему полный доступ к Интернет/почтовому серверу.
Эрик немедленно начал рыться в директориях в поисках копий кодов и других ценностей. Его главной целью было найти очень секретную программу, используемую для производства лицензионных ключей для пользователей, которая обычно называется генератором ключей или «keygen». Сначала надо было собрать как можно больше информации о системе и ее пользователях. Все собранные интересующие его сведения Эрик записывал в таблицу Excel, где классифицировал пароли, IP-адреса, имена узлов, какие сервисы были доступны через открытые порты и т.д.
Он также заглядывал и в такую скрытую часть операционной системы, которую неопытные хакеры обычно пропускают, как LSA-секреты, где содержатся сервисные пароли, пароль последнего пользователя, входившего в компьютер, RAS-имена (Remote Access Services — услуги удаленного доступа) для dial-up, пароли рабочих станций, используемые для доступа в домен и многое другое. Он также просмотрел и защищенную область для хранения данных, где хранились пароли для Internet Explorer и Outlook Express.