Все, до чего додумалась в ту ночь эта парочка, оказалось очень близко к реальности. Луис говорит об этом, как об особом роде хаке‑рской интуиции.
«Трудно объяснить, как ты начинаешь это ощущать. Это опыт, это приходит в результате долгого изучения того, как создаются подобные системы.
На самой ранней стадии Брок почувствовал, что надо продолжать этим заниматься, так как мы сможем достичь результата именно этим путем; это трудно объяснить. Интуиция хакера?
Вначале вы видите лишь клочки информации и то, как устроены те или иные вещи, но постепенно у вас где‑то внутри начинает зарождаться понимание всей структуры компании и мировоззрения людей, ответственных за организацию ИТ‑системы. Начинаешь постигать, что они знают о безопасности, и что они для нее делают».
Я считаю, что хакеры достигают какого‑то уровня понимания того, как сконфигурированы сети и системы, просто внимательно наблюдая за всем происходящим. За тем, как действуют системные администраторы, как они думают. Это как в шахматах, когда вы стараетесь просчитать, перехитрить своего оппонента.
Итак, суть здесь заключается в глубоком понимании того, как обычно мыслят и действуют сетевые администраторы, какие типичные ошибки они делают. Может, прав Луис, который считает: то, что некоторые люди называют интуицией, лучше назвать опытом.
ДЕНЬ ЧЕТВЕРТЫЙ
Следующее утро началось с проверок записей на устройстве 3Com, в ожидании тех, кто попытается осуществить соединение. Как только соединение происходило, они старались как можно быстрее определить IP‑адрес входящего соединения.
Они обнаружили, что подобные соединения длились минуту или около того, а потом прерывались. Если их предположение было верным, это означало, что курьер соединялся через dial‑up, получал рабочее задание и прерывал соединение. Это означало, что им надо было действовать максимально быстро. «Когда мы видели, что появился новый IP‑адрес, то дрожащими руками старались схватить его», — так образно Луис описывает свои ощущения. Адреналин буквально переполнял их в этот момент, как будто они играли в увлекательную компьютерную игру.
Так они выявили несколько портов для услуг, которые могли быть уязвимы, надеясь найти тот, который они смогли бы атаковать, например, telnet или ftp‑сервер, или Интернет‑сервер с недостаточным уровнем безопасности. К тому же, они надеялись получить доступ к открытым общедоступным директориям через NetBIOS. Они изучали также и такие программы на основе удаленного терминала GUI, как WinVNC или PC Anywhere.
По мере того, как занимался день, они увидели, как на некоторых узлах заработали определенные сервисы.
«Мы никуда не проникали, мы просто сидели и активно сканировали все, когда появлялось соединение с удаленным пользователем. И когда произошло очередное соединение, мы провели очередное сканирование и нашли открытый порт, используемый для PC Anywhere».
Приложение PC Anywhere позволяет получить удаленный контроль над компьютером. Однако, это можно сделать только в том случае, когда другой компьютер тоже выполняет какую‑то программу.
«Видя этот порт во время сканирования, мы испытали очередной прилив энтузиазма: «О, на этой машине работает PC Anywhere. Это, наверное, один из компьютеров пользователей, давайте попробуем с ним разобраться.
Мы как будто кричали в пространство: «У кого установлен PC Anywhere?». Кто‑то кричал нам в ответ: «Это мы». Поэтому я прокричал IP‑адрес, так, чтобы он мог соединиться с системой как можно быстрее».
Луис называет попытку соединения с системой PC Anywhere «очень важным моментом». Он присоединился к другому парню, — пользователю, при помощи окна, появившегося на экране. «Вначале там был просто темный фон, — рассказывает Луис, — а затем происходила одна из двух вещей — либо быстро появлялся серый пароль, или же фон становился голубым, и на сцену выходила система Windows desktop».
«Именно ответа в варианте desktop мы ждали, затаив дыхание. Мгновения казались вечностью, пока мы ожидали, что черный экран исчезнет. Я думал про себя: „Соединяйся, соединяйся, время кончается“. И еще: „я хочу получить пароль“.
Как раз в последнюю секунду, когда я подумал: «ну, сейчас появится пароль» — появился Windows desktop! Ура! Мы, наконец, получили вожделенный desktop. Все, кто был в комнате, могли подойти и посмотреть. Моей первой реакцией было: «У нас опять появился шанс, нельзя его упустить!»
Итак, им опять повезло, они «поймали» клиента, который соединился с устройством 3Com.
«В этот момент мы подумали, как говорится: „либо пан, либо пропал“ —мы знали, что эти люди соединяются лишь на короткое время и понимали, что у нас может просто не быть другой возможности».
Первое, что надо делать при появлении сессии PC Anywhere, это нажимать две клавиши на экране. Луис называет их так: «Кнопка очистки экрана» и «Кнопка для фиксации клавиш консоли». Он объясняет:
«Когда вы используете PC Anywhere, по умолчанию оба пользователя —на компьютере и тот, кто использует PC Anywhere — имеют доступ к мышке и могут двигать ей по экрану, чтобы запускать приложения или открывать файлы и т.п. Но при помощи PC Anywhere вы можете заблокировать клавиатуру для другого пользователя».
Они сделали это и получили контроль над сессией, убедившись, что пользователь не может видеть, что они делают, поскольку они обнулили его экран. Луис понимал, что довольно скоро у пользователя возникнут какие‑то подозрения или он решит, что у него определенные проблемы и отключит компьютер, поэтому времени у них было совсем мало.
«Мы пытались использовать этот шанс и получить доступ внутрь системы. Надо было быстро решить, что мы хотим предпринять, и какую ценную информацию можно извлечь из этого компьютера.
Я заметил, что на компьютере была установлена ОС Microsoft Windows 98 и нам надо найти кого‑то, кто посоветует, какую информацию можно извлечь из такого компьютера.
К счастью один из ребят, находившихся рядом с нами, не был полностью погружен в свои занятия и знал, как извлечь информацию из такой системы».
Он предложил посмотреть на файл со списком паролей (PWL). (Это файл, используемый в системах Windows 95, 98 и ME, содержит важную информацию, такую, например, как пароли для dial‑up и сетевые пароли. Например, если вы используете вход в сеть dial‑up под Windows, все детали авторизации, включая номер телефона dial‑up, имя пользователя и логин содержатся именно в этом файле).
Перед тем, как загрузить к себе этот файл, они должны были отключить все антивирусные программы, чтобы те не обнаружили средств, которые они использовали. Затем они попытались использовать возможности передачи файлов в PC Anywhere, чтобы передать PWL‑файл из компьютера, которым пользовался курьер в данный момент, на свой компьютер. Это не сработало. «Мы не понимали почему, но у нас не было времени сидеть и обсуждать это. Мы должны были извлечь PWL‑информацию из того компьютера немедленно, пока курьер еще не прервал соединения».
Что еще они могли сделать? Одна из возможностей: загрузить туда программу для взлома паролей, взломать PWL‑файл на компьютере курьера и извлечь информацию в текстовый файл, который потом переслать себе. У них уже было имя пользователя и пароль, которыми пользовался курьер. Но они вовремя осознали проблему: клавиатура на компьютере курьера была на иностранном языке — вот что было причиной их неудачи с авторизацией. «М ы продолжали получать сигнал „Имя неправильное“, потому что клавиши клавиатуры там означали другие буквы». А время бежало…
«Мы чувствовали, что время уходит. Парень, сидящий в грузовике, мог перевозить кучу денег, или, к примеру, заключенных. Он вполне мог задать себе вопрос: „Что за чертовщина здесь происходит?“ В таком случае, он отключился бы еще до того, как мы получили то, что нам было нужно».
Да, время сейчас играло не в их пользу, и никто из их коллег в той же комнате не мог помочь разрешить проблему с иностранной клавиатурой. Может быть, в более спокойной обстановке они смогли бы ввести имя пользователя и пароль, используя коды ASCII вместо настоящих букв и цифр. Но в данный момент никто не мог посоветовать им, как это сделать.
Что же делать сегодня человеку, если ему очень быстро нужно пол у ч и т ь ответ на вопрос? Именно это и сделали Луис и Брок: «М ы быстро вошли в Интернет и стали искать способы ввода букв без использования клавиатуры».
Достаточно быстро они нашли ответ: надо нажать ключ «Num Lock», затем нажать и держать ключ < A L T >, а потом набирать численные значения ASCII‑символов на цифровой части клавиатуры. Остальное — просто.
«Нам часто приходится переводить буквы и символы в ASCII‑коды и наоборот. Надо просто встать и посмотреть в одну из полезных таблиц, которые развешаны у нас по всем стенам».
Вместо полуголых девиц у этих ребят на стенах висели таблицы перевода символов из одной систему в другую. «ASCII‑красотки», — говорит Луис.
С помощью приятелей, которые подсказывали, какую последовательность цифр надо набирать, они успешно ввели в компьютер имя пользователя и пароль. После этого они смогли передать программу для взлома PWL и запустить ее, чтобы извлечь информацию из P W L —файла в текстовый файл, который затем переслать из ноутбука водителя на FTP‑сервер, находящийся под их контролем.
Когда Луис просмотрел этот файл, он нашел там необходимые для авторизации данные, которые искал, включая номер телефона для dial‑up соединения и те имя и пароль, которые водитель использовал для соединения с VPN‑сетью компании. Луис подумал, что это вся информация, которая ему нужна.
Проверяя, не оставил ли он следов своего пребывания в ноутбуке водителя, Луис просмотрел все «иконки» на рабочем столе компьютера и обратил внимание на одну, которая выглядела как приложение, с помощью которого курьеры‑охранники могли получать информацию из компании. Теперь они знали, что водители соединялись через компанию с сервером приложений, чтобы получить необходимую им информацию.
ДОСТУП В СИСТЕМУ КОМПАНИИ
«Мы подозревали, — вспоминает Луис, — что этот пользователь вполне мог заметить странную активность в своем компьютере, поэтому мы оттуда ушли. Если бы об этом инциденте был сделан специальный доклад, то VPN‑сервис был бы просто отключен. и наше знание параметров, необходимых для входа в него, обесценилось».
Через несколько секунд они заметили, что соединение с PC Anywhere прервалось — водитель отсоединился. Луис и его помощники извлекли нужную им информацию из PWL‑файла как раз вовремя.
Теперь у Луиса и Брока был номер телефона, принадлежащий dial‑up устройству, одному из тех, что они рисовали вчера вечером в баре. Это был опять иностранный номер. Используя ту же систему Windows, что использовал и охранник, они набрали этот номер, ввели имя пользователя и пароль и «обнаружили, что мы успешно установили VPN‑соединение».
Из того, как был сконфигурирован VPN, они получили IP‑адрес в D M Z компании, так что оказались за первым межсетевым экраном, но перед ними еще был второй межсетевой экран, защищающий внутреннюю сеть, что они поняли еще раньше.
IP‑адрес, п р и п и с а н н ы й V P N, находился в пределах D M Z, поэтому некоторые компьютеры внутренней сети ему вполне доверяли, Луис думал, что проникнуть во внутреннюю сеть будет намного легче, поскольку они уже проникли за первый межсетевой экран. «В этот момент, — говорит он, — мы думали, что пробраться через внутренний межсетевой экран во внутреннюю сеть будет легко». Но когда он попробовал сделать это, то обнаружил, что не может добраться до исполняемого сервиса на компьютере, где был установлен сервер приложений. «Это был очень странный TCP‑порт, который был доступен и через фильтры, и мы думали, что он используется для приложений, которыми пользуются водители. Но мы не знали, как он работает».
Луис стремился отыскать во внутренней сети компании систему, в которую он мог бы проникнуть, используя ее IP‑адрес. Он работал по обычной хакерской схеме — пытался найти систему, которую он мог бы использовать во внутренней сети.
Они надеялись найти во внутренней сети компании такую систему, в которую никто не входил бы с удаленного терминала, и в ней легко было бы обнаружить лазейки, просто потому, что она считалась бы системой «только для внутреннего пользования». Они воспользовались сканированием портов в поисках любого доступного Интернет‑сервера (порт 80) во всем диапазоне IP‑адресов внутренней сети и обнаружили сервер под Windows, с которым они смогли соединиться и на котором работал IIS (Internet Information Server), но достаточно старая версия этой популярной программы IIS4. Это была очень радостная новость, поскольку они наверняка могли найти в нем незакрытую лазейку или ошибку в конфигурации, которая дала бы им «ключи к замку».
Первое, что они сделали, это запустили специальную программу для поиска лазеек Unicode в IIS4, чтобы проверить, насколько он уязвим, и нашли такие лазейки, (Unicode — это набор 16‑битных слов для кодировки слов из многих разных языков с использованием одного набора знаков). «Итак, мы могли использовать Unicode для выполнения команд на этом IIS‑сервере», — воспользоваться уязвимостью системы безопасности, пройти фильтрование во втором межсетевом экране в их внутренней сети «уже глубоко на их территории», рассказывает Луис. Хакеры в этом случае усиливали Интернет‑запрос (HTTP) с помощью специально закодированных символов, чтобы пройти проверки безопасности на Интернет‑сервере. Это позволяло им выполнять произвольные команды с привилегиями того пользователя, который в данный момент работал на Интернет‑сервере.
Немного подумав, ребята, наконец, нашли возможность загружать файлы. С помощью Unicode они использовали echo‑команды для загрузки текста ASP (Active Server Pages) — простого загрузчика файлов, который упростил передачу хакерских программ в корневую Интернет‑директорию, из которой можно было запускать программы на сервере. (Корневая Интернет‑директория — это корневая директория на Интернет‑сервере, в отличие от обычной корневой директории на диске — С:\). Echo‑команда просто пишет аргументы, которые ей передаются; выход может быть направлен в сайт, а не на экран пользователя. Например, если напечатать «echo owned > mit‑nick.txt» запишет слово «owned» в файл mitnick.txt. Они использовали целую серию echo‑команд, чтобы записать текст кодов ASP в исполняемую директорию на Интернет‑сервере.
Затем они загрузили туда и другие хакерские средства, среди которых было популярное сетевое средство netcat, которое очень полезно для установки специальных команд прослушивания входящего порта. Они загрузили туда и приложение под названием НК, которое использует лазейку в старой версии Windows NT, которая позволяет получить привилегии администратора.
Они загрузили еще одну простую программу для запуска приложения НК, а затем использовали netcat, чтобы открыть соединение обратно к себе, что дало им возможность вводить команды на компьютер‑мишень, типа того, как это было во времена операционной системы DOS. «М ы пытались инициировать исходящее соединение с внутреннего Интернет‑сервера на наш компьютер в DMS». — объясняет Луис. «Но это не сработало, поэтому нам пришлось использовать технику под названием „цепляние к порту“. После выполнения программы НК для получения привилегий, они сконфигурировали netcat на прослушивание порта 80: чтобы „перенести“ IIS‑сервер временно со своего пути, наблюдая за первым входящим соединением на порт 80.
Луис поясняет технологию «цепляния» так: «В ы временно убираете IIS с его места действия, как бы перехватывая управление уровнем, позволяя IIS работать на втором плане, вы сохраняете доступ к вашему уровню». В системах Windows в отличие от операционных UNIX‑систем разрешается одновременно двум программам использовать один и тот же порт. Атакующий может использовать эту возможность, если найдет порт, который не фильтруется межсетевым экраном, а потом «прицепится» к этому порту.
Именно это и проделали Луис и Брок. Доступ, который у них уже был к узлу IIS, был ограничен правами, которые давал им пользователь, под именем которого работал сервер. Поэтому они запустили НК и netcat и смогли получить полные привилегии контроля над системой — работая, как пользователь системы, что является самой высокой привилегией в операционной системе. При помощи стандартных методик этот доступ позволил бы им получить полный контроль над всей Windows‑активностью мишени.
На сервере работала система Windows NT 4.0. Атакующие хотели скопировать SAM‑файл (Security Accounts Manager — управление безопасностью директорий), в котором содержались все детали о директориях пользователей, группах, политиках и контролях доступа. В этой старой версии операционной системы они запустили команду «rdisk/s», чтобы провести аварийную замену диска. Эта программа начинает с того, что создает несколько файлов в директории «repair». Среди этих файлов есть обновленная версия SAM‑файла, которая содержит «нарезку» паролей для всех пользователей сервера. Еще раньше Луис и Брок раскрыли файл PWL, где содержались все важные пароли из ноутбука охранника: теперь они получили в свои руки зашифрованные пароли всех пользователей на одном из серверов компании. Они просто скопировали этот SAM‑файл в корневую директорию Интернет‑сервера. «Затем, используя Интернет‑браузер, мы извлекли его с сервера на компьютер в нашем офисе».
Когда они взломали пароли из SAM‑файла, то обнаружили, что там есть еще один пользователь‑администратор на местном компьютере, отличный от администратора встроенной директории.
«После нескольких часов работы мы смогли взломать пароль этого пользователя, а затем попытались авторизоваться в первичном контроллере домена. И мы обнаружили, что этот пользователь с правами администратора на Интернет‑сервере, взломанном нами, имел точно такой же пароль и в домене! И здесь он тоже имел права администратора.
Итак, на Интернет‑сервере был пользователь с правами администратора, который имел такое же имя, как и администратор домена, и пароль в обоих с л у ч а я х был один и т о т же. Э т о т администратор был невероятно ленив, если для своей директории на другом сервере повторно использовал то же самое имя и пароль».
Дело постепенно продвигалось, хоть и небольшими шажками. Администратор на Интернет‑сервере не имел таких привилегий на весь домен. Но, получив его пароль на Интернет‑сервере, благодаря его лени мы смогли проникнуть в директорию администратора домена. Администратор домена администрирует или управляет всем доменом в отличие от администратора вашего локального компьютера, который управляет только им. В данном случае Луис не был исключением.
«Надо сказать, что это обычная практика, с которой мы часто встречаемся. Администратор домена создает свою директорию на всех машинах сотрудников сети и использует для них тот же пароль. И это означает, что сведения из каждого локального компьютера могут быть использованы для взлома системы безопасности всего домена».
ЦЕЛЬ ДОСТИГНУТА
Шаг за шагом — все ближе к цели. Луис и Брок обнаружили, что не могут получить полный контроль над сервером приложений и данными, которые на нем хранятся. Они проверяли IP‑адрес компьютера, который они нашли на ноутбуке водителя (или охранника), и сервер приложений, с которым он был связан. После этого они пришли к выводу, что сервер приложений расположен в том же домене. Наконец, они получили полный контроль над всеми действиями компании. «Наконец, мы добрались до самого сердца бизнеса компании, Мы могли изменить все команды на сервере приложений, то есть могли дать указание водителям доставить деньги туда, куда нам было надо. Мы могли дать водителям такую команду: „Возьмите деньги из этой кассы и доставьте по этому адресу“ и ждать по указанному адресу, когда они доставят нам деньги».
Или: «Возьмите заключенного А, доставьте в определенное место и передайте тем, кто его там будет ждать» — и вы извлекаете из тюрьмы своего приятеля или беспутного брата.
Или террориста…
Они получили в свои руки средство для обогащения или создания хаоса. «М ы испытали определенный шок, поскольку они просто не представляли себе размеры ущерба, который мы могли им нанести», — говорит Луис.
То, что компания считала безопасностью, оказалось только призраком безопасности.
АНАЛИЗ
Луис и Брок не разбогатели благодаря той мощи, которую получили в свои руки и не стали рассылать приказы по освобождению или пересылке заключенных. Вместо этого они предоставили компании полный отчет о том, что им удалось обнаружить.
Услышав обо всем этом, компания отреагировала достаточно вяло. Они не стали проводить анализ рисков шаг за шагом: «Если хакеры проникли в первый компьютер, что они могли сделать дальше?» и так далее. Они опять посчитали себя в безопасности, закрыв несколько лазеек, на которые указал им Луис. Они считали, что кроме тех, которые нашли Луис и Брок, других просто не существует.
Луис считает, что подобная надменность и самоуверенность типичны для крупного бизнеса. Еще бы — какие‑то пришельцы дают им рекомендации по поводу их безопасности. Их раздражает, когда им дают рекомендации, что они должны делать, и особенно те, кто дает им эти рекомендации. Они уверены, что все уже знают. Когда появляется брешь, они заделывают ее и считают, что она была единственной.
КОНТРМЕРЫ
Также как и в других историях, рассказанных в этой книге, атакующие не нашли большого количества лазеек в атакуемой компании, но даже тех немногих, что они нашли, было вполне достаточно, чтобы завладеть всем доменом компьютерной системы компании, который имеет огромное значение для бизнеса. О некоторых полезных уроках стоит сказать отдельно.
ВРЕМЕННЫЕ МЕРЫ
Не так давно устройства компании 3Com соединялись с последовательным портом маршрутизатора Cisco.
Под давлением необходимости быстрого реагирования на ситуацию компании требуется предпринимать «временные» меры, но их ни в коем случае нельзя сделать «постоянными». Надо сразу же установить режим физической и логической проверки всех шлюзов, использовать те средства безопасности, которые постоянно контролируют открытые порты, в узлах или устройствах в соответствии с политикой безопасности компании.