Он запустил и команду «netstat», чтобы увидеть, какие соединения установлены в этот момент и какие порты участвуют в соединении. Он заметил, что один из портов с большим номером ожидает входящего соединения. Соединившись с этим портом через backup-сер-вер, на который он проник раньше, он понял, что это облегченный Интернет-сервер, который используется в качестве почтового интерфейса. Он сразу же понял, что может влезть в этот почтовый интерфейс и поместить любой файл в корневую директорию сервера, используемую для почтового интерфейса. После этого он легко сможет перегружать файлы с ноутбука СЕО на backup-сервер.
Не считая незначительных успехов за прошедший год, у Эрика по-прежнему не было нужных ему кодов программы генератора ключей. Но он и не думал отказываться от своей затеи. На самом деле ситуация становилась все более интересной. «Я нашел копию директории „tools“ на ноутбуке СЕО. В ней был интерфейс к генератору ключей, но не было доступа к базе данных».
Он не нашел лицензированный сервер, на котором находилась настоящая база данных с ключами всех клиентов, были лишь некоторые намеки на него. «Я не знал, где располагаются реальные лицензированные приложения для сотрудников. Мне просто необходимо было найти этот сервер». Он подозревал, что этот сервер расположен на том же сервере, что и почтовый, поскольку у компании был Интернет-сайт, который позволял клиентам немедленно получить заказанную программу. После того, как подтверждался перевод денег с кредитной карточки клиента, тот получал электронное письмо с лицензионным ключом. Остался только один сервер, на который Эрик не мог пробраться: именно на нем и должно было храниться приложение, вырабатывающее эти лицензионные ключи.
Итак, Эрик провел месяцы в сети и не достиг поставленной цели. Он решил еще раз просмотреть backup-сервер, на который он проник раньше, и начать сканировать почтовый сервер с других серверов, которыми он уже «владел», используя более широкий диапазон портов в надежде отыскать некоторые сервисы, работающие на нестандартных портах. Он подумал, что лучше будет проводить сканирование с внутреннего сервера в случае, если межсетевой экран пропускает только определенные IP-адреса.
В течение двух следующих недель он сканировал сеть так тихо, как только возможно, чтобы идентифицировать любые сервера, на которых работают необычные сервисы или пытаясь запустить обычные сервисы на нестандартных портах.
Продолжая свою работу по сканированию портов, Эрик начал исследовать файлы с архивами Internet Explorer в директории администратора и нескольких пользователей. Это привело его к еще одному открытию. Пользователи с backup-сервера соединялись с портом с большим номером на главном почтовом сервере, используя Internet Explorer. Он понял, что главный почтовый сервер блокирует доступ к этому порту, если соединение идет не с «разрешенных» IP-адресов.
Наконец он нашел Интернет-сервер на порту с большим номером — «1800 или что-то подобное» — вспоминает он, и смог угадать комбинацию имени пользователя и пароля, которые привели его в специальное меню. Одна из возможностей этого меню заключалась в просмотре информации о клиенте. Другая — давала возможность сгенерировать лицензионный ключ для продукта.
Бинго!
Это был сервер с реальной базой данных. Эрик почувствовал выброс адреналина в кровь, поскольку он приблизился к своей цели. Но «этот сервер был очень крутым, невероятно крутым». Он опять уперся в тупик. Он отступил назад и начал тщательно продумывать каждый свой шаг, у него возникла еще одна идея.
«У меня появились коды источника этих Интернет-страниц, поскольку я нашел на ноутбуке СЕО архив этих страниц. Я нашел также линк на Интернет-страницу, где проводилась диагностика сети, такая как netstat, traceroute и ping — вы могли разместить IP-адрес на Интернет-сайте и нажать „ОК“, эта команда выполнялась, и ее результат появлялся на вашем экране».
Он заметил небольшую ошибку в программе, которая запускалась с этого И н т е р н е т — с а й т а . Если он н а б и р а л команду «tracert», то выполнялась команда «traceroute» — отслеживание пути, по которому пакеты приходили к назначенному IP-адресу. Эрик понял, что может обмануть программу, задав ей команду с адресом IP, за которым он ставил значок «&», а потом еще одну нужную ему команду. Итак. он должен был писать что-то такое:
localhost > null&&dir с:
В этом примере информация прикрепляется к traceroute-коман-де для CGI-текстов. Первая часть (до символа «&») говорит программе выполнить команду «traceroute» для самой себя (что, в общем-то, бессмысленно), а выход послать в никуда, что приведет к его исчезновению. После того, как программа выполнит первую часть команды, символы «&&» покажут, что есть другая команда, которую надо выполнить. Это команда просит показать корневую директорию на диске С — что очень полезно для атакующего, потому что она позволяет ему выполнять любую shell-команду с привилегией того пользователя, который работает на Интернет-сервере в данный момент.
«Это дало мне весь доступ, который мне был нужен», — рассказывал Эрик. «Я получил доступ ко всему, что было на этом сервере».
Эрик был завален информацией. Он вскоре обнаружил, что разработчики компании помещали копии кодов своих программ на сервере каждую ночь. «Это было настоящее богатство — полная копия всех программ объемом пятьдесят мегабит». Он смог выполнить серию команд, чтобы переместить нужные ему файлы в корневую директорию Интернет-сервера, а затем перегрузить их на первую машину, из тех, куда ему удалось проникнуть — backup Интернет-сервер.
ПОЙМАН!
Инцидент с СЕО тщательно разбирался. Руководство компании было очень обеспокоено, но поскольку у всех них была куча забот, а Эрик был практически незаметен, больше тревоги они не поднимали. Однако по мере того, как он подбирался все ближе и ближе к сердцевине компьютерной системы, Эрику становилось все труднее оставаться незаметным. То, что произошло потом, случается часто — это расплата за долгое пребывание в чужой системе и постоянное продвижение рубежа атаки вперед и вперед. Он только начал перегружать к себе коды вожделенной программы, когда:
«…перегрузив примерно половину, я обнаружил, что загрузка прервалась. Я посмотрел в директорию, но файл оттуда исчез. Я начал просматривать log-файлы и изменения в датах присутствия пользователей и обнаружил, что еще один пользователь в данный момент просматривает log-файлы. Он узнал, что я что-то делаю, по сути дела — он поймал меня».
Тот, кто заметил Эрика, не тратил время попусту и быстро уничтожал важные файлы. Игра была окончена … или нет?
Эрик отсоединился и не показывался в системе около месяца. Он боролся за доступ к этой программе много месяцев, и должен был испытывать сильное разочарование. Однако, он говорит, что это не так.
«Я никогда не впадаю в отчаяние, поскольку это тоже является частью работы. Е с л и мне не удалось проникнуть с первого раза, значит, з а д а ч а более сложная. Н е т с м ы с л а в п а д а т ь в отчаяние. Э т о как компьютерная игра: вы переходите с уровня на уровень и решаете проблему за проблемой. Э т о просто ч а с т ь в с е й игры».
У Эрика своя теория судьбы: достаточное упорство всегда вознаграждается.
«Если какой-то прием не работает, я пробую что-то еще, поскольку я знаю, что обязательно что-то сработает. Всегда что-то срабатывает. Надо просто найти, что».
НАЗАД — НА ТЕРРИТОРИЮ ВРАГА
Несмотря на провал, через месяц он опять начал атаку и соединился с компьютером СЕО для следующего просмотра записей его переговоров (он сохранял у себя все эти записи), чтобы посмотреть, есть ли там какие-то доклады о его хакерском вторжении. Помня точно день и время, когда он проникал в компьютеры компании и был замечен. Эрик просматривал именно этот участок архивов. Ни одного слова о его атаке или замеченном вторжении там не было. Он вздохнул с облегчением.
Заодно он понял, почему ему так «повезло». Почти в тот же момент, когда он был замечен, у одного из клиентов компании произошла авария. Все сотрудники ИТ-департамента побросали свои дела и занялись ее устранением. Эрик нашел более позднюю запись о том, что парень, который его обнаружил, просто запустил антивирусную программу, но не предпринял никаких дополнительных действий. «Было похоже, что ему что-то показалось подозрительным. Он немного поразбирался с проблемой, не смог понять, в чем дело, и просто забыл о ней».
Эрик ретировался и подождал довольно долго для новой атаки, причем совершал ее более осторожно, только в нерабочие часы, когда он быть уверен, что никого на работе нет.
Кусок за куском он перегрузил к себе весь код полностью, направив передачу через промежуточный сервер, расположенный в другой стране — по той причине, что всем процессом он управлял из своего дома.