Искусство вторжения - Митник Кевин. Страница 48
CEO ЗАМЕТИЛ ПРОНИКНОВЕНИЕ
Все перечисленные методы, говорит Эрик, работают и сегодня.
Однажды, войдя в компьютер СЕО. Эрик опять убил межсетевой экран, чтобы передавать файлы на другой компьютер, откуда он смог бы перегрузить их к себе. В процессе этой работы он понял, что СЕО находится за компьютером и, должно быть, заметил что-то странное. «Вероятно, он увидел, что отсутствует значок работающего межсетевого экрана. Он понял, что я в его компьютере». Эрик немедленно отключился. Через несколько минут СЕО перезагрузил свой ноутбук и межсетевой экран опять заработал.
«Я не знаю, заметил ли он меня. Поэтому я подождал несколько недель, а потом возобновил свои попытки. Я уже изучил ритм его работы, и знал, когда могу попасть в систему».
ПОЛУЧЕН ДОСТУП К ПРИЛОЖЕНИЮ
Пересмотрев свою стратегию во время вынужденного перерыва, Эрик вернулся в ноутбук СЕО и начал изучать систему более тщательно. Прежде всего он запустил общедоступную строчную команду LsaDump2, чтобы просмотреть важную информацию, хранимую в специальном разделе памяти под названием L S A (Local Security Authority) Secrets. LSA Secrets содержали пароли для служебного пользования, зашифрованные пароли последних десяти пользователей, пароли пользователя для FTP и Интернета, имена пользователей и пароли для входа в сеть через dial-up.
Он запустил и команду «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-файлы. Он узнал, что я что-то делаю, по сути дела — он поймал меня».