Прорыв
   Первое, что можно заметить на этих микроЭВМ - это некое подобие системы меню. Хозяевам места, где находятся компьютеры, вовсе не хочется, чтобы какой-нибудь сопляк пришел и переформатировал их жесткие диски, или оставил после себя непристойные сообщения, поэтому против подобной деятельности используются определенные средства зашиты. Вообще-то выйти из программы меню-дело нехитрое, несмотря на то, что сама программа - хотя бы частично предназначена для того, чтобы вы этого не делали.
   Если компьютер уже включен и вы находитесь в главном меню, поглядите, нет ли на экране каких-нибудь знаков или команд, которых там быть не должно, вроде "Alt-X to Quit". Попробуйте это набрать - сработает или нет? Можно выйти из меню и получить лишь сообщение: "Ошибка! Нажмите любую клавишу, чтобы вернуться в меню". Произошло следующее: когда утром компьютер был впервые включен, система меню была вызвана файлом AUTOEXEC.BAT. Нажав Alt-X, вы возвращаетесь в командный процессор AUTOEXEC.BAT, и изучаете следующую строку ВАТ-файла. Просто нажмите Ctrl-С, чтобы выбраться оттуда.
   Даже если на экране нет никаких указаний по поводу выхода из меню, можно попробовать различные функциональные клавиши - Ctrl-Break, Escape, а также различные комбинации Alt и Ctrl с С, Х и Q.
   Часто системы меню предлагают ввести пароль, прежде чем разрешить вам выйти в ОС. Если именно так обстоят дела на том компьютере, который вы взламываете, обязательно попробуйте различные пароли - начните с пустых линий, названия здания или компании, и других явных слов, имеющих отношение к работе и бизнесу.
   Компьютерные системы более всего уязвимы в тот момент, когда переходят от одной программы к другой. Поэтому стоит попробовать выбрать пункт меню и нажать Ctrl-C сразу же, как только сделаете выбор. Чтобы добиться лучших результатов, можно еще раз нажать Ctrl-C одновременно с Ctrl-Break.
   Если ничего из вышеперечисленного не сработало, выключите компьютер, затем снова включите и посмотрите, не удастся ли с помощью Ctrl-C или Ctrl-Break выйти из начальных процедур AUTOEXEC.BAT.
   Или можно подготовить дискету с готовой к загрузке программой. Если ни та, ни другая тактика не поможет, используйте систему меню для запуска различных указанных в ней программ и посмотрите, нет ли в одной из них выхода в операционную систему.
   Свобода - это свободное передвижение
   Как только вам удастся выйти из системы меню, вы сможете исследовать компьютер.
   Если вокруг вас бродит много сведущего в компьютерах народа, или кто-то заглядывает вам через плечо, или в помещении появилось начальство, можно вернуться в разрешенные области, чтобы вас не вышвырнули из здания, когда обнаружится, что вы пролезли в запретную зону.
   Я рекомендую скопировать все, что вас интересует, на дискеты и взять их домой, чтобы спокойно просмотреть. Так взломщик уносит с собой весь сейф целиком, чтобы у себя вскрыть его с помощью газовой горелки.
   Сначала скопируйте AUTOEXEC.BAT и систему меню, а также любые найденные директории, которые содержат файлы с расширениями ВАТ, DOC или ТХТ; разнообразные дисковые утилиты; все, что имеет хоть какое-то отношение к телекоммуникациям;
   Резидентные программы; понятные текстовые файлы.
   В особенности, если компьютер подсоединен к локальной сети, на нем могут быть диски D:, F:, H:, L:, или любые другие диски, обозначенные последними буквами алфавита, которые вы обычно даже и не подумаете искать. Поищите спрятанные файлы и директории, и если найдете, скопируйте их тоже. Взгляните также, не были ли уничтожены какие-то файлы, и постарайтесь восстановить их, возможно, они окажутся нужны вам.
   В зависимости от ситуации - типа компьютера, того, где он находится, других имеющих значение факторов вы можете что-то найти, а можете и ничего не найти. Чаше всего вся польза от взлома общественного компьютера заключается лишь в волнующем удовольствии преодоления компьютерной зашиты. Впрочем, зачастую компьютеры бывают настолько плохо защищены, что и удовольствие-то оказывается слабеньким.
   Я часто находил многопользовательские утилиты, которые не видел никогда ранее, так что стоит совершать такие взломы просто ради того, чтобы посмотреть, не найдется ли чего-нибудь новенького в этом духе. Вы, возможно, даже почерпнете какие-либо новые программистские идеи - некоторые из найденных вами ВАТи INIT-файлов могут оказаться на редкость сложными.
   Еще в системах часто бывает можно найти программы внутреннего использования - такие, как списки и базы данных сотрудников, или другие программы, недоступные для посторонних и предназначенные только для управляющих учреждением или библиотекой.
   Если, исследуя компьютер, вы постоянно натыкаетесь на приглашения о вводе паролей, попытайтесь выяснить, где на диске хранится основной список паролей. Однажды я выбрался из общественной программы меню специализированной библиотеки, и, оглядевшись, обнаружил тщательно спрятанный файл под названием PASSWDS. Выведя его на экран, я с удивлением увидел список, состоящий из шести или около того имен пользователей, вместе с их паролями, адресами и другой личной информацией. Поначалу я, конечно, был вне себя от радости, но мне до сих пор невдомек, к чему там были эти имена. Я опробовал их во всех местных системах - безуспешно. Я попытался найти информацию об этих системных пользователях на главных компьютерах с помощью команды "finger" UNIX, но ничего не получилось. Казалось, люди из списка вообще не существовали, где бы я ни искал!.. Возможно, кто-то просто использовал этот файл в качестве теста, или "демонстрашки", или в какой-нибудь частной компьютерной системе.., но зачем же его тогда так хорошо спрятали?
   Иногда такие вот отвлекающие зацепки играют роль следов, которые никуда не ведут. Здесь все дело в том, чтобы выяснить, что же вам требуется. Хакер-ство часто заключается в интенсивных исследованиях, когда целью является установление гипотезы, вопроса, который требует ответа. Как только вы поставите такой вопрос ("Будет ли этот список паролей работать на Raamses 3?" "Есть ли у секретаря президента Moroll Corporation системный доступ?"), вы можете переходить на более высокий уровень исследований и пытаться ответить на него.
   Снаряжение для взлома компьютеров общественного ДОСТУПА
   Прежде чем отправляться в экспедицию на взлом общественных компьютеров, подготовьте и захватите с собой ваш PACK: Public-Accessible Computer (hacking)
   Kit - снаряжение для взлома компьютеров общественного доступа. Это снаряжение должно включать в себя: много чистых, отформатированных дискет, как 3 1,2-, так и 5 1,4-дюймовых, чтобы можно было быстро скопировать защитные программы меню. Проверьте, подойдут ли эти дискеты по формату к тем дисководам, которые вы будете использовать. внешние программы, такие, как Norton Disk Doctor и другие утилиты. Не помешает захватить также любые специальные программы, которые вы напишете (вроде моделей меню, о которых пойдет речь в следующем разделе). Посредством общедоступных программ можно отключить внешний громкоговоритель. Это может оказаться полезным, если вы взламываете компьютер, который издает громкий подозрительный сигнал всякий раз, когда вводится неверный пароль. другие инструменты: лучше всего нож, хотя сойдет и небольшая отвертка. Очень часто, особенно на АРМах с CD-ROM, вы обнаружите замки или крышки, прикрывающие дисководы для ограничения доступа. Для взлома "Макинтошей" удобна большая, не погнутая канцелярская скрепка. Если вам надо срочно сматывать удочки, можно просунуть кончик скрепки в отверстие рядом с дисководом, и ваша дискета выскочит. Зачастую это оказывается самым быстрым способом извлечь дискету.
   модели меню и другие уловки
   Почти все универсальные компьютеры общественного доступа в целях зашиты и для простоты оснащены программой меню. Существуют три "многообещающие" программистские идеи, которые хакер может применить в данном случае: изменение меню, изменение программы меню, и создание собственной модели систем меню.
   Программы меню снабжены опцией редактирования. Это позволяет людям, которые занимаются техническим обслуживанием компьютера, создавать категории меню, такие, как "Деловые программы", "Текстовые редакторы" и т. п., а также добавлять и редактировать программы общественного доступа. Способ заставить меню работать на вас состоит в следующем: вы используете возможность редактирования, чтобы изменить или добавить опцию, которая должна отсылать пользователя в область, где требуется пароль. Между тем, на самом деле меню будет отсылать пользователя к программе, написанной вами и представляющей из себя модель окружения, знакомого пользователю. Ничего не подозревающий пользователь вводит свой пользовательский ID и пароль (который сохраняет ваша программа), после чего получает сообщение об ошибке и снова оказывается в меню. Затем вы можете отправляться в то место, где компьютер прячет пароли и идентификационные номера, и использовать их, как вам заблагорассудится.
   Но здесь возникает вопрос: каким образом можно отредактировать меню?
   Свойство редактирования меню может являться частью программы, такой, как INSTALL.EXE иди SETUP.EXE. Возможно, вам удастся произвести редактирование непосредственно из самой программы меню, путем нажатия функциональной клавиши или набора управляющего кода.
   Проблемы возникают потому, что вообще-то не положено иметь возможность изменять установку меню на компьютерах общественного доступа. Свойство редактирования меню может быть удалено при установке меню, либо для подобных вещей может требоваться пароль.
   Может быть, вам удастся заново инсталлировать программу, восстановив существующее меню и сделав в то же время свои собственные добавления (мы вскоре обсудим этот момент). Или же у вас будет возможность использовать тестовый редактор или программу-адоктор" для изменения того файла, в котором хранится информация меню. Если при попытках изменить файл вы начнете получать сообщения об ошибках, попробуйте использовать для "блокировки" файла команду ATTRIB. Для "разблокировки" достаточно набрать "attrib filename -r" (на машинах с MS-DOS). В соответствии с характером работы этих программ тому, кто занимается редактированием, необходимо обеспечить короткую фразу, которая выводилась бы на экран. Затем он должен выбрать файл, который будет использоваться при выборе этой фразы, возможно, задав путь на диске и другую информацию.
   Предположим, вы решили "просочиться" в компьютерную систему университета. В качестве начальной цели вы избрали общественный компьютер с текстовым редактором, электронными таблицами и телекоммуникационными возможностями. Когда кто-либо садится за компьютер и выбирает пункт меню "Телекоммуникации", его, или ее, либо соединяют с главным сервером, либо спрашивают, с каким компьютером он (или она) хотел бы соединиться. Затем устанавливается соединение.
   Так все должно выглядеть снаружи. На самом же деле, когда пользователь набирает "Т" для выбора телекоммуникаций из меню, меню запускает программу, которую вы подсадили в систему - вместо того, чтобы действительно войти в сеть.
   Программа, которую вы "подсовываете", должна выглядеть так, как будто она делает все то, что обычно происходит, когда кто-то выбирает из меню пункт "Телекоммуникации". Например, она может спросить, с каким компьютером хотел бы соединиться пользователь, а затем сделать вид, что устанавливает соединение с этим компьютером. После этого программа выдает приглашения к вводу имени и пароля, и записывает эти замечательные слова на дискету!
   Затем можно заставить программу выдавать сообщение об ошибке и возвращать пользователя в главное меню, но это будет выглядеть подозрительно, и заставит ответственных за систему людей повнимательнее присмотреться к установкам своего компьютера.
   Лучше, если ваша маленькая моделирующая программка будет вызываться из ВАТ-файла. При ее использовании следующим шагом в ВАТ-файле может быть реальное соединение с системой. Можно заставить ВАТ-файл вводить имя и пароль, введенные пользователем, ликвидировав, таким образом, все странности. Или же пусть он выдает стандартное сообщение "пароль неверен", а уже потом соединяется с сетью.
   В других случаях опция "Телекоммуникации" может отсылать пользователя к коммерческому терминальному пакету, вроде ProComm Plus или SmartCom. И в данной ситуации вам тоже не составит труда создать вашу собственную ложную версию одной из этих программ. Но тут подстерегает ловушка. Когда пользователь войдет в вашу фальшивую терминальную программу, он должен будет выбрать телефонный номер из списка и попытаться связаться с ним. Пользователь будет весьма смущен и у него сразу же возникнут подозрения, если динамик будет включен, но не издаст ни единого звука, сопутствующего соединению! (Не забывайте, что вам каким-то образом придется заставить вашу программу выходить на связь, чтобы потом вы могли смоделировать вызванную сеть. После этого пользователь введет пароль, думая, что действительно подсоединился к сети.)
   Наиболее разумный способ разрешения этой дилеммы - сделать так, чтобы программа выдавала экзотическое сообщение об ошибке, типа:
   Operating Error 2130: Line Noise Interference Shut off your speaker and try again.
   Конечно, это сообщение должно как можно больше походить на другие сообщения об ошибках, те, что на самом деле выдает терминальная программа.
   Когда пользователь выключит динамик, программа может симулировать соединение и выдать стандартный загрузочный экран соответствующей сети. И вот имя и пароль взяты и записаны на дискету, после чего выдается сообщение об ошибке и пользователь отсоединяется.
   Возможно, вам придется заставить компьютер просто выдать на экран кучу бессмысленных случайных символов после того, как имя и пароль будут введены. Постарайтесь, чтобы эта мешанина выглядела достоверно - что-то вроде помех на линии, с которыми время от времени приходится сталкиваться каждому - но не казалась чрезмерной. Пользователю придется отключиться практически немедленно. Если же он этого не сделает, или попытается сделать что-то другое, на экране компьютера должно появляться стандартное сообщение: "Logged off. Good bye!" В этот момент компьютер может загрузить настоящую терминальную программу, так что будет казаться, что ничего особенного не произошло.
   Как правило, на общественных компьютерах не бывает коммерческих терминальных пакетов, в основном потому, что если они есть, люди приходят и начинают звонить чуть ли не всему свету. Но они могут оказаться в офисах и конторах, значит, решив отправиться "на местность", не забудьте прихватить с собой эти идеи.
   А теперь давайте вернемся к программе меню.
   Программа меню необязательно является коммерческой версией. Она может быть создана на месте, либо написана на интерпретируемом языке вроде Бэйсика. Она может представлять собой и обычный ВАТ-файл.
   Если вы столкнулись с одним из вышеперечисленных случаев, вам удастся без особенных усилий изменить саму программу меню, либо создав подпрограммы, в которых будут храниться имена и пароли, либо добавив опцию телекоммуникаций, если таковая отсутствует.
   Последний вариант уловки, связанной с меню - построение модели меню. Это означает, что, если вы окажетесь не в состоянии изменить уже существующее меню, вам придется написать программу, похожую на существующее меню, но с вашими дополнениями.
   На воспроизведение программы меню у вас может уйти некоторое время. Если в меню используются всплывающие окна, вам придется написать подпрограммы для смены экрана, либо запрограммировать окна, которые открывались и закрывались бы частями. Вам следует внимательно разобраться с цветами экрана и специальными символами на экране, с тем, как настоящая программа обращается с ошибочными данными, и с другими тонкостями меню.
   Хотя программирование может оказаться сложным, вам все же лучше использовать собственное меню, так как тогда вам будет легче прятать захваченные пароли и другие полезные веши, получение которых, вообще говоря, и является основной целью данного проекта.
   Как СПРЯТАТЬ Вашу "КОРЗИНКУ С ПРЯНИКАМИ"
   Все вышеописанные методы работы; с меню, равно как и многие технические приемы, описанные ранее, предполагают воспроизведение последовательности загрузки в сеть и захвата нажатий клавиш, в результате чего на диске сохраняется соответствующий файл. Здесь следует беспокоиться о двух вещах: о том, что ваш файл обнаружат, и о том, что ваш файл прочтут. Давайте посмотрим, как же нам предохранить себя от этих двух событий.
   Дело в том, что, так как все происходит на общественных компьютерах, ваши драгоценные файлы может обнаружить кто угодно. В число "кого угодно" входят те, кто несет ответственность за обслуживание, те, кто налаживает конфигурацию компьютеров, другие хакеры, и просто любопытствующие личности со стороны. Файлы может обнаружить и сам компьютер.
   Большинство общественных компьютеров, которые могут вам встретиться, оснащены чистящими подпрограммами. Еженедельно, ежемесячно, а порой и еженощно компьютеры стирают все свои старые файлы данных, дабы освободить место на диске для нового материала.
   К большинству общественных компьютеров с текстовыми процессорами приложены записки с просьбой пользователям приносить свои собственные дискеты, чтобы сохранять на них свою работу, но обычно существует специальная пользовательская директория USERS, либо какое-то другое место, куда любой может записать свои файлы.
   Чистящая программа используется для удаления из таких директорий старых файлов. Эта программа часто сканирует и остальную часть диска, уничтожая файлы, которые хранят пользователи в других директориях. На общественных компьютерах часто можно видеть десятки пустых директорий в разных местах;
   как правило, эти директории имеют человеческие имена. Это частные директории, которые люди создают для себя в надежде, что другие пользователи не станут читать или уничтожать их файлы - при этом совершенно не понимая того, что их файлы все равно будут, уничтожены самим компьютером. Зачастую чистящая программа не соображает, что и саму директорию тоже следует уничтожить.
   Прежде чем располагать на общественном компьютере вашу программу меню, или что-либо другое, необходимо провести некоторые эксперименты, чтобы посмотреть, какой системой очистки располагает данный компьютер - если таковая имеется вообще. Нет смысла тратить многие часы на разработку проекта только затем, чтобы его стерли вскоре после того, как он будет реализован на компьютере.
   Если на компьютере действительно есть чистящая программа, вам надо скопировать ее вместе с прочими вещами в самом начале ваших исследований данного компьютера. Взгляните на программу; вероятно, найдется множество способов ее обезвредить. Возможно, чистящая программа снабжена файлом данных, который содержит информацию о том, какие директории следует просмотреть, что необходимо сделать, если обнаружатся просроченные файлы, дату, по истечении которой файл становится "старым", и другие подобные переменные. Вероятно, вам удастся приспособить этот файл для своих нужд, изменив его таким образом, чтобы "чистильщик" обходил своим вниманием вашу специальную директорию или программу.
   Если чистящая программа запускается на компьютере автоматически, в ходе исследований вам необходимо найти "спусковой крючок", который ее запускает и заставляет уничтожать только определенные файлы. Например, чистящая программа может быть соединена с функцией окончания сеанса, так что до того, как компьютеры выключаются на ночь, диски подвергаются сканированию и нежелательные файлы перемешаются. Чистящая программа может также задействоваться в качестве части стартовой подпрограммы, либо регулярно осуществляемого технического сопровождения. В любом случае, внимательное исследование файлов в системе позволит установить порядок, которому они следуют. Как только вы найдете программу, отключающую "чистильщика", вы сможете изменить свой собственный файл таким образом, чтобы он не уничтожался, а игнорировался. Чистящая программа часто представляет собой монстра "все - или ничего", который стирает все на своем пути , пересекая жесткий диск. Между тем, существуют и более деликатные версии, которые просто стирают старые файлы. Обойти этих "джентльменов" можно, написав несложную программу. Вот пример ВАТ-файла MS-DOS, который изменяет дату вашей спрятанной "корзинки с пряниками" из примера (в котором текстовый файл обозначается "filename") на более позднюю. Подсоедините этот ВАТ-файл в конце AUTOEXEC.BAT, либо поместите в подпрограммы системного сопровождения непосредственно перед запуском "чистильщика". И тогда ваш файл никогда не сотрут.
   (c)ECHO OFF
   CTTY NUL
   DATE TEMP
   EDLIN TEMP [COMMAND2
   DATE 12-31-1999
   EDLIN FILENAME [COMMAND3
   EDLIN COMMAND 1[COMMAND3
   EDLIN COMMAND2[COMMAND3
   EDLIN COMMAND3[COMMAND3
   DATE [TEMP
   DEL *.BAK
   DEL TEMP.*
   CTTYCON
   Чтобы это работало, вам следует создать три вторичных файла. Здесь они носят названия "сот-mand1", "command2" и "command3", но вы можете придумать для них и более невинные прозвища. "Commandl" содержит только возврат каретки (Control-M). "Command3" - файл, содержащий только букву "е". "Command2" несколько длиннее:
   2d
   1 rCurrent date is
   1rSun
   1rMon
   IrTue
   1rWed
   1rThu
   1rFri
   IrSat
   ВАТ-файл работает, используя команду "date" для изменения даты на 31 декабря 1999 года. EDLIN задействован для сохранения файла с паролями (то есть с вашими "пряниками") и трех вторичных файлов под новой датой, в целях их зашиты. В конце дата возвращается в нормальное состояние. Имейте в виду, что MS-DOS может быть установлена на представление даты в различных форматах. Если компьютер, к которому вы "прицелились", имеет необычные установки, вам придется изменять ВАТ-файл и "Command2". Учтите также, что "temp" является распространенным именем файла. Лучше подышите для своей программы что-нибудь более экзотическое.
   Файлы AUTOEXEC.BAT часто подвергаются изменениям, и ВАТ-файл, подобный приведенному в примере, скорее всего, будет замечен обслуживающим компьютер персоналом. Чтобы ваши программы остались тайной, вам, возможно, придется хранить этот и ему подобные ВАТ-файлы в отдельном файле на жестком диске, подальше от AUTOEXEC.BAT. В том месте файла AUTOEXEC, где будет задействован ваш "троянский" ВАТ-файл, вы можете использовать команду "call" системы DOS ("call BATCH.BAT" задействует вашу "лошадку" и, по окончании ее работы, вернет в файл AUTOEXEC.BAT). Ваш ВАТ-файл может быть соответствующим образом закамуфлирован, так, как это описано ниже, а в файле AUTOEXEC.BAT внимание техника сможет привлечь разве что одна-единственная ложная строка.
   Не забудьте, что в некоторых операционных системах, таких как MS-DOS, можно использовать команду "ATTRIB", чтобы сделать имена файлов невидимыми в списке директорий (a "attrib FILENAME +h снова делает их видимыми). Такое сокрытие имени файла не является действительно безопасным, так как существует множество способов, с помощью которых кто-либо может случайно или намеренно найти спрятанные файлы на жестком диске. Но такое удаление имени из директории, несомненно, значительно снижает риск случайного обнаружения ваших "троянских" файлов.
   чего следует остерегаться
   Я хочу перечислить несколько вещей, которых следует опасаться при применении подобной программы. Мои замечания будут касаться приведенной в примере программы, но они достаточно универсальны, чтобы распространяться на любую похожую программу, которую вы спрячете в системе.
   Во-первых, убедитесь в присутствии EDLIN, равно как и DEBUG, TREE и других внешних команд DOS. Они не обязательно являются доступными на используемом вами компьютере, так что вы можете влипнуть, если ваши намерения откроются. При попытке скопировать эти файлы вы можете обнаружить, что директория DOS защищена от записи. В этом случае придется помешать необходимые команды в альтернативную директорию. Это может подставить их под "нож" чистящей программы. Если чистильщик действительно уничтожит эти внешние команды, вам придется придумывать, как разместить их на диске, в то же время обезопасив от "чистильщика". Этот ВАТ-файл работает только для текстовых файлов - двоичные файлы EDLIN испортит.
   Во-вторых, прежде чем действовать, убедитесь, что директория DOS находится в PATH. Это означает, что, для того, чтобы конкретный файл можно было использовать, он должен быть расположен либо в текущей директории, либо в директории, которая была определена (обычно с помощью AUTOEXEC.BAT) как место, где ОС ищет файлы для запуска. Конечно, это не проблема - просто добавьте оператор PATH или CD перед первой EDLIN - но такой момент вы можете просто-напросто проглядеть, особенно если вам приходится самостоятельно добавлять специальные команды в необычную или незнакомую директорию.
   Проверьте также перед тем, как инсталлировать какие бы то ни было программы: хватит ли места на диске? Хватит ли памяти? Не пытается ли программа создать временный файл в закрытой директории? (Если это так, откройте temp в директории USERS, или в любой другой не защищенной от записи директории). Не существует ли уже файл с названием "temp"? А как насчет "Command!", "Command2", и "Commands"? Существуют иные пути использования этой програма-боты программы-"чистильщика", она может запускаться каждый раз, когда вносятся изменения в файл с паролями. Правда, это отнимает несколько секунд, и этого времени может оказаться достаточно, чтобы ощутимо замедлить работу прикладной программы пользователя. Не забывайте, что предполагалось использование данной программы во взаимодействии с каким-нибудь "троянским конем", который вы инсталлируете; "конь" и так замедлит работу компьютера, а уж задержка, вызванная взаимодействием двух программ, вряд ли останется незамеченной.