Заключение
   Значительная часть данной главы повествует о различных "вероятных" паролях, которые перебираются по ходу грамотной силовой атаки перебором.
   Наиболее часто встречающиеся пароли можно перечислять ао бесконечности - имена домашних питомцев, исторические даты, названия книг не говоря уже о том, что все они могут быть написаны с пропущенными гласными, задом наперед и в виде различных анаграмм. Порой и думать не приходится о со-крашении числа возможных паролей до нескольких, так как ваше "сокращенное" число окажется таким же бесконечным, как и то, которое вы пытались сократить. Кроме того, пароль может быть "легким" для угадывания и в то же время достаточно тайным, чтобы отбить у вас охоту его отгадывать. Пароль "Смит" не является особенно тайным, равно как и пароль "Ажонс", но пароль "Смит@ёДжонс" вполне отвечает требованиям секретности.
   Сторонним наблюдателям кажется, что угадывание паролей как раз и является основным занятием хакеров, но на самом деле это лишь начальный этап взлома.
   "Атаки перебором" лучше всего удаются компьютерам и к ним лучше всего прибегать тогда, когда для получения права доступа необходим компьютер (в качестве примера можно привести Роберта Морриса с его компьютерным "червем").
   Дело в том, что хакерское дело целиком зависит от знаний и мастерства. Метод перебора имеет мало общего и с тем, и с другим. Но никто не посмотрит сверху вниз на хакера, который грамотно проводит силовые атаки, особенно если у него есть на то веские причины. Но не надейтесь, что электронный мозг сделает за вас всю грязную работу: используйте лучше творческие возможности своего собственного мозга. О них-то и пойдет речь в следующей главе.
   Глава 4. Социальная инженерия
   Обратная социальная инженерия: Он нуждается в вашей помоши.
   Социальная инженерия: ваша жертва обычно остается в недоумении.
   Обратная социальная инженерия: все проблемы устраняются, вопросов не остается.
   Социальная инженерия: вы почти не контролируете ситуацию.
   Обратная социальная инженерия: вы полностью контролируете направление и предмет беседы.
   Социальная инженерия: подготовительной работы практически не требуется.
   Обратная социальная инженерия: тщательное предварительное планирование; требуется предварительное получение доступа к месту действия.
   Социальная инженерия: может применяться где угодно.
   Обратная социальная инженерия: применяется только в определенных условиях.
   Социальная инженерия в основном исходит из предпосылки, что вы самозванец, притворяетесь, что у вас возникли затруднения и вам требуется помошь другого оператора. А вот обратная ситуация: проблемы возникают у легального пользователя системы, и он (или она) просит вас, хакера, о помоши. Помогая пользователю разрешить возникшие проблемы, хакер без особенных усилий может узнать рабочие имена и пароли. Атака с помощью ОСИ состоит из трех частей: диверсия; реклама; помошь.
   Диверсия - это первый краткий контакт с определенным компьютером, во время которого хакер создает какую-либо неполадку, требующую устранения.
   Реклама - информирование пользователя о том, что вы разбираетесь в вопросах из области компьютеров.
   Помошь - общение с пользователем, в процессе которого вы решаете проблемы пользователя, а тот, сам того не ведая, решает ваши.
   Прежде чем я начну объяснять, как применять этот метод и что он может дать, вам следует уяснить для себя, почему лучше, когда пользователь обращается к вам за помошью, а не наоборот. Давайте рассмотрим по пунктам список недостатков социальной инженерии, приведенный в предыдущей главе, чтобы показать, как обратная социальная инженерия преодолевает эти препятствия.
   Преодоление недостатков социальной инженерии
   Пользователь может быть предупрежден об утечках информации или знать о тактике СИ
   Пытаясь подвергнуть социальной инженерии того, кто о ней знает, особенно квалифицированных программистов и других хакеров, вы вряд ли многого добьетесь. Даже если собеседник не знает о СИ как таковой, он (или она) может достаточно серьезно относиться к предупреждениям "Храните в тайне свой пароль", чтобы не купиться на вашу болтовню. Социальная инженерия рассчитана на наивных пользователей. Но ведь не все являются таковыми.
   В случае ОСИ легальный пользователь обращается к вам за советом. Следовательно, он считает вас человеком, которому можно доверять, - членом компании или ее доверенным лицом, то есть тем, кто уже и так знает все пароли и протоколы. Так что у него нет причин не давать вам такую информацию. У него даже мысли подобной не возникнет - ведь ему так или иначе придется, обратившись за помошью, выложить всю подноготную.
   Следует отметить, что обратная социальная инженерия не является социальной инженерией. Она подходит к проблеме разговора с пользователем с другой стороны, и пользователь, знакомый с обычными ха-керскими уловками, вряд ли сможет ее раскусить. Более того, даже если ваша жертва достаточно умна, чтобы распознать ОСИ, этот человек будет настолько озабочен возникшей у него проблемой, что не заметит происходящего. Ему (или ей) нужна ваша помощь, чтобы устранить неполадку; он понимает, что, если он не договорится с вами, вы ему не поможете.
   Пользователь может не поверить, или знать, что вы не тот, за кого себя выдаете
   Уязвимое место социальной инженерии в том, что вы являетесь для собеседника темной лошадкой, поскольку он не знаком с вами лично. Кроме того, если человек на другом конце провода узнал о том, что вы не тот, за кого себя выдаете, возможно, воспользовался ID, или телефоном с определителем номера, то в этом случае, пароли могут и не появиться, как по волшебству, перед "таинственными техниками" и "растерянными пользователями" с "испорченными" модемами. НО! При обратной СИ у тех, кто знает волшебные слова, нет причин подозревать или обманывать вас - ведь это они обращаются к вам за советом. Это вы помогаете им в их несчастье. В самом деле, когда они звонят вам, вы вправе спросить, кто они, собственно, такие. Безопасность прежде всего.
   Пользователь не имеет причин помогать вам, или может дать неверную,ошибочную информацию
   Что прежде всего заботит человека, которого вы подвергли социальной инженерии, независимо от того, помог он вам, или нет?
   Если бы я, не покладая рук, трудился в какой-нибудь конторе, или был секретарем, я просто пришел бы в ярость, если бы посередине хлопотного дня какой-то идиот позвонил мне по телефону и попросил уделить ему несколько минут моего драгоценного времени и сообщить некую информацию, которую он, скорее всего, вообще не должен знать! Я мог бы просто брякнуть в трубку, что на ум взбредет, только бы отделаться. При обратной же инженерии вы знаете, что ваши собеседники нуждаются в вашей помощи. Даже самый великий гуру из числа знающих пользователей обратился бы к вам, зная, что вы сможете быстро и эффективно определить суть проблемы и разрешить ее, не тратя времени зря. Этот пользователь знает, что ключ к решению задачи находится у вас, и если он его получит, в следующий раз сможет справиться с такой проблемой самостоятельно.
   Пользователь может сообщить о вашем звонке менеджеру по безопасности
   Опытный пользователь мгновенно догадается, если вы попытаетесь подвергнуть его социальной инженерии. Он может пойти и рассказать остальным, что вы пытались выманить у него пароль. "Остальные" - коллеги, боссы, менеджеры по компьютерам, человек, роль которого вы пытались сыграть, охранники либо офицеры безопасности. Ни один из них не станет помогать вам в дальнейшем, даже если вас не поймают сразу или не сведут к нулю ваши шансы на взлом. Разоблачение, конечно, совсем не подарок. Но при обратной инженерии вы неизменно приобретаете друзей. Когда вы помогаете людям преодолеть какие-то затруднения, они радостно пустят слух о вашей любезности и отзывчивости - а это означает еще больше звонков и паролей.
   Предшествующие разъяснения преследуют три цели. Я хочу, чтобы вы поняли, почему такое мощное средство, как классическая СИ, может случайно провалиться, и как ОСИ может избежать этих ошибок. Я утверждаю следующее: социальная инженерия не может больше оставаться главным оружием в арсенале современного хакера без предупреждения обычных пользователей. Обычные пользователи проявляют все большую осторожность и благоразумие, когда дело касается таких интимных вещей, как пароли и компьютерная безопасность. Обычные пользователи стали больше читать о том, как хакеры взламывают системы. Они посещают лекции по компьютерной безопасности, которые устраивают их компании, колледжи и местные полицейские подразделения. В системы стали включать предупреждения о недопустимости разглашения любой информации; об этом твердят их работодатели и их собственный рассудок. И я сам - даже я! - говорю им о том, что существуют злоумышленники, мечтающие испортить их файлы. Я весьма сомневаюсь в том, что наступит такое время, когда все компьютерные пользователи будут достаточно осведомлены, чтобы держать язык за зубами. Возможно, через несколько лег предприятия поставят на свои телефоны задержку времени и подключат их к голосовым мониторам. Тогда запрещенные к произнесению слова будут обнаруживаться и уничтожаться прежде, чем электроны, составляющие сигнал, покинут пределы находящихся внутри здания проводов. Даже если подобная вещь станет повсеместной, или если 95% людей, общающихся с компьютерами, захотят покончить с социальной инженерией, все же останутся пять процентов, останутся сотни других хакерских уловок, новых и старых, и останется Обратная Социальная Инженерия, помогающая хакеру в его нелегком деле.
   Диверсионные методы обратной социальной инженерии
   Первый шаг ОСИ - создать неполадку в избранном вами компьютере или сделать так, чтобы пользователь не смог на нем работать. Обычно это означает создание такой неполадки на рабочей станции, терминале или компьютере, чтобы пользователь не мог войти в систему так, как положено. Неполадку должно быть трудно обнаружить, но легко исправить. Вот список из пяти общих идей, расположенных в порядке возрастания затрачиваемого на них времени и степени вашего знакомства с системой: Изменение какого-либо параметра, неизвестного новичкам или такого, о котором они не подумают. Например: устанавливаемые по умолчанию порты принтера, цвета экрана, макросы, скрытые коды принтера, периферийные технические установки. Установить файлы в режим "только для чтения", или переименовать их, или сделать невидимыми в их директориях. Пример: если рабочий файл текстового процессора называется WP.EXE, переименуйте его в WP.$A$. Вмешательство в аппаратное обеспечение. Например: переключить цветной монитор в монохромный режим; поменять дисководы; отключить клавиатуру, выташить из компьютера предохранитель. Инсталлировать большие резидентные программы, занимающие уйму памяти. Пользователь не поймет, почему ему не удается запустить программу. Запустить модель программы, подобную модели операционной системы, которая станет выдавать кучу ужасных сообщений об ошибках.
   ВНИМАНИЕ! Диверсия не должна причинять неустранимого вреда компьютеру или пользователю! НЕ УНИЧТОЖАЙТЕ файлы и директории: не исключено, что их будет невозможно восстановить впоследствии. НЕ ИНСТАЛЛИРУЙТЕ вирусы: они легко выходят из-под контроля. НЕ делайте изменений, благодаря которым операционная система откажется загружаться: когда пользователь позовет вас на подмогу, у него может не оказаться под рукой дискеты для загрузки DOS!
   Разрешение диверсии
   Допустим, уловка сработала и вам позвонили. После того, как система загрузится и вы обнаружите, что неполадка никуда не делась, вы должны сообщить пользователю, что он (или она) должен делать, чтобы устранить возникшую проблему. Конечно, можно просто дать ему недвусмысленные инструкции вроде:
   "Наберите команду "rename WP.$A$ to WP.EXE"..." Но если пользователь достаточно сведущ, он наверняка заметит подвох. Как же обойти это препятствие? Вам придется дать взволнованному пользователю такие рекомендации, которые успокоили бы его.
   Если диверсия связана с аппаратным обеспечением, разместите на диске программное решение. Например:
   "Войдите в директорию текстового процессора, наберите "SETUP" и нажмите Return. Теперь попытайтесь запустить программу еще раз". В данном случае SETUPэто файл, который вы разместили на диске; он содержит инструкцию по переименованию, а также команду по самоуничтожению после выполнения.
   Проблемы, связанные с аппаратным обеспечением, бывает трудно определить или объяснить по телефону, но, вообше-то, в ОСИ редко используется аппаратное обеспечение. Если на месте у вас окажется достаточно времени для создания физических неполадок на искомом компьютере, у вас должно хватить времени и на то, чтобы отобрать необходимую вам информацию.
   Рекламные методы оси
   Существует пять основных рекламных методов, которые могут заставить ваших пользователей позвать на помощь именно вас: Замена пометок. Если вы увидите приклеенный рядом с компьютером или непосредственно на нем листочек бумаги с номером телефона компьютерного отдела, снимите его и приклейте взамен записку с вашим собственным номером (или номером какого-то другого телефона, возле которого вы сможете сидеть в ожидании звонка). Размещение объявления. Поместите на доске объявлений (обычной, а не электронной!) большое, яркое, солидное объявление с содержанием типа:
   Служба Технической Помощи
   У ВАС ВОЗНИКЛИ ПРОБЛЕМЫ С КОМПЬЮТЕРОМ? ЗВОНИТЕ НАМ БЕСПЛАТНО ПО НАШЕМУ НОВОМУ НОМЕРУ:
   (123)ABC-WXYZ
   Служба Технической Помощи
   Не забудьте поместить название и адрес компании, в которую вы хотите проникнуть, где-нибудь в углу объявления - чтобы можно было подумать, что объявление имеет какое-то отношение к ней. Расклейте такие объявления повсюду, или просто разбросайте по рабочим столам, особенно рядом с теми компьютерами, на которых вы произвели свою диверсию. Социальная инженерия. Позвоните за день, или даже за несколько часов до совершения диверсии, и сообщите тому, кто подойдет к телефону, новый номер вызова помощи из компьютерного отдела (т. е. ваш номер). Попросите держать его под рукой, чтобы не искать, если понадобится. Спросите, является ли ваш собеседник единственным пользователем данного терминала; если ответ отрицательный, попросите сообщить о новом номере другим пользователям. Перекройка каталога. Достаньте внешний телефонный каталог компании и добавьте ваш номер в список, либо вырезав существующий номер технической помоши, вставив вместо него свой собственный, либо разборчиво напечатав свой номер в конце каталога.
   .Диалоговая реклама. Непосредственно в процессе диверсии постарайтесь дополнительно разместить заметку на доске объявлений (на сей раз электронной!) с вашим номером компьютерной помоши. Выдавать телефонный номер может и одна из процедур вашей диверсионной программы. Например, вы можете переименовать WP.EXE, затем создать модель текстового процессора, который станет врываться в операционную систему после нескольких нажатий клавиш, оставляя на экране искаженные цвета, символы, а также следующее сообщение:
   login Enter Name:
   Enter Password:
   В конце можно оставить хвостик нормального меню, списка команд, либо текста, который каждый обычно видит, включив терминал.
   Разместите "Enter Name:" так, чтобы эта строка была последней, видимой на экране. Поместите курсор сразу после двоеточия, и выключите клавишу "Insert", если таковая имеется.
   Человек, севший за терминал, подумает, что кто-то набрал команду "login" еще до него. Он введет свое имя и нажмет "Enter". Нажатие "ввода" прокрутит документ на одну строку вверх, так что станет похоже, будто компьютер запрашивает ввод пароля, который и будет введен пользователем к вашему вашему удовольствию, ведь вы сидите неподалеку, наблюдая за тем, как разворачиваются события.
   У данного метода существуют свои недостатки (как, вообше-то, и у всех этих методов E-Z). Что, если человек, который сядет за компьютер первым, не станет входить в свой бюджет? А если он ошибется при вводе, что останется незамеченным до тех пор, пока он не нажмет на "ввод"? В обоих случаях вашу маленькую шалость могут обнаружить. Всегда существует возможность того, что кто-нибудь из тех, кто присматривает за компьютерным залом, выключит те терминалы, которые, по его мнению, зря простаивают, и вся ваша работа пойдет насмарку. К тому же, если вы проделываете такие веши с университетским терминалом, с которого можно получить доступ к множеству различных компьютеров, наверное, это будет не слишком-то разумно.
   Данная уловка может не сработать по многим причинам, но на установку требуется немного времени, так что последующее, порой долгое, ожидание, может оправдать себя.
   Если вы решитесь проделать такой трюк, помните следующие моменты: сделайте все, что только окажется в ваших силах, чтобы было легче читать с экрана на расстоянии. Включите клавишу "Caps Lock", если понадобится. Увеличьте яркость экрана, если сможете. Слегка разверните монитор, чтобы вам не мешали отблески, когда вы станете смотреть под своим углом зрения. Если удастся, выберите шрифт покрупнее. Прежде чем выбрать место, откуда вы будете наблюдать, убедитесь, что сидяший за компьютером человек не закроет собой экран. Во избежание подозрений займите себя чем-нибудь на время ожидания, но смотрите, не увлекитесь, чтобы не упустить свою "дичь".
   Подглядывание через плечо
   Два вышеописанных метода являются слегка измененной разновидностью того, что называется "подглядыванием через плечо". "Подглядывание через плечо" означает, что хакер просто подглядывает через плечо легального пользователя, пока тот загружается в компьютерную систему. Он смотрит на то, что пользователь набирает на клавиатуре, чтобы подглядеть пароль. Помните, что большинство загрузочных процедур не высвечивает пароль на экране, так что для получения какой-либо полезной информации вы должны смотреть именно на клавиатуру.
   "Подглядывание через плечо" в чистом виде можно осуществить только при определенных обстоятельствах, например, если вы на законных основаниях помогаете пользователю при решении его проблемы, и для этого стоите за его спиной, в то время как пользователь показывает вам, что произошло. В большинстве случаев вы не сможете долго простоять за чьим-то плечом, не вызвав подозрений; значит, придется прибегнуть к дополнительным ухищрениям.
   Можно воспользоваться зеркалом, расположенным в соответствующем месте верхнем углу комнаты между стеной и потолком. Зеркальце должно быть достаточно небольшим, чтобы его можно было приклеить клейкой лентой, но и не настолько маленьким, чтобы нельзя было рассмотреть отражение на расстоянии.
   Воры телефонных карточек иногда используют бинокль, чтобы разглядеть кодовые номера других людей, тем самым получив возможность бесплатно звонить на дальние расстояния. Вы можете поступить также для прочтения паролей, вводимых с клавиатуры. Может возникнуть необходимость придать клавиатуре определенное положение, чтобы вам лучше было видно, что вводит пользователь. Если у клавиатуры есть подставки, поставьте ее на них, прежде чем занять свой пост.
   Вы можете вести свои наблюдения и снаружи, через окно. Но убедитесь сперва, что изнутри вас не видно. Если здание освещается снаружи, вас нетрудно будет заметить, даже когда стемнеет. ао того, как заняться взломом, проделайте кое-какую детективную работу: зайдите в компьютерный зал и посмотрите, можно ли оттуда разглядеть того, кто находится снаружи. Возможно, вам удастся частично, закрыть шторы или жалюзи, чтобы дополнительно загородиться от наблюдения. И, наконец, поразмыслите вот над чем. Может быть, мои советы вам и не пригодятся. В течение последних двух недель я ежедневно посещал компьютерные классы одного учебного заведения, и каждый раз обнаруживал хотя бы один терминал, включив который, я оказывался в чьем-то бюджете. Видимо, владельцы бюджетов не знали, что простое выключение терминала не означает выхода из бюджета. Иногда таких терминалов было даже несколько. Ну чем не рай для хакера!
   Использование БЕЙСИКа
   Если у вас есть бюджет - или если вы, зайдя в компьютерную лабораторию, обнаружили, что кто-то загрузился и ушел - вы можете написать простую программу на БЕЙСИКе для имитации входных процедур, и оставить ее работать.
   Не забудьте ввести в программу соответствующие временные задержки, так как обычно на регистрацию команд уходит несколько секунд, а также заставить программу печатать звездочки (точки, тире и т. п.) вместо пользовательского пароля.
   Иногда еще до загрузки можно использовать такие команды, как получение информации о том, кто еще в данный момент находится в системе. Возможно, вам удастся запрограммировать ложные ответы на запросы пользователей, а возможно, и нет. Впрочем, программу необязательно делать слишком "навороченной", так как большинство пользователей, вероятно, просто сядут за компьютер и загрузятся. Можно посидеть в компьютерном классе и понаблюдать, какие команды используются наиболее часто, чтобы на их основе запрограммировать имитации.
   После того как пользователь введет имя и пароль, программа должна сохранять информацию и выходить из вашего бюджета. Если вы написали программу в чужом бюджете (вроде тех, уже загруженных, о которых я упоминал), то программе придется как-то переносить данные в ваш бюджет. (Методы тайного переноса данных обсуждаются в главе "Что делать, когда вы оказались внутри".) Ведь, выйдя из бюджета, вы не сможете загрузиться снова. С другой стороны, ОС может позволить вам сохранить файл в вашей собственной директории, если вы дадите ей правильные коды доступа, или если вы сможете временно сделать свой бюджет менее защищенным, чтобы другие пользователи могли записывать данные в вашу директорию.
   Важно помнить о хакерской безопасности - никогда не знаешь, следит пользователь за твоими действиями или нет. Значит, прежде, чем помешать в свою директорию файл со столь изменчивой информацией, как чужие пароли, будет разумным ее закодировать. Я использую простую кодировку: сохраняю каждый символ в виде 13 + ASCII-код, а каждое второе число является случайным. Значит, комбинацию имя, пароль, скажем, SMITHERS,RANGERS моя программа сохранит в виде: 96 90 86 97 85 82 95 96 , 95 78 91 84 82 95 96, со случайными числами между каждой цифрой.
   Развитие этих идей вы найдете в следующей главе.
   Аппаратные методы
   Однажды я откопал на складе технического оборудования старый, ненужный терминал, и подключил его к своему портативному компьютеру. Около четырех утра я притащил все это в компьютерную лабораторию и заменил стоявший там терминал на свой, соединенный кабелем с портативным компьютером.
   Портативный компьютер я спрятал под столом. Это был деревянный стол с выступающей крышкой. С помощью электрического скоросшивателя я сделал из старых джинсов с отрезанными штанинами мешок, который подвесил к внутренней стороне стола, и поместил туда портативный компьютер. Этот компьютер должен был сохранять на диске первые десять символов, которые появятся после строк "Username:" и "Password:". Таким образом, компьютер действовал как следящее устройство, работая как посредник между терминалом и мэйнфрэймом. Работа шла успешно.
   У меня возникли затруднения только тогда, когда через неделю я заменил терминал на тот, что был в компьютерном зале: какой-то парень решил, что я пытаюсь его стащить.
   Бывали случаи, когда хакеры брали старые терминалы, снимали с них пластиковый чехол и помешали внутрь маленькие компьютеры! Сам я так не делал, поскольку в используемых мною терминалах было слишком мало места, но в определенных ситуациях это вполне возможно. Надо только убедиться, чтобы компьютер и идущие от него провода не перепутались с внешними выходными проводами "глупого" терминала. Когда хакеры прячут свои портативные компьютеры подобным образом, они обычно помешают свой компьютер в какой-нибудь пустой чехол от терминала.
   Универсальные МикроЭВМ
   Ну вот, мы добрались до Компьютера Общественного Доступа третьего типа, который я включил в список несколькими страницами раньше - универсальной микроЭВМ. Здесь я поведу речь об IBM и машинах с MS-DOS, хотя среди общедоступных машин теперь можно все чаше увидеть и "Маки". Конечно, приемы, о которых я расскажу, можно видоизменить в соответствии с любым компьютерным оборудованием.
   Допустим, вы вызвали вашу местную библиотеку и хотите использовать тамошний компьютер для обработки текста, деловых нужд и т. п. Обычно эти машины не входят в сеть, хотя, если в библиотеке их несколько, они могут быть подсоединены к одному и тому же принтеру или другому периферийному устройству. В колледжах программы обработки текстов могут размешаться на диске, защищенном от записи, - на каком-либо мэйнфрэйме или микроЭВМ. Сейчас появились также конторы, куда люди могут прийти, чтобы заказать компьютерное время и набрать свои отчеты или доклады, а затем распечатать их на лазерном принтере. Подобные заведения вполне могут послужить на благо хакера.