Павел Данилов - Хакинг и антихакинг
Теперь, зная провайдера и логин юзера у этого провайдера, настает время узнать e-mail службы поддержки у этого провайдера. Чаще всего этот адрес выглядит как [email protected] или [email protected] ru. И еще, если есть возможность, следует посмотреть хотя бы одно письмо от этой самой службы поддержки, чтобы знать форму обращения к юзеру и всякие стандартные приветствия типа «Здравствуйте, дорогой наш пользователь LAMMER!!!» и прощания. Они нам пригодятся. Шаг второй. Когда хакер знает весь необходимый минимум, приходит время для создания почтового адреса на каком-нибудь бесплатном сервере, так как оттуда можно будет забирать почту бесплатно, не звоня провайдеру, и потому что можно получить адрес с доменом @ru. ru (но это мелочи). Но создает он адрес не от «фонаря». Он не называет свой ящик [email protected], а скромненько так пишет support-super-provider(r).., или admin-su-per-provider(r).., или что-нибудь в этом роде (содержащее или название провайдера, или слова admin или support). Итак, сделав все вышеописанное, хакер приступает к самой ответственной части – написанию письма глупому юзеру. В принципе, в письме он может написать любую чушь типа: «Уважаемый пользователь! К сожалению, на вашем счету был обнаружен факт двойного доступа к нашему серверу, т. е. в одно и то же время, используя ваш аккаунт, в систему вошли 2 (два) пользователя. Вследствие чего возникла необходимость в смене вашего текущего пароля доступа к нашей сети. Вам необходимо ответить на это письмо, используя следующий формат: log: ваш логин ор: ваш старый пароль npl: ваш новый пароль пр2: ваш новый пароль em: ваш e-mail Эти сведения должны находиться в начале вашего сообщения. Обратите внимание на то, что новый пароль должен быть повторен дважды! Это необходимо для точной идентификации Вашего аккаунта. Рекомендуется прислать свои сведения до 13.06.2002 г., так как по истечении этого срока возможно отключение вашего аккаунта. Желаем вам успехов! С уважением, администрация сервера http://www.super-internet-provider.ru.
Текст может варьироваться, но требование указать пароль там буде всенепременнейше. Главное, чтобы после получения столь убедительного письма у юзера не возникло желания позвонить голосом в службу поддержки и все выяснить.
У хакеров обычно богатое воображение, они и не такое придумывают. Последний рывок и… После того как текст письма готов, хакер начинает скрупулезно подделывать заголовок письма. В принципе, все очень просто: в строке «от» он пишет: From: «Super Provider Support» [email protected] ru. Если юзер вздумает посмотреть, от кого пришло письмо, он увидит РЕАЛЬНЫЙ адрес службы поддержки. В строке «кому» он пишет: То: [email protected] И теперь самое интересное: в строке «ответить туда-то» находится следующее: Reply-To: «Super Provider Support» [email protected] Видите, «[email protected] ru» – это адрес хакерского мыла (который он создал), и при ответе почтовая программа отправит именно по этому адресу. В теме письма пишут что-то типа Subject: Внимание. И в целом заголовок письма выглядит следующим образом: Reply-To: «Super Provider Support» From: «Super Provider Support» To: [email protected] Subject: Внимание. Date: Tue, 13 Jim 2000 13:13:13 +0000 MIME-Version: 1. 0 Content-Type: text/plain; charset= «koi8-r» Content-Transfer-Encoding: 8bit. Дальше идет служебная информация. Заканчиваем наше занятие! Все! Отправляем письмо.
Вот и все… Ах да, вот еще что: пароли можно добывать не только у провайдера. Как говорится, «легко изменив текст письма», можно «попросить» пользователя выслать пароли от своего почтового ящика и т. д. Смех смехом, но срабатывает в поразительном числе случаев. Для достижения наилучшего результата рассылают письма не одному адресату, а нескольким – кто-нибудь да клюнет.
Впрочем, подобрать секретный ключик к сердцу вашего компьютера можно и не прибегая к уловкам и ухищрениям, а с помощью простого и грубого, по-своему даже «честного», взлома. Люди, считающие себя «честными взломщиками», даже придумали для себя весьма удобную философию. Мол, во все времена были люди, которые старались что-либо утаить от других. И были и другие: те, которые с этим были не согласны и поэтому всячески старались тайны первых узнать – такова уж человеческая сущность. И вот придумали первые вход в Интернет с паролем, ибо денег плочено за него немерено, а вторые сразу начали этот пароль отыскивать всеми возможными и невозможными способами.
Стадия первая: пароль пользователь мог выбирать сам. Безусловно, с одной стороны, это было удобно: если сам слово это заветное придумал, то уже не забудешь никогда (если только пребывал в этот момент в здравом уме и твердой памяти, но это уже к делу не относится). Пароль же выбирался не просто так: для указанного пользователя он обычно нес определенную смысловую нагрузку. И в этом было слабое место данного метода.
Теперь только в дешевых фильмах увидишь некоего гражданина, копающегося в мусорной корзине своей будущей жертвы в надежде узнать имена, фамилии, даты рождения всех родственников таковой вплоть до десятого колена, а также всех их собак, кошек, крыс, хомяков и прочей живности. И не без успеха! А как же еще: что вам, например, первым приходит на ум? Конечно, имя вашей (или не вашей) подруги или кличка вашей собаки, ну, или слово какое непотребное (но это уже от воспитания зависит).
Наиболее продвинутые хакеры начали даже составлять специальные словари с учетом слов, наиболее часто встречающихся в паролях. Все это в конце концов положило конец первой стадии, и началась вторая: теперь пароль выдает компьютер, т. е. генерирует некоторую псевдослучайную последовательность букв, цифр и разных знаков препинания. Хорошо-то как стало: «tLka70PLp» – ну-ка подбери! Но тут возникла другая проблема: а поди-ка запомни!
Пользователи начали их на бумажках записывать, ну и периодически бумажки терялись (бумажкам это свойственно), похищались, попадали в мусорную корзину и так далее – от чего ушли, к тому и пришли! И тогда оказалось, что пароль можно хранить не в голове, а прямо на жестком диске. В DialUp-окне галочку поставить и запомнить пароль. Мозги у компьютера кремниевые – ему все равно, что запоминать. А раз запомнили, то, само собой, и записать надо. А раз записали, то… правильно: можно и подсмотреть.
На этом наше лирическое вступление заканчивается, и начинается уже сугубо технология. Где хранятся пароли в Windows? Зашифрованные пароли в Windows 95, как известно, хранятся в основном каталоге, в файлах с расширением PWL. С учетом того, что не только «у нас здесь», но и «у них там» бывают персональные компьютеры коллективного пользования, да и сети локальные местами встречаются, на каждого пользователя заводится свой PWL.
Кстати, название файла соответствует логину данного пользователя. Зашифрованы эти файлы, в принципе, достаточно прилично. Если кому-либо интересно, то, взяв в руки какой-нибудь дизассемблер (HIEW, QVIEW), можно посмотреть процедуру шифрования. Она находится в файле MSPWL32. DLL. в версии OSR2pus со смещением 488(hex). Вот уж где накручено! Имеется счетчик (назовем его N) от нуля до «сколько надо». Имеются три таблицы. В соответствии со счетчиком N берется байт из первой таблицы (X). По смещению X+N, урезанному до 8 бит, из второй таблицы берется другой байт (Y). Затем по адресу X+Y, опять же урезанному до 8 бит, из третьей таблицы берется третий байт (Z). После столь хитрых манипуляций командой XOR с байтом Z шифруется байт информации, после чего счетчик инкременти-руется и все повторяется сначала. Кстати, таблиц на самом деле может оказаться и две, и одна (используются несколько раз на разных этапах). Расшифровывается все это аналогично (и той же процедурой), ибо команда XOR обратима. Если же у вас стоит какая-то другая версия Windows, не 95 или 98, то это дела принципиально не меняет. Видели хакеры лилипутов и покрупнее.
Не знаю уж, в чьих нездоровых мозгах могла появиться мысль использовать для шифрования команду xor byte ptr [eax+ebp], cl. Может, запутать хотели? Но команда уникальна, такие команды в обычных программах еще поискать надо. Стало быть, ищем соответствующую ей комбинацию 30h, OCh, 28h – и все дела. Дальше – просто. Берем MSPWL32. DLL и со смещения 511 h (или там, где найдем) ставим 90h, 90h, 90h – команды NOP (пустая операция). И все! – команда не выполняется! Что при этом произойдет? Как ни странно, ничего страшного и даже не очень страшного. И даже никто ничего не заметит!!! Все останется как всегда, с одним лишь исключением: ВСЕ логины/пароли будут видны, так сказать, невооруженным глазом!
Тут, правда, есть два неприятных момента. Во-первых, во время работы Windows вам не удастся подобным образом надругаться над их «святая святых»: писать в этот файл нельзя. Значит, придется перегружаться в режиме эмуляции MS-DOS, а это лишнее время, которого может не быть. Во-вторых, а это еще хуже, вам надо будет стереть все PWL’bi, иначе даже в Windows не пустят: а вот тут у законных пользователей могут возникнуть лишние вопросы и подозрения.
А можно проще? Без дизассемблеров и «насильственных действий»? Можно! И вот здесь я скажу то, за что (и за многое, увы, другое) Windows 95 иначе, как MustDie, по праву никто не называет. Вы, наверное, думаете, что пароли расшифровываются только тогда, когда это надо, а затем «выжигаются» из памяти «каленым железом»? Ну вот еще… Открытые пароли ПОСТОЯННО хранятся в системе – с момента ВХОДА в Windows данного пользователя и до момента его ВЫХОДА! Вот вам и безопасность. Но этого мало: они доступны ЛЮБЫМ приложениям через API Windows. И вот результат: появляется программа PWLVIEW, которая спокойно показывает вам «всю подноготную» вашей (или не вашей) машины. В том числе и DialUp, и сетевые пароли. Формат выдаваемой информации таков: *Rnal-e соедине-ние1-й логин 1-й пароль *Rna2-e соединение2-й логин 2-й пароль и т. д.