Призрак в Сети. Мемуары величайшего хакера - Уильям Саймон
Шрифт:
Интервал:
Закладка:
Глава 28 Охотник за трофеями
Phtm zvvvkci sw mhx Frntvr VOX Ycmrt Emki vqimgv vowx hzh L cgfEcbst уsi? [127]
Продолжались мои вольготные будни новоиспеченного денверца. Днем я ходил на работу в юридическую контору, рабочий день у меня был с 9:00 до 18:00. После работы я на несколько часов заглядывал в тренажерный зал, прихватывая с собой что-нибудь на обед в ближайшем ресторане, потом возвращался домой или обратно на работу и, пока не ложился спать, занимался сами знаете чем.
Хакинг был моей отдушиной. Можно даже сказать, что это был способ эскапизма, бегства в другую реальность, как будто в компьютерную игрушку. В той игре, которой увлекался я, малейшая невнимательность или глупая ошибка означала, что вскоре в дверь постучатся федералы. Да, ни бегающие на экране агенты, ни черные маги из «Подземелий и драконов» [128] , а настоящие федералы, которые так хотят запереть меня в камеру и выбросить ключ.
В тот период я искал системы, которые можно было бы исследовать, и вступал в интеллектуальные схватки с экспертами по безопасности, сетевыми и системными администраторами, а также умными программистами, с которыми доводилось сталкиваться в моей альтернативной реальности. Все это я делал исключительно для удовольствия.
Поскольку я ни в коем случае не мог рассказать кому-нибудь о своих эксплойтах, то в основном интересовался добычей исходного кода от интересовавших меня операционных систем и прошивок сотовых телефонов. Код, который удавалось добыть, становился моим трофеем. Я настолько набил руку в этом деле, что оно уже начинало казаться мне слишком тривиальным.
Теперь я шел ва-банк, так как разорвал связи с моей прошлой жизнью и терять мне было нечего. Я был, как говорится, вооружен и очень опасен. Как же я мог поднять ставки? Что нужно было сделать, чтобы все мои предыдущие взломы показались просто детской забавой?
Существует мнение, что ведущие технологические компании мира обладают самыми совершенными системами безопасности. Если я искал действительно стоящие трофеи, то мне нужно было попытаться взломать именно такие системы и заполучить их код.
У меня уже был удачный опыт взлома Sun. Теперь меня заинтересовала компания Novell, на сервере которой, как мне удалось узнать, работала операционная система SunOS. Этот сервер играл роль основного сетевого шлюза-брандмауэра. Я воспользовался ошибкой в программе sendmail. Эта программа применялась в том числе для получения входящей электронной почты, поступавшей в корпоративную сеть. Моей целью было добыть код одной из ведущих мировых сетевых операционных систем, разработанной Novell и называемой NetWare.
Пользуясь случайно упущенной уязвимостью, которая нашлась в почтовой программе sendmail, я мог создать любой файл с любой информацией. По сети я должен был связаться с программой sendmail и ввести несколько команд примерно следующего содержания:
...mail from: bin
rcpt to: /bin/.rhosts
[ текст пропущен ]
.
mail from: bin
rcpt to: /bin/.rhosts
data
+ +
.
quit
После этого программа создавала так называемый rhosts (произносится как «точка-Р-хостс»). Она позволяла входить в систему, не вводя пароль.
Читателям-технарям я расскажу об этом механизме подробнее. Итак, я мог создать файл. rhosts в bin-аккаунте, сконфигурированном так, что через него я входил в систему, не указывая пароля, rhosts – это конфигурационный файл, который используется в некоторых устаревших сегодня системных программах под названием R-службы. Эти службы применялись для входа в систему и выполнения команд с удаленного компьютера. Например, файл. rhosts может быть сконфигурирован так, чтобы пользователь kevin с хост-именем condor мог входить в систему, не указывая пароля. В предыдущем примере два символа «+», разделенные пробелом, считаются подстановочными (джокерными). Они обозначают имя пользователя и хост-имя компьютера. Через такой файл любой пользователь может входить в систему с помощью этого аккаунта и выполнять в ней команды. Поскольку bin-аккаунт обеспечивает доступ к каталогу /etc с правом изменения информации в находящихся там файлах, я мог заменить пароль моей собственной измененной версией и таким образом получать в системе права администратора.
Потом я установил взломанную версию программы telnetd. Она должна была перехватывать и сохранять пароли всех пользователей, которые входили на компьютер-шлюз компании Novell. Когда я оказался в сети Novell, то понял, что в ней в настоящий момент присутствует еще два активных пользователя. Если бы они заметили, что кто-то вошел в систему с удаленного компьютера, то сразу поняли бы: компанию взломали. Поэтому я принял меры, чтобы стать невидимым. Если бы системный администратор попробовал вывести список всех пользователей, которые в данный момент работают в системе, меня бы в этом списке не было.
Так я наблюдал за системой до тех пор, пока на компьютер-шлюз не вошел один из администраторов. Тогда я перехватил его пароль «4kids=$$» от административного аккаунта. Круто!
Довольно скоро я забрался в систему ithaca. Это была одна из систем инженерного отдела в городе Сэнди, штат Юта. Взломав систему, я смог заполучить зашифрованный файл с паролями всего отдела и восстановить пароли большинства пользователей.
В почте системных администраторов я искал информацию по ключевым словам «модем», «дозвон», «вход в систему» в различных формах: в единственном числе, во множественном и т. д. В итоге я выходил на электронные сообщения и отвечал на вопросы сотрудников, например: «Какой номер набирать для дозвона в систему?». Очень удобно.
Стоило мне найти номер дозвона, как я стал входить в сеть через мою точку доступа, а не через интернет-шлюз Novell.
Для начала я решил найти систему, где хранится исходный код NetWare. Я принялся прочесывать архивы электронной почты разработчиков, разыскивая определенные слова, которые могли бы навести меня на процесс, а через него в репозиторий исходного кода отправлялись бы обновления. Наконец я обнаружил хост-имя репозитория исходного кода – ATM. Денег эта штука не выдавала, но она стоила для меня дороже любых денег [129] . Затем я вновь стал просматривать электронную почту уже по запросу ATM и нашел имена нескольких сотрудников, которые занимаются поддержкой этой системы.
Битый час я пытался войти в ATM, пользуясь учетными данными на основе Unix, которые перехватил, но все напрасно. Наконец я нашел подходящий аккаунт, но на нем не было прав для доступа к репозиториям исходного кода. Следовало прибегнуть к моему проверенному резервному методу – социальной инженерии. Я позвонил одной даме, которая работает в группе технической поддержки ATM. Воспользовавшись именем инженера, чей пароль взломал, я сказал ей, что работаю над проектом и мне нужен доступ к исходному коду клиента NetWare 3.12. Шестое чувство подсказывало, что здесь что-то неладно, но, судя по голосу, дама совершенно не волновалась.
...Я почувствовал знакомый всплеск адреналина, но через 15 минут мое соединение разорвали, восстановить его я уже не смог: меня заблокировали.
Она отложила трубку, потом снова взяла ее и сказала, что предоставила мне права, которые я прошу. Я почувствовал знакомый всплеск адреналина, но через 15 минут мое соединение разорвали, восстановить его я уже не смог: меня заблокировали. Еще через несколько секунд инженер сменил пароль. Ох… Очень скоро я догадался, что случилось. Оказалось, немного раньше дама разговаривала с тем инженером, именем которого я воспользовался, и сообразила, что наши голоса отличаются. Она поняла: я взломщик. Черт! Впрочем, не все коту масленица – бывает и пост.
Я позвонил другому администратору, который занимался поддержкой ATM, и убедил его предоставить права доступа для еще одного аккаунта, который я взломал, – в этот раз меня также заблокировали. Еще я поставил бэкдоры в многочисленных системах, чтобы перехватывать учетные данные пользователей, которые в них входили.
На тот момент я занимался подобной операцией уже несколько дней. Поиск электронных сообщений позволял быстро обнаружить, где найти вожделенные данные, ту информацию, которая откроет мне дополнительные входы в сеть, расскажет о программных ошибках или приведет к исходному коду, который был мне нужен.
Теперь я знал, что персонал насторожится и вряд ли кто-либо клюнет на старую уловку. Поэтому я изменил тактику. Что если найти разработчика, который имеет полный доступ к системе, и заставить его скопировать для меня всю эту информацию? Чтобы получить желаемое, мне даже не пришлось бы искать доступ в ATM.
Потратив несколько дней на исследование корпоративной сети Novell, я нашел инструмент, доступ к которому был открыт для всех сотрудников компании. Программа 411 выводила на каждого сотрудника список, где указывались имя, телефонный номер, логин и отдел, в котором работал тот или иной сотрудник. Явно начиналась светлая полоса. Я дампировал весь список сотрудников и загнал его в один файл для анализа. После недолгого изучения стало понятно: все разработчики относились к группе ENG SFT. Я сообразил, что разработка NetWare, вероятно, велась в городе Прово, штат Юта, где располагался главный офис компании.