Как бы то ни было, со времен семидесятых придумано уже немало гораздо лучших шифров.
   В некоторых системах силовая атака на зашифрованные файлы затруднена тем, что шифровальный ключ, применяемый пользователями, шифрует не сам текст, а некую случайную последовательность символов, а эти символы, в свою очередь, зашифровывают текст. Чтобы стать хакером, не обязательно быть слишком уж проницательным, достаточно просто обладать умом. Но для того, чтобы взламывать алгоритмы шифровки данных, необходимо быть не только умным и проницательным, но еще и разбираться в математике. К счастью для тех, кто не может похвастаться калькулятором вместо мозгов, существует много других методов для прочтения зашифрованных файлов (вспомните хотя бы прибор благословенного Ван Эйка).
   бит за битом
   Допустим, вы вошли в какой-нибудь незначительный бюджет, где нет доступа ни к чему интересному. Допустим также, что в данной системе вы можете прочесть файл с паролями, но не изменить его.
   Например, пароль вашего бюджета в этом файле закодирован в виде "fg(kk3j2.". Если у вас есть возможность загрузить файл паролей в текстовый редактор, вы сможете сменить зашифрованный пароль системного администратора на ваш собственный; но сохранить внесенные изменения вам не удастся, если у вас нет статуса привилегированного пользователя. Но так ли это?
   Компьютерная зашита системы порой осуществляет проверку достоверности только на самых высоких уровнях защищенности. Пользователь, не обладающий определенным уровнем доступа (а следовательно и защищенности) не может использовать команды высокого уровня для уничтожения, перемещения, использования и изменения файлов; к командам же машинного уровня, скажем для перемещения головки чтения,записи в определенное положение, это не относится. Если бы так происходило со всей доступной областью памяти, каждый файл можно было бы полностью считать или переписать побитно. Если у вас имеется доступ к программному обеспечению или к дисковым носителям, вы сможете изменить расположение хранящихся личных данных, поменяв зашифрованный пароль системного администратора на свой.
   С другой стороны, вы можете обнаружить, что компьютерная зашита не разрешает использование даже инструкций низкого уровня. Но не сдавайтесь слишком рано! Область памяти может быть, по разным причинам, - из-за забывчивости, ошибок, неумения или непрактичности, - только частично за-шишена таким образом. Если это так, вам не удастся изменить файл паролей, но, вероятно, удастся переместить его в директорию другого пользователя, или изменить уже находящиеся в ней файлы. А это даст вам возможность широкого применения "троянских коней" и лазеек.
   Если зашита отвергает любые попытки получения нелегального доступа, возможно, вам удастся заставить привилегированного пользователя поработать за вас. Напишите простую программу, например, игру, и введите в нее скрытые инструкции по изменению паролей. Затем откомпилируйте ее, сохраните, сделав доступной только для привилегированных пользователей, и поместите в общественную директорию. В конце концов какой-нибудь привилегированный пользователь наткнется на нее и запустит, таким образом задействовав те части вашей программы, которые, запусти вы их самостоятельно, привели бы к сообщениям об ошибках и, возможно, дополнительным отметкам в журнале регистрации.
   применение программ
   Большинство программ, применяемых хакерами, являются разновидностями "троянских коней". А классический "троянский конь" использует ошибки других для достижения своей цели. Чаше всего это означает эксплуатацию врожденных недостатков РАТН-команд.
   Большинство современных ОС позволяет вам организовывать свои файлы путем использования директорий и поддиректорий. Таким образом, поиск нужного файла облегчается, но зато для перехода из одной директории в другую приходится набирать длинные путевые имена.
   Решение заключается в использовании команд PATH. Команда PATH говорит ОС: "Если ты не найдешь этот файл в текущей директории, посмотри вон там... А потом - там... И еще вон там." Другими словами, вы определяете путь, по которому будет следовать ОС в поисках файлов. Таким образом, для получения доступа к этому файлу вам не нужно находиться в той директории, где он содержится.
   Команды PATH обычно помещаются в ВАТ-файлы, которые запускаются при загрузке. Они особенно часто используются на больших машинах, которые содержат множество файлов и кучи директорий. В подобных случаях, особенно, если пользователь является обслуживающим оператором и ему нужен неограниченный доступ, очень много директорий может определяться с помощью PATH.
   Пути поиска очень важны для хакеров, особенно, если поиск ведется по всем директориям системы.
   Для начала хакер переписывает часто используемую программу, вставляя в нее "троянского коня". Затем он помешает программу в директорию, которая предположительно находится на пути привилегированного пользователя. Привилегированный пользователь или программа (типа сценария заполнения "пустой" экспертной системы) могут случайно запустить, скажем, вашу программу установки даты вместо "официальной" версии, хранящейся в директории ОС. Если так случится, ваша спрятанная программа сделает свое дело.
   "Троянские кони" могут делать многие веши - собирать пароли, создавать ложные приглашения к входу в систему, лишать файлы зашиты от чтения,записи, либо создавать впечатление фатального сбоя системы (а когда пользователь выключит свой терминал и уйдет, вы сможете набрать секретный управляющий код, который позволит "троянскому коню" снова "вломиться" в бюджет этого пользователя). "Троянские кони", безусловно, составляют значительную часть хакерского арсенала, но существует и другой способ повышения уровня доступа с помощью программ - использование компьютерных вирусов.
   ВИРУСЫ
   Вирус возник путем скрещивания трех видов программ: "троянского коня", червя и логической бомбы.
   Логическая бомба - это небольшая программа, спрятанная внутри большей программы. Обычно она представляет собой не более чем высказывание IF THEN (ЕСЛИ ТО). ЕСЛИ что-то верно, ТО надо сделать нечто. Что обычно представляет собой ТО, можно догадаться, исходя из самого названия - логическая бомба.
   Классический пример логической бомбы был использован, когда один системный программист был уволен за неверно выполненную работу. Через несколько дней после его ухода главы фирмы получают от программиста послание: "Заплатите мне Х долларов до 31-го июля, и я сообщу вам, как спасти ваши программы и записи от полного уничтожения". Он инсталлировал логическую бомбу, которая взорвется в определенный день.
   У программы-червя есть лишь одна цель: саморазмножение. Он осматривается вокруг, и копирует себя, где только может, причем каждая новая копия продолжает заниматься тем же самым. Через некоторое время после начала работы такой программы компьютер или сеть оказываются буквально забиты сотнями или даже тысячами неудержимо размножающихся программ.
   Вирус выполняет функции обеих вышеописанных программ. Программа (спрятанная, подобно "троянскому коню", внутри прикладной программы) саморазмножается, пока возможно, а затем взрывается (как логическая бомба).
   Логические бомбы опасны, но, по крайней мере, известно, чего от них ждать. Вирусы же и черви, в отличие от логических бомб, не только опасны, но и непредсказуемы. Я убежден, что настоящий хакер никогда не создаст червя, поскольку они слишком деструктивны и бессмысленны. Но он может воспользоваться вирусом, при условии, что вирус не причинит вреда системе, самоуничтожаясь по мере своего продвижения, и ни разу не появится на одном и том же месте дважды.
   Вирус может пересылать пароли с помощью электронной почты по определенному адресу, с помощью метода перебора в конце концов проникать в системы и т. п. Существует много путей применения вирусов, но их трудно использовать безопасно.
   Ходили слухи об одном микрокомпьютерном вирусе, который, если бы он действительно существовал, согрел бы сердце каждого хакера. Он назывался ATandTack Virus. Скопировав себя на компьютер, он сразу же пытался найти Hayes-модем или совместимый. Если таковой существовал, вирус выключал динамик модема и соединялся с заранее запрограммированным номером. После этого, естественно, любой, кто находился по вызванному им номеру, получал удаленный доступ к вашему компьютеру.
   Лично мне кажется, что это не более, чем слух. Разумеется, на данный момент ни одна из коммерчески доступных программ обнаружения вирусов не содержит никаких упоминаний о ATandTack Virus. Но мне кажется, что такая штука лучше работала бы в качестве "троянского коня", размешенного в графической программе, нежели в качестве вируса.
   Одним из достоинств "троянских лошадок" и вирусов является конструирование каналов для сбора данных и пересылки их к вам в удобочитаемой форме. Допустим, вирус присоединяется к программе загрузки и собирает пароли. Нет смысла отправлять этот вирус гулять по всему свету, не питая надежд заполучить в свои руки те пароли, которые он соберет. Как я уже упоминал, вирус может периодически пересылать вам пароли с помощью электронной почты (но только не в ваш легальный бюджет!).
   Можно также шифровать почту перед отправкой. Проблема с шифрованием состоит в том, что вам понадобится ключ. Любой, кто обнаружит ваш вирус или "троянского коня", легко сможет вычислить ваш ключ и понять, что за почту пересылает вирус (или какие временные файлы создает "троянский конь"). Значит, вам придется зашифровать этот ключ... а для этого нужен еще один ключ... а его тоже надо как-то обезопасить... значит, еще один ключ... И так - до бесконечности. Но давайте разберемся в ситуации.
   Если вы собираетесь так или иначе прибегать к кодированию, будет проще заставить ваш вирус или "троянского коня" посылать зашифрованные данные в какую-либо большую, не подвергающуюся цензуре конференцию. Недостаток: вам придется мистифицировать почту, иначе кто-либо заметит, что пользователь (который, сам того не зная, приводит в действие ваш вирус) посылает слишком много "мусора".
   Вы можете также подгрузить зашифрованный файл во входную директорию какого-нибудь анонимного FTP. Убедитесь, что компьютерная зашита позволит вам затем выгрузить файлы из этой директории, поскольку зачастую она не разрешает это делать.
   Для пересылки коротких сообщений (например, одного пароля) ваша программа-обманка может временно переименовать какой-либо файл с очень низкой степенью зашиты (атрибуты которого способен изменить кто угодно) в это сообщение. Ваш "троянский конь",вирус будет входить в директорию, маскируясь под различных пользователей сети, и пытаться переименовать файл в данное сообщение. Ваш "троянский конь",вирус не должен оставлять сообщение об ошибке. (Вы можете "вживить" блок постоянного наблюдения, который в виде фоновой задачи будете следить за состоянием этого файла; как изменится имя файла, фоновый процесс сохранит новое имя, а после вернет файлу его первоначальное имя.
   Другие короткие сообщения можно пересылать по битам. Например, если файл Х находится в определенной директории, ваша программа посылает вам цифру 1, а если директория пуста - цифру О. Фоновая задача в то же время следит за появлением и исчезновением из вашей директории этого файла. Когда соберется необходимое количество нулей и единиц (восемь для ASCII-кодов), программа переводит их в символы сообщения. Например, 01000001 - это заглавная "А". 01000010 - "В", и т. д. Чтобы послать восьмизначный пароль, вашему вирусу или "троянскому коню" потребуется 64 уничтожения и восстановления файла X. Биты будут пересылаться по одному, тогда, когда спрятанная программа сможет делать это незаметно.
   КАК выбраться ИЗ заточения на волю
   Допустим, вы совершили взлом, но единственный доступ, который вы обнаружили, это доступ к двум-трем командам или неинтересному информационному блоку. В этом случае вам придется думать, как выбраться из этой программы-тюрьмы и вернуться на уровень операционной системы. Если прежде вы серьезно занимались программированием, ваша задача облегчится.
   Программист знает типы лазеек и ошибок, а также способы их обнаружения. Если он завязнет в бюджете, который запускает информационную программу, то использует все, даже самые неожиданные, способы в поисках вещей, от которых человек, создавший эту программу, не додумался защититься, в надежде получить сообщение об ошибке и вырваться к приглашению ОС.
   Вот что можно попробовать.
   Вводить неверные, неподходящие или слишком длинные ответы на приглашения; особенно подойдут буквенные ответы вместо требуемых числовых. Или, если вас просят ввести число, которое будет анализироваться функцией, попробуйте ввести слишком маленькое или несуразно большое. Попытайтесь вводить ответы с прерыванием, типа Ctrl-Z, Ctrl-C или даже Ctrl-P. Постарайтесь использовать команду "Find" для поиска вне доступных ресурсов. Посмотрите, нельзя ли установить программы для несуществующего аппаратного обеспечения или объема памяти.
   Если в ловушке имеется нечто вроде текстового редактора, например, программы для пересылки почты системным операторам, попробуйте создать резервный файл и послать ваше сообщение в качестве команды на выполнение. Можно также попробовать создавать несоразмерно большие сообщения. Если в редакторе имеются специальные функции проверки текста, напишите громадный абзац, поместите в буфер и скопируйте под первый. Затем проделайте то же самое с двумя абзацами, и т. д., до тех пор, пока программа либо не даст сбой, либо не разрешит вам продолжать. Если это письмо, посмотрите, что получится, если вы попытаетесь сохранить или послать все сообщение целиком.
   Вы можете оказаться в программе, похожей на обычную ОС или управляющую программу, в которой меню со списком опций либо недоступно, либо вызывается с помощью команды HELP. Вам выдается приглашение к вводу команды. К некоторым прикладным командам добавляется имя файла, с которым вы собираетесь работать (например, для редактирования файла с помощью текстового процессора:
   "WORDPROCSTORY.DOC"). Если система работает в режиме онлайн, попробуйте ввести таким образом слишком много данных ("WORDPROCSTORY.DOC FILE.ONE FILE.TWO...") или неподходящие данные. Например:
   WORDPROCWORD.PROC WORDPROC\directoryname WORDPROCnonexistent-filename WORDPROC,etc,date,4.
   Тактика "неподходящих данных" с успехом применялась до последнего времени. Можно прибегнуть также к переполнению стека команд, т. е. размещению множества команд в одну линию. Команды могут быть разделены пробелами, скобками, слешами, или другими знаками пунктуации. Синтаксический анализатор может оказаться не в состоянии интерпретировать слишком большое количество команд. Если строчный редактор не разрешит вам вводить столько строк, попробуйте с помощью программирования создать впечатление, что большой стек команд послан прямо с клавиатуры.
   Если в вашем распоряжении имеется язык программирования или компилятор, попробуйте поставить какие-либо величины на места, вовсе для этого не предназначенные. Возможно, вам удастся откомпилировать программу в специальные области памяти, записав ее поверх машинной программы, которая препятствует вашему продвижению вперед, или заставить программу переместиться в новое положение, где можно будет прибегнуть к дополнительным инструкциям.
   Наконец, попробуйте загрузить программу в редактор электронной почты, или любой другой, или программу-доктор, и изменить ее так, чтобы она разрушалась при запуске.
   Дефекты наиболее часто встречаются в следующих видах программного обеспечения: Новое ПО (программное обеспечение) - одна из первых версий, или прошедшая Бета-проверку и т. п. Программы, по каким-то причинам финансового или рекламного порядка "слепленные" на скорую руку. Программы, годами остававшиеся неизменными, несмотря на изменения аппаратного обеспечения и пр. Обновляющееся ПО. ПО, не обладающее коммерческой ценностью.
   Путешествуя по сетям, выберите время, чтобы остановиться и прочесть заметки о новых версиях старого программного обеспечения. В них часто сообщается об исправленных дефектах старых версий. К тому времени, как вы об этом прочтете, еще далеко не все успеют поменять свои старые версии программ на новые.
   возвращение к месту действия
   Предусмотрительный хакер всегда обеспечит себя лазейкой, чтобы в дальнейшем, если понадобится, беспрепятственно войти снова. Обычно это делается с помощью установки фиктивного бюджета для использования в успешных взломах. В конце концов, нет никакой гарантии, что бюджет, который вы использовали при первом взломе, сохранится к тому времени, как вы загрузитесь снова, или что пароль или другая важная входная информация не изменится, закрыв вам доступ. Если вы получили доступ не с помощью пароля, а какими-то командными или техническими средствами, вам тем более понадобится такой потайной вход, чтобы заново не возиться со всей этой ерундой.
   Во многих ОС можно запускать программы даже после того, как пользователь вышел из системы. Иногда можно установить программу на начало работы в определенное время. Написание подходящей программы и ее запуск с помощью одной из этих команд поможет вам, если вы захотите вернуться к месту своего действия.
   задание выполнено... но не совсем!
   Эй! Взгляните-ка, что у вас получилось! Итак, вы провели исследования, нашли нужный компьютер, взломали его, и теперь разгуливаете внутри. Это четыре составляющих хакерской деятельности. Это и означает - быть хакером.
   Первые четыре составляющих выполняются по порядку, одна за другой. Но вот последняя часть на самом деле вовсе не последняя. О ее выполнении следует заботиться с самого начала и до конца, ни на секунду не забывая о ней.
   Ведь то, чем вы занимаетесь, - ХАКЕРСТВО, а это, как вам известно, вещь незаконная. Значит, вы должны подумать о собственной безопасности.
   Давайте теперь рассмотрим, что же такое хакерство, которое считается незаконным в нашем обществе, как можно заниматься хакерством, не попадаясь при этом в лапы закона, а в заключение мы подведем итоги и поговорим о вашем будущем в качестве хакера.
   Глава 11. Kак не попасть в лапы закона
   Козлевичу не везло. Его ловили и тогда, когда он применял излюбленные им технические средства, и тогда, когда он обходился без них. Его ловили на вокзалах, пристанях, на пароходах и в гостиницах. В вагонах его тоже ловили. Его ловили даже тогда, когда он в полном отчаянии начинал хватать чужую собственность по предварительному сговору с другим лицами.
   И. Ильф, Е. Петров. Золотой теленок.
   Хакерство - это здорово. Черт возьми, да это просто потрясающе! Но вместе с тем хакерство - нелегальное, порой аморальное и обычно наказуемое занятие. Даже если вы не сделали ничего плохого, для судей вам придется подыскать достаточно веское обоснование своим действиям. Самое малое, что может произойти, это заделка прорех в компьютерной безопасности, которые вы использовали для взлома. Более серьезные наказания могут варьироваться от штрафов и вплоть до тюрьмы. Неофициальные наказания могут заключаться в разрушении вашего оборудования и невозможности устроиться на работу, имеющую отношение к технике. Занимаясь своим делом, предусмотрительный хакер преследует две цели:
   1. Не попасться. 2. Если попался, постараться не усугублять дела.
   В этой главе рассказывается о стратегиях, с подошью которых можно следовать этим правилам. Хакерство предполагает не только технические знания, но и особый склад ума. И часть этого ума должна быть отдана знаниям о том, как обеспечить собственную безопасность, иначе оставшаяся часть будет тратиться зря. Приведенные здесь стратегии следует не только знать и применять, но и уметь приспосабливать их к новым ситуациям. Не забывайте, сколько компьютерных преступников отправились в тюрьму. Правда, некоторые из них умудрялись заниматься хакерством и там. Некоторые даже научились хакерству в тюрьме. Но если вы все же не стремитесь туда попасть, везде и повсюду помните приведенные ниже советы.
   в процессе исследований
   На вашей территории проживания могут действовать местные законы, запрещающие машинам или людям постоянно набирать номера и отключаться сразу после набора (так поступает, например, программа автонабора, когда ищет входные наборы). Если вы делаете звонки самостоятельно, лучше говорить тому, кто поднимет трубку: "Извините, я ошибся номером", нежели просто бросать трубку. Помните правило: чем больше людей вы разозлите, тем больше вероятность, что вас начнут преследовать и, в конце концов, накажут.
   при ЗАНЯТИЯХ СОЦИАЛЬНОЙ инженерией
   Социальная инженерия, а еще чаше обратная социальная инженерия, предполагает контакт с зарегистрированным пользователем по телефону или посредством электронной почты. Это рискованно, так как при этом вы даете свой адрес или телефонный номер людям, которых собираетесь обмануть. Для решения данной проблемы хакеры разработали несколько оригинальных методов.
   Однажды я вышел на небольшое предприятие, которое закрывалось на несколько недель. Проведя некоторые исследования и свершив несколько взломов, мне удалось найти программу, которая оставляла сообщения на их автоответчике. С ее помощью я смог входить в контакт с людьми, не сообщая им, кто я такой. Я поместил телефонную рекламу компьютерной сети, приглашавшую людей звонить и оставлять свои имена и данные. Я мог в любое время вызвать компьютер, набрать заветный код и прослушать эти сообщения. Когда предприятие вновь открылось, я позвонил им, сказав, что я из телефонной компании, и сообщил владельцу, что несколько линий пересеклись, из-за чего к ним иногда могут проходить непонятные звонки.
   Некоторые хакеры просто переводят телефонные автоматы в резидентное состояние и работают с них. Для занятий социальной инженерией по почте можно арендовать личный почтовый яшик. Один хакер нашел более простое решение. Он заметил, что почтовый яшик в колледже, находящийся прямо под его ящиком, всегда пустует и, по-видимому, никому не принадлежит. Он долгое время пользовался им, с помощью нехитрого приспособления опуская туда свою секретную корреспонденцию (позднее я показал ему, как открывать эти ящики).
   использование: телефона
   Если хотите сохранить что-то в секрете, не говорите об этом по телефону. Нельсон Рокфеллер
   Если вы новичок, у вас может не возникнуть никаких затруднений с вызовом удаленных компьютеров из собственного дома. Но однажды вы можете оказаться в ситуации, когда не будете точно знать, не прослушивают ли ваш телефон и не следят ли за тем, как вы используете компьютер. Значит, если вы уже вышли из хакерского "детства", вам не следует делать незаконных вызовов из своего дома и вообще с любого телефона, по которому вас могут выследить.
   Неприятности могут произойти, даже если вы действительно новичок. Представьте себе, что вы стали членом TECHRIME-USA BBS как раз тогда, когда ФБР собирается начать акцию против системных операторов, использующих свои доски объявлений в нелегальных целях! Вам совсем не захочется быть втянутым в это, особенно, если вы не делали ничего противозаконного. Даже намек на полуправдивые слухи, циркулирующие по каналам технического андеграунда, может заставить телефонные компании начать следить за проходящими по их линиям модемными сообщениями и записывать их. Это может проделываться автоматически с помощью детекторов, которые прослушивают тоны модемов и передают их на записывающее устройство. В любом случае надо учитывать следующее: 1. Технология, позволяющая делать такие веши, существует, и 2. Известно, что прослушиваются очень многие телефоны. Итак, если вам необходимо общаться с известными компьютерными преступниками, или с доказанными хакерами, соблюдайте крайнюю осторожность.
   Делать телефонные вызовы можно не из дома, но откуда-либо еще. Возможно, придется раскошелиться на портативный лап топ. Сделав это, купите к нему также акустический соединитель и внешний модем. Все это обойдется вам в одну-две тысячи долларов - гораздо меньше, чем потребует с вас адвокат, если вы попадетесь. Акустический соединитель необходим, так как не везде имеются телефонные розетки. Во внешний модем вы будете вставлять соединитель. Многие лап топы уже снабжены модемами, но это внутренние модемы, которые нельзя подсоединить к телефону.
   Итак, вы обзавелись оборудованием. Куда бы его ^ поместить? Существует много возможностей. Ночью и на уик-энд бывает можно проникнуть в здание какого-нибудь большого офиса и, если дверь не заперта, устроиться в одной из смежных комнат. Два года назад летом, прогуливаясь в центре своего города около девяти вечера, я заметил, что окна всех учреждений открыты - и это вечером! Днем стояла жара, и, вероятно, их таким образом проветривали. Будь я в соответствующем настроении, я мог бы беспрепятственно проникнуть в любое здание и подключить свой портативный компьютер к телефону, находясь всего в нескольких сотнях метров от полицейского участка.
   Если у вас водятся деньги, или вам удалось взломать какой-нибудь счет, вы можете заниматься хакерством в гостинице или мотеле. Денежные проблемы беспокоят хакеров и по другой причине. Телефонные счета растут, как на дрожжах, поэтому многие хакеры являются также и фриками. Фрик - это человек, занимающийся взломами телефонных сетей. Одним из основных аспектов этого занятия является создание тональных кодов, которые заставляют телефонную систему выполнять специальные функции, такие, как бесплатные звонки на дальние расстояния. Фрикерство, разумеется, представляет собой обширную область для хакерских исследований, и с телефонными системами - а особенно с компьютерами, обслуживающими эти системы, - должен быть близко знаком каждый хакер. Многие хакеры считают, что любое другое хакерство, нежели взлом таких компьютеров, - это детские игры. В чем-то они правы.