Секреты супер хакера
Шрифт:
Там, где идентификация вызова отсутствует или недоступна, может применяться метод обратного вызова. Если звонящий вводит правильную идентификационную информацию, главный компьютер отключается, и затем сам перезванивает по тому телефонному номеру, который хранится у него в памяти и соответствует введенной информации. Это обычный способ обратного вызова, но в некоторых случаях (например, в системе электронных досок объявлений RBBS-PC) он производится следующим образом: звонящий ждет, пока телефон сделает энное количество звонков, затем кладет трубку и перезванивает заново. Во второй раз BBS отвечает на звонок. Если ж после N звонков звонящий не кладет трубку, компьютер вообще проигнорирует вызов, таким образом, обеспечив безопасность. Итак, если вам доподлинно известно, что такой-то номер принадлежит компьютеру,
Главный компьютер может также не соединять звонящего до тех пор, пока на кнопочном телефонном аппарате не будет набран определенный код. Так как данный код обычно создается терминальной программой вызывающего компьютера, он может быть очень длинным и сложным, чтобы его было трудно случайно угадать или взломать с помощью грубой силы.
Как видите, приведенные выше способы обеспечения безопасности значительно осложняют жизнь хакера. Конечно, можно с помощью социальной инженерии вытянуть информацию из легального пользователя системы, но часто хакер даже не подозревает о существовании таких суровых мер.
Можно время от времени прозванивать определенные телефонные номера, если у вас есть основания подозревать, что один из них принадлежит к компьютерной линии. Если один из номеров никогда не отвечает, сколько бы раз вы не звонили по нему, можно сделать предположение, что он подключен к элементу обратного вызова, или чему-то в этом духе. Если вы звоните, слышите, что на другом конце компьютер, но соединения не происходит, вероятно, компьютер "взглянул" на ваш телефонный номер и сделал вывод, что он недостоверен. (Или же вы пытаетесь установить связь с факсом.) Устройства типа идентификатора вызова, или те, что делают обратный вызов, особенно распространены в тех компьютерных системах, пользователи которых находятся внутри небольшого региона. Дистанционная система может также пытаться определять специальные тональные сигналы, закодированные в модуляции, - хотя линия и коммутируемая, для соединения может потребоваться специальное оборудование.
Иногда системные менеджеры доходят до того, что скрывают даже сам факт существования у них компьютера, подсоединенного к коммутируемой линии связи. Когда пользователь вызывает такой компьютер, специальное устройство отвечает на звонок. Вместо характерного звука, издаваемого модемом, пользователь слышит запись голоса, шум помех, или вообще ничего не слышит - пока вызывающий модем не пошлет удаленном системе специальный пароль. Конечно, такая уловка легко собьет с толку любой автонабор.
В общем, устройства, ограничивающие доступ к искомому компьютеру, представляют собой ни что иное, как очередной защитный барьер, который надо преодолеть. К счастью, большая часть компьютеров не оснащена подобным образом, и взломать их не труднее, чем разбить сваренное вкрутую яйцо.
Подробное исследование сценария входа
Сценарий входа - это область удаленного компьютера, доступ к которой вы получаете, еще не определив себя как правомочного пользователя системы.
У большинства компьютеров сценарий входа ограничивается приглашением ввести имя пользователя и пароль. Некоторые сценарии более широки, и выдают общее командное приглашение, в ответ на которое вы можете набрать сколько угодно команд. Эти команды необязательно будут выполнены (возможно, сначала вам придется войти в систему), но они могут вам помочь.
Существует несколько общих команд, которые можно ввести в ответ на системное командное приглашение. Сначала попытайтесь ввести "help" или "?", и посмотрите, не получится ли что-нибудь. Команды типа "users", "show users" или "who" могут быть полезны тем, что вы увидите список пользователей системы и попытаетесь разгадать их пароли. Преимущества некоторых других команд могут проявляться не столь явно, а многие команды могут оказаться вообще бесполезными для хакера.
Большой плюс основных командных приглашений состоит в том, что к ним часто можно вернуться после того, как вам не удастся войти. Даже если вы уже ввели три неправильных комбинации имя, пароль, компьютер продолжает возвращать вас к командному приглашению, давая вам возможность сделать следующую попытку.
Если вы попали на основное командное приглашение и никакая помощь не доступна, постарайтесь сделать различные веши, обращая при этом внимание на сообщения об ошибках, которые вы получите. Попробуйте набрать команды прописными буквами, строчными и вперемешку. Взгляните на максимальную и минимальную длину команд. Посмотрите, какие символы будут распознаны. Все это поможет вам уменьшить область неизвестного, и определить необходимые действия. Если каждый раз, набрав "HELP", вы получаете сообщение об ошибке "Line too long" ("Слишком длинная строка"), вы будете знать, что система, по всей вероятности, ожидает трехзначных команд. Это полезная информация.
Если вы набираете "CONNECT", а система отвечает "The verb CONNE is not available", значит, она воспринимает только первые пять символов вводимых команд. Если же система восприняла все введенные символы, вы сможете воспользоваться помощью. К примеру, набрав "HELP", вы получите список команд, "HELP COMMAND NAME" - разъяснения по одной конкретной команде. Это общепринятая система помощи.
Давайте перейдем непосредственно к вводу пользовательского имени и пароля. Некоторые терминалы сообщают вам о неправильном вводе сразу же после ввода неверного имени, другие ждут, пока вы введете имя и пароль. Первый тип предпочтительнее, поскольку менее защищен и предполагает значительно большее число попыток взлома, чем второй. Так, IBM VM,370 обладала недостаточной зашитой именно в этом смысле, немедленно информируя вас о том, выдавая сообщение об ошибке при вводе пользовательского имени - "userid not in cp directory". Одна из известных мне систем (Dynix) следует тому же принципу. Сначала она услужливо предлагает вам ввести "Nine digit ID code" "Девятизначный идентификационный код" (Так-так, что же это такое? Возможно, номер социальной безопасности?), а затем, если ввод был верен, говорит: "Good morning Samantha. Now type your password" - "Доброе утро, Саманта. А теперь введите ваш пароль". Данный конкретный компьютер позволяет легко взломать один из нескольких командных языков и перепрограммировать интерфейс на основе меню. Компьютеры также снабжены коммутируемыми портами. Взламывать Dynix - одно удовольствие.
Если вы взламываете компьютер второго типа (тот, что запрашивает имя и пароль перед тем, как сообщить, принята ли ваша загрузочная информация), заметьте время, которое потребуется ему на то, чтобы выдать приглашение для ввода пароля. Это поможет сделать заключение о том, верно ли введенное вами имя пользователя. Например, вы вводите имя "Jim", и до появления приглашения о вводе пароля проходит столько-то времени. Затем попробуйте ввести имя "Zzzzzzz" - явно неверное имя, которое отсутствует в памяти компьютера. Если после ввода этого имени до появления приглашения ввести пароль неизменно проходит большее количество времени, чем после "Jim", значит, "Jim" - верное имя, и вы можете продолжить угадывать пароль уже с этим именем. В системах с последовательным поиском компьютер дольше пытается отыскать в своих файлах неверно введенную информацию, нежели верную. В любом случае, исходные программы всегда являются доступными, особенно для файлов UNIX, и вы можете просмотреть их, чтобы увидеть изнутри, как работает режим входа.
Если вы понятия не имеете, какой тип пользовательского имени и,или пароля используется в данной системе, следует прибегнуть к такой же проверке, как и в случае с общим командным приглашением, чтобы путем проб и ошибок обнаружить, какие символы требуются в данном случае, и сколько.
Существует совершенно иной способ исследования режима входа - с помощью управляющих кодов. Нажатие определенных клавиш, или комбинаций клавиш, посылает коды на удаленный компьютер, который заставляет их работать иначе, чем обычно. Например, можно послать на удаленный компьютер ASCII-код, чтобы скомандовать ему прекратить чтение файла с паролями. Иногда удается даже быстро перенабирать введенный пароль, заставив компьютер поверить, что он обнаружил его в своем файле паролей, и разрешить вам войти в систему. Иногда нажатием Control-Z (команда конца файла) в нужное время можно тоже добиться странных результатов.