В его задачу не входило добывать эту программу для себя, он хотел разделить обладание ею с миллионами пользователей Интернета по всему миру.
Он обнаружил, что у компании «есть межсетевой экран и небольшая сеть. У них было много серверов и Интернет-серверов. По моим оценкам у них было сто — сто пятьдесят сотрудников».
РАСКРЫВАЯ ИМЕНА СЕРВЕРОВ
Роберт использовал обычную стратегию, когда он пытался проникнуть в корпоративную сеть достаточно большого размера. Он «начал разбираться, как они заботятся о людях, которые хотят войти в их сеть. У большой компании в этом плане гораздо больше проблем. чем у маленькой. Если у вас пять сотрудников, вы каждому из них можете послать электронное письмо, правильно? Или вы можете собрать их всех и сказать, „вот как вы можете соединиться с вашим сервером из дома, а вот как вы можете дома просматривать свою электронную почту“.
А вот у большой компании должна быть специальная служба Help Desk или какие-то внешние службы, куда люди могли бы обратиться при возникновении проблем с компьютером. Роберт знал, что компании с большим числом сотрудников должны иметь большое число разнообразных инструкций — в основном на их Help Desk — объясняющих, как получить удаленный доступ к своим файлам и электронной почте. Если бы ему удалось отыскать эти инструкции, он бы смог понять необходимую последовательность шагов по проникновению в эту сеть извне, в частности, какое программное обеспечение необходимо для соединения с внутренней сетью поверх корпоративной VPN (Virtual private network — виртуальная частная сеть). В частности, он надеялся найти, какие точки используют разработчики для доступа к системе разработки извне, поскольку они должны постоянно иметь доступ к своим кодам.
На этом этапе ему надо было найти путь к Help Desk. «Я начал с небольшой программки под названием Network Mapper, кo-торую написал сам однажды. Она перебирает список типичных номеров узлов. Я использую ее в моих анализах DNS».
Network Mapper идентифицирует узлы и находит IP-адреса для каждого из них. Программа Perl (также написанная Робертом), перебирает список общеупотребительных имен узлов и проверяет, нет ли таких же имен в домене атакуемой компании. Итак, для атаки на компанию под названием «digitaltoes», хакерское средство может искать web.digitaltoes.com, mail.digitaltoes.com и т.д. При таком поиске можно найти скрытые IP-адреса или сетевые блоки, которые не так просто идентифицировать. После работы программы он может получить результаты, которые выглядят так:
beta.digitaltoes.com
IPAdress #1:63.149.163.41…
IPAdress #1:63.149.163.36…
intranet.digitaitoes.com
IPAdress #1:63.115.201.138…
mail.digitaltoes.com
IPAdress #1:63.149.163.42…
IPAdress #1:63.149.163.36…
Отсюда следует, что наша фиктивная компания «digitaitoes» имеет некоторые сервера в сетевом блоке 63.149, но я поставил бы свои деньги на сервер в сетевом блоке 65.115 с именем «intranet», что соответствует их внутренней сети.
НЕКОТОРАЯ ПОМОЩЬ ОТ H E L P D E S K . E X E
Среди серверов, которые Роберт обнаружил с помощью своего Network Mapper был один, на который он особенно надеялся: helpdesk.companyX.com. Когда он пытался проникнуть на этот сайт, то появилось диалоговое окно с требованием ввести имя пользователя и пароль, допуская туда только авторизованных пользователей.
Приложения для helpdesk находились на сервере, где работала IIS4, древняя версия Microsoft Internet Information Server (IIS), которая, как Роберт знал, имела целый ряд лазеек. При небольшом везении он мог бы найти одну незаделанную и поэтому полезную для него.
Он обнаружил зияющую дыру. Некоторые администраторы компаний инициируют MS Front Page таким образом, что любой может выгрузить или загрузить файлы из корневой директории, где хранятся файлы Интернет-сервера.
(Мне хорошо знакома эта проблема. Однажды Интернет-серверы в компании по обеспечению безопасности, которую я создал, были атакованы через аналогичную брешь, потому что системный администратор, который добровольно помогал мне, неправильно сконфигурировал систему. К счастью, сервер работал в своем собственном сегменте сети, отделенном от остальной).
Поняв, что эта ошибка дает ему возможность загружать файлы на сервер и сгружать с сервера, он начал смотреть на параметры сервера.
«Наиболее распространенный вариант использования тупых IIS-серве-ров состоит а возможности авторизации FrontPage».
И у этого сайта была такая слабость. Развертывание Microsoft FrontPage (программа-приложение, используемая для простого создания и редактирования HTML-документов) без установки соответствующих разрешений на пропуск файлов — обычное заблуждение системных администраторов, которые иногда специально конфигурируют так сайт из соображений удобства. В данном конкретном случае любой человек мог не только прочесть файлы, но также и загрузить туда файлы в любую незащищенную директорию. Роберт действовал в том же стиле.
«Я смотрел на все это и думал: «Черт побери, я могу прочесть или отредактировать любую страницу на этом сервере без всякого имени пользователя или пароля.
Таким образом, я мог войти и изучать корневую директорию на Интернет-сервере».
По мнению Роберта, большинство хакеров упускают такую возможность.
«Дело в том, что когда люди устанавливают сканер сети на сервере, они чаще всего не смотрят на ошибки в конфигурации таких приложений, как FrontPage. Они смотрят (чтобы посмотреть на тип сервера) и говорят „ Э т о Apache“ или „ Э т о I I S “ . И они упускают возможность упростить свою жизнь в том случае, если FrontPage неправильно сконфигурирована».
Это было не так прекрасно, как он ожидал, поскольку «на этом сервере было не так уж много интересного». И все же он заметил, что приложение под названием «helpdesk.exe» появляется, когда он получает доступ к сайту через свой браузер. Это могло бы оказаться очень полезным, но требовало знать имя пользователя и пароль.
«Итак, я смотрел на все это и думал, как атаковать этот треклятый сайт? Я не люблю делать одну вещь: это загружать файлы на Интернет-сервер, потому что, если администратор просмотрит записи об Интернет-активности и увидит, что среди тысячи сотрудников его компании, которые обращались к helpdesk.exe, неожиданно оказался парень из Южной Атлантики, работающий с two.exe или каким-то другим приложением, это сразу насторожит его, правильно? Поэтому я старался избегать подобных записей».
Приложение helpdesk состоит из одного исполняемого файла и файла библиотеки динамических связей ( D L L ) (файлы с расширением .DLL содержат набор функций Windows, которые может вызывать приложение).
Имея возможность загружать сайты в корневую директорию Интернет-сайта, атакующий может легко загрузить туда простую программку, которая даст возможность хакеру выполнять команды через свой браузер. Но Роберт был не простым хакером. Он гордился собой, потому что он был невидим и практически не оставлял следов в записях Интернет-сервера. Вместо простой загрузки на сервер переделанной программы, он перегружал на свой компьютер файлы helpdesk.exe и helpdesk.dll, чтобы понять, как работают эти приложения, полагаясь на свой опыт и знания. «Я проделал массу работы по обратной инженерии приложений и изучению программ, написанных на ассемблере, поэтому я знаю, как разбираться в скомпилированном с языка С коде и переводить его обратно на ассемблер».
Программа, которой он пользовался, называлась I D A Pro, интерактивный «дисассемблер» (ее продают на сайте http://www.ccso.com ), ей пользовались по его словам «многие компании, занимающиеся вирусами и охотой на вирусных червей, которым нужно декомпилировать некоторые тексты до уровня ассемблера, а потом разобраться в том, что они делают». Он декомпилировал helpdesk.exe и, одобрил работу, выполненную профессиональными программистами, решив, что она «написана вполне прилично».