Alex V. Grachev
К вопросу о бесплатном интернете
Все изложенное ниже предназначено только для ознакомления с возможной опасностью и ни в коем случае не должно быть использовано, если это причинит ущерб каким либо физическим или юридическим лицам, так как это может повлечь за собой административную или уголовную ответственность в соответствии с действующим законодательством.
Для начала небольшой экскурс в историю. Во все времена были люди, которые старались что-либо утаить от других. о были и другие: те, которые с этим были не согласны и поэтому всячески старались тайны первых узнать - такова уж человеческая сущность. И вот, придумали первые вход в Интернет с паролем, ибо денег стоит, а вторые сразу начали этот пароль отыскивать всеми возможными и невозможными способами. Итак, стадия первая. Были времена, когда пароль пользователь мог выбирать сам. Безусловно, с одной стороны, это было удобно: если сам слово это заветное придумал, то уж не забудешь никогда (если только пребывал в этот момент в здравом уме и твердой памяти, но это уже к делу не относится). Пароль же выбирался не просто так: для указанного пользователя он обычно нес определенную смысловую нагрузку. И в этом было слабое место данного метода.
Теперь только в дешевых фильмах увидишь некоего гражданина, копающегося в мусорной корзине своей будущей жертвы, в надежде узнать имена, фамилии, даты рождения всех родственников таковой вплоть до десятого колена, а также всех их собак, кошек, крыс, хомяков и прочей живности. И не без успеха! А как же еще: а что вам, например, первым приходит на ум? - Конечно: имя вашей (или не вашей) подруги или кличка вашей собаки, ну, или слово какое, непотребное (но это уже от воспитания зависит)! аиболее продвинутые хакеры начали даже составлять специальные словари с учетом наиболее часто встречающихся в паролях слов.
Все это, в конце концов, положило конец первой стадии, и началась вторая: теперь пароль выдает компьютер, то есть генерирует некоторую псевдослучайную последовательность букв, цифр и разных знаков препинания. Хорошо-то как стало: 'tHa73?Lp' поди-ка подбери! о тут возникла другая проблема: а поди-ка запомни! Пользователи наши начали их на бумажках записывать, ну и периодически... правильно: бумажки терялись, похищались, попадали в мусорную корзину и т. д.- от чего ушли, к тому и пришли! И тогда какаято умная голова догадалась, что пароль можно хранить не в голове, а прямо на жестком диске. В DialUp-окне галочку поставить и запомнить пароль. У компьютера мозги кремниевые - ему все равно, что запоминать. у, а раз запомнили, то, само собой, и записать надо. у, а раз записать, то... правильно: отвернулся наш пользователь, а тут хакеры толпой налетели - и ну пароль подсматривать.
И тогда запомненные пароли стали шифровать...
у вот, наше лирико-историческое вступление закончилось. Теперь пошла проза.
Где хранятся пароли в Windows 95? Зашифрованные пароли в 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, то это дела не меняет. е знаю уж, в чьих нездоровых мозгах могла появиться мысль использовать для шифрования команду хог byte ptr [eax+ebp],cl. Может, запутать хотели? о команда уникальна, такие команды в обычных программах еще поискать надо. Стало быть, ищем соответствующую ей комбинацию 30h, OCh, 28h - и все дела. Дальше - просто. Берем MSPWL32.DLL и со смещения 511 h (или там, где найдем) ставим 90h, 90h, 90h - команды NОР (пустая операция). И все, команда не выполняется!
Что при этом произойдет? Да ничего! ичего страшного и даже не очень страшного. И даже никто ничего не заметит!!! Все останется как всегда, с одним лишь исключением: ВСЕ логины/пароли будут ВИДЫ, так сказать, невооруженным глазом! Тут, правда, есть два неприятных момента. Во-первых, во время работы Windows вам не удастся подобным образом надругаться над их <святая святых>: писать в этот файл нельзя. Значит, придется перегружаться в режиме эмуляции MS-DOS, а это лишнее время, которого может не быть. Во-вторых, а это еще хуже, вам надо будет стереть ВСЕ PWL'ы, иначе даже в Windows не пустят: а вот туту законных пользователей могут возникнуть лишние вопросы и подозрения.