:)
Anthrax шнырял вокруг шлюза MILNET, когда наткнулся на дверь в System X.[48] Он уже несколько месяцев пытался найти эту систему, потому что однажды перехватил сообщение по электронной почте, которое вызвало его любопытство.
Anthrax проник в шлюз. Шлюз объединяет две разные сети. Это, например, позволяет общаться двум сетям, которые используют разные языки. Шлюз может позволить войти в систему, базирующуюся на TCP/IP, такую, как Unix, из системы с языком DECNET. Anthrax переживал из-за того, что он никак не может пройти через шлюз System X и получить доступ к хостам на другой стороне.
Используя обычные адресные форматы для большинства сетей, он попытался приказать сети выполнить соединение. Х.25. TCP/IP. Что бы ни находилось по ту сторону шлюза, оно не отвечало. Anthrax искал повсюду, пока не нашел пример адреса во вспомогательном файле. Ни один из них не работал, но они дали ему ключ к возможному формату адресов.
Каждый адрес состоял из шести цифр. Первые три соответствовали телефонному коду Вашингтона, округ Колумбия. Anthrax взял один из кодов и попытался угадать три последние цифры.
Ручное сканирование, как обычно, утомляло, но если он будет методичным и упорным, что-нибудь получится. 111. 112. 113. 114. 115. И так далее. В конце концов он к чему-то подключился в системе Sunos Unix – и получил полный IP-адрес на ее сообщении о входе. Все остальное было легко. С полным IP-адресом он мог подключиться к System X прямо через Интернет, – минуя шлюз, если захочет. Всегда полезно иметь несколько разных маршрутов, если тебе нужно запутать следы. И самое главное, он сможет проникнуть в System X не только через центральный вход.
Anthrax попробовал несколько обычных вариантов простейших логинов и паролей. Это не сработало. Система требовала более серьезной стратегии нападения.
Он уклонился от запроса логина, вышел из шлюза и отправился на другой сайт Интернета, чтобы посмотреть на System X с безопасного расстояния. Он «прощупал» этот сайт, по крупицам собирая информацию о System X, которую только можно было найти, сделав запрос в Интернете. Он искал лазейку методом тыка. И наконец, он ее нашел. Sendmail.[p162]
В версии System X у Sendmail была щель в системе безопасности, и Anthrax протащил через нее маленькую программу черного хода. Для этого он использовал функцию обработки почты System X и послал в нее «письмо», в котором находилась его скромная компьютерная программа. System X никогда бы не позволила запустить такую программу обычным путем, но она работала, как бомба, посланная по почте. Как только System X открыла письмо, программа выскочила из него и начала работать. Она сообщила системе, что к порту 2001 – интерактивной оболочке – может подключиться со своего компьютера кто угодно, даже не имея пароля.
Порт – это дверь во внешний мир. Компьютеры TCP/IP используют стандартный набор портов для определенных функций. Порт 25 для почты. Порт 79 для Finger. Порт 21 для FTP. Порт 23 для Telnet. Порт 513 для Rlogin. Порт 80 для WWW. В компьютерной системе TCP/IP 65535 портов, но большинство из них совсем не используется. На самом деле средняя система Unix использует только 35 из них, а остальные 65500 бездействуют. Anthrax просто взял один из этих спящих портов, смахнул с него паутину и подключил, использовав черный ход, созданный его крошечной почтовой программой.
Прямое подключение к порту могло повлечь за собой некоторые проблемы, потому что система могла не распознать некоторые команды с порта, например клавишу возврата. По этой причине Anthrax создал для себя учетную запись, которая позволяла ему осуществить вход на сайт и зарегистрироваться как обычному пользователю. Чтобы создать учетную запись и черный ход, ему нужны были более высокие привилегии.
Он начал искать уязвимые места в безопасности System X. Внешне она выглядела вполне надежно, но Anthrax решил использовать ошибку, которая уже успешно показала себя в других местах. Впервые он узнал об этой ошибке на международной телефонной конференции, где он обменивался информацией с другими хакерами и фрикерами. Брешью в системе безопасности была относительно незаметная программа загрузочного модуля системы. Программа добавляла системе новые функции, но гораздо важнее был тот факт, что после запуска она имела свободный доступ в систему. Это также означало, что другие программы, вызванные программой загрузочного модуля тоже получали привилегированный доступ. Если бы Anthrax’y удалось сделать так, чтобы эта программа запустила одну из его программ – маленький «троян», он получил бы привилегированный доступ в System X.
Ошибка загрузочного модуля ни в коей мере не была гарантией стопроцентного успеха в System X. Большинство коммерческих систем – например, компьютеры банков или кредитных агентств – очистили свои компьютеры Sunos от ошибки загрузочного модуля несколько месяцев назад. Но эта ошибка продолжала присутствовать в военных системах. Те были похожи на черепах – твердые снаружи, но мягкие и уязвимые внутри. Поскольку ошибка не могла быть использована, если хакера не было внутри системы, то чиновники, ответственные за безопасность военных компьютеров, не придавали ей особого значения. До System X Anthrax побывал во многих военных системах, и, по его опыту, больше 90 % компьютеров Sunos никогда не обращали внимания на ошибку.
Имея обычные привилегии, Anthrax не мог заставить программу загрузочного модуля запустить своего «трояна». Но он мог схитрить, чтобы сделать это. Секрет заключался только в одной клавише: /.
Компьютеры Unix в чем-то похожи на дипломатический протокол: небольшие вариации могут полностью изменить смысл. Хакеры тоже понимали значение мелких изменений.
Фраза /bin/program читалась в системе Unix совершенно отлично от фразы bin program.
Один простой символ – / – создавал огромную разницу. Компьютер Unix читал символ / как дорожный указатель. Первая фраза говорит компьютеру: «Следуй по дороге в дом пользователя по имени /bin/, и когда ты окажешься внутри, вызови файл под названием program и запусти его». Но пробелы говорили компьютеру нечто совершенно другое. Anthrax знал, что в этом случае компьютер должен был выполнить исходную программу. Вторая фраза говорила машине: «Найди программу под названием bin и запусти ее».
Anthrax подготовился к атаке на программу загрузочного модуля, установив свою собственную программу под названием bin во временной директории System X. Если ему удастся заставить System X запустить его программу с корневыми привилегиями, он получит высокий уровень доступа в систему. Когда все было готово, Anthrax заставил систему прочитать символ / как пробел. Затем он запустил программу загрузочного модуля и стал наблюдать. System X начала охоту за программой bin, быстро нашла ее и запустила «трояна» Anthrax’a.
Хакер наслаждался моментом, но останавливаться было рано. Несколькими быстрыми нажатиями клавиш он добавил строку к файлу пароля, создавая для себя базовую учетную запись. Он уничтожил соединение с портом 2001, двинулся кружным путем по другому маршруту, используя шлюз 0014, и зарегистрировался в System X с помощью вновь созданной учетной записи. Он испытал ни с чем не сравнимое чувство, войдя в систему через парадный вход.
Оказавшись внутри, Anthrax быстро осмотрелся. Система поразила его. В ней было только три пользователя-человека. Это было необычайно странно. Большинство систем имеют сотни пользователей. Даже маленькой системой может пользоваться 30–40 человек. А эта система была далеко не маленькой. Anthrax сделал вывод, что System X не была обычной машиной для отправки и получения электронной почты. Это была операционная машина. Она что-то делала.
Anthrax стал думать о том, как стереть свои отпечатки и обезопасить свою позицию. Хотя он едва ли обозначил свое присутствие, кто-нибудь мог обнаружить его появление, просто посмотрев на регистрационный список учетных записей в файле пароля. Anthrax дал своей контрабандной учетной записи незаметное имя, но он вполне допускал, что эти трое пользователей знали свою систему очень хорошо. Раз их было всего трое, возможно, с этой системой нужно было возиться, как с ребенком. После всех предпринятых усилий Anthrax нуждался в бдительной няньке, как в дырке в голове. Он поспешил укрыться в тени.