Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
Имитационное мо... 59443
Реклама
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

Пользователей: 13,109
новичок: syqwe
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных студентов на Delphi + Microsoft SQL Server
Моделирование автовокзала + Отчет + Блок схема
Расчет размера дохода на одного человека в Turbo Pascal

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Подари себе Интернет соседа!
Все изложенное ниже предназначено только для ознакомления с возможной опасностью и ни в коем случае не должно быть использовано, если это причинит ущерб каким-либо физическим или юридическим лицам. Это может повлечь за собой административную или уголовную ответственность в соответствии с действующим законодательством.
Вступление
Во все времена были люди, которые старались что-либо утаить от других. Но были и другие: те, которые с этим были не согласны и всячески старались тайны первых узнать. И вот придумали первые вход в Интернет с паролем, ибо денег сие удовольствие стоит, а вторые сразу начали этот пароль отыскивать всеми возможными и невозможными способами.
Когда-то давно пароль пользователь мог выбирать сам. С одной стороны, это было очень удобно: если сам слово заветное это придумал, то уж не забудешь никогда (если только пребывал в этот момент в здравом уме и твердой памяти, но это уже к делу не относится). Пароль же выбирался не просто так: для указанного индивидуума он, чаще всего, нес определенную смысловую нагрузку. И было в этом слабое место данного метода. Теперь только в дешевых фильмах можно увидеть некоего гражданина, копающегося в мусорной корзине своей жертвы в надежде узнать имена, фамилии, даты рождения всех родственников таковой вплоть до десятого колена, а также клички всех их собак, кошек, крыс, хомяков и тараканов. А как же еще: что тебе, например, первым приходит на ум? Конечно: имя твоей (а чаще не твоей) подружки или кличка замученного домашнего животного, ну или слово какое непотребное. Наиболее продвинутые хакеры начали составлять специальные словари с учетом наиболее часто встречающихся в паролях слов.
Все это, в конце концов, положило конец первой стадии и началась вторая: теперь компьютер генерирует некоторую псевдослучайную последовательность букв, цифр и разных знаков препинания. Хорошо-то как стало: "Lta13?Lp" - попробуй подбери! Но тут возникла другая проблема: а попробуй-ка запомни! Пользователи наши начали их на бумажках записывать, ну и периодически... правильно: бумажки терялись, похищались, попадали в мусорную корзину и т.д. - от чего ушли, к тому и пришли! И тогда какая-то умная голова догадалась, что пароль можно хранить не в голове, а прямо на жестком диске. В DialUp-окне галочку поставить и запомнить пароль. У компьютера мозги кремниевые - ему все равно, что запоминать. Ну, а раз запомнили, то, само собой, и записать надо. Ну, а раз записать, то... правильно: отвернулся наш пользователь, а тут толпа голодных до Инета хакеров налетела - и пароль подсмотрела... И тогда пароли стали шифровать.
Ну вот, наше вступление закончилось.
Интимные подробности
Где же хранятся пароли в Windows 95/98? Известно где, зашифрованные пароли в Windows 95/98 хранятся в основном каталоге, в файлах с расширением PWL. С учетом того, что не только "у нас здесь", но и "у них там" бывают персональные компьютеры коллективного пользования, да и сети локальные местами встречаются (правда, редко), на каждого пользователя заводится свой PWL. Кстати, название файла соответствует логину данного юзверя. Эти файлы, в принципе, зашифрованы достаточно прилично. Если кому-либо интересно, то, взяв в руки какой-нибудь дизассемблер (HIEW, QVIEW), можно посмотреть процедуру шифрования. Она находится в файле MSPWL32.DLL. Там все очень накручено. Имеется счетчик (назовем его N) от нуля до "сколько надо". Имеются три таблицы. В соответствии со счетчиком N берется байт из первой таблицы (X). По смещению X+N, урезанному до 8 бит, из второй таблицы берется другой байт (Y). Затем по адресу X+Y, опять же урезанному до 8 бит, из третьей таблицы берется третий байт (Z). После столь хитрых манипуляций командой XOR с байтом Z шифруется байт информации, после чего счетчик инкрементируется, и все повторяется сначала (как тебе, а?). Как формируются сами таблицы? Не знаю (мне было лень выяснять). Расшифровывается все это аналогично (той же процедурой), ибо команда XOR обратима. То, какие Винды у тебя стоят - значения не меняет. Не знаю уж, в чьих нездоровых мозгах могла появиться мысль использовать для шифрования команду xor byte ptr [eax+ebp],cl. Может, запутать хотели? Но команда уникальна, такие команды в обычных программах еще поискать надо. Стало быть, ищем соответствующую ей комбинацию 30h, 0Ch, 28h - и все дела. Дальше - просто. Берем MSPWL32.DLL и, со смещения 511h (или там, где найдем), ставим 90h, 90h, 90h - команды NOP (пустая операция). И все, команда не выполняется! Что при этом произойдет? Да ничего! Ничего страшного и даже не очень страшного. И даже никто ничего не заметит!!! Все останется как всегда, с одним лишь исключением: ВСЕ логины/пароли будут ВИДНЫ, так сказать, невооруженным глазом! Тут, правда, есть два неприятных момента. Во-первых, во время работы Windows тебе не удастся подобным образом надругаться над их "святая святых": писать в этот файл нельзя. Значит, придется перегружаться в режиме эмуляции MS-DOS, а это лишнее время, которого может не быть. Во-вторых, а это еще хуже, тебе надо будет стереть ВСЕ PWL'ы, иначе даже в Windows не пустят: а вот тут у законных пользователей могут возникнуть лишние вопросы и подозрения.

«Все это, конечно, хорошо, но я ни хрена не понял, можно ли попроще? Без дизассемблеров и т.д.?» - гневно возразишь ты. Можно! И вот здесь я скажу то, за что многие «не любят» Windows. Ты, наверное, думаешь, что пароли расшифровываются только тогда, когда это надо, а затем удаляются из памяти? Ну вот еще... Открытые пароли ПОСТОЯННО хранятся в системе - с момента ВХОДА пользователя в Windows и до момента его ВЫХОДА! Во какая безопасность. Но и этого мало: они доступны ЛЮБЫМ приложениям через Windows'совский API. И вот результат: появляется программа PWLVIEW, которая спокойненько тебе показывает "все самое интимное" твоей (или не твоей) машины. В том числе и Dial Up, и сетевые пароли. Формат выдаваемой информации таков:
*Rna\1-е соединение\1-й логин 1-й пароль
*Rna\2-е соединение\2-й логин 2-й пароль
и так далее. Это все очень круто, но она работает в окне DOS, это же... унизительно: мелкий шрифт, белым по черному... А нет ли еще чего-нибудь, ближе и роднее «настоящему» хакеру? Конечно, есть. Есть еще одна штука, PEEPER называется. Эта идет еще дальше. Пароль, как ты можешь заметить, не показывается, вместо него звездочки. Так вот: запускаем PEEPER, открываем соединение, наводим мышь на звездочки и в окне PEEPER видим... открытый пароль. «У меня нет ни времени, ни возможности ковыряться в чужой машине. Нельзя ли скопировать у другана этот самый PWL, а потом, дома, разобрать?» - законно спросишь ты. Можно, только это тебе, дружище, ничего не даст: не будет он у тебя работать, хоть ты тресни. Вернее, он ОДИН не будет. Нужно еще и USER.DAT утащить. После чего дома "создать" User'а с именем из PWL, заменить свой USER.DAT на свежестянутый и еще добавить в Windows стянутый PWL. После чего войти в Windows под соответствующим именем и... Дальше в игру вступает PWLVIEW.
Я все так и сделал, скажешь ты, а вот тот юзер в Windows с паролем входил, а мне теперь не войти - пароля-то я не знаю. Что делать? Не беда! Есть способ проще! Уносим ТОЛЬКО USER.DAT! А теперь: Windows 95 - M. D.! Как тебе должно быть известно, кроме интерактивного доступа в Интернет, провайдеры еще и e-mail впаривают суповым набором. Так вот, чтобы залезть в твой почтовый ящик, в тот, что у тебя в подъезде, нужен ключ (или лом). Чтобы залезть в твой e-mail, нужен пароль (или виртуальный лом). И тут я скажу: ВСЕ ПОГОЛОВНО провайдеры в славном городе Москве - M. D.! Пароль к POP3-ящику всегда тот же, что и DialUp! Ну и что? А вот что. Пароль e-mail находится не в PWL'е, а в USER.DAT, и зашифрован он не так сильно, вернее, почти совсем не зашифрован! А это как??? Да вот так! Метод "шифрования" напоминает элементарное UUE-кодирование, иначе говоря, из трех байтов делают четыре или из 8 битов - 10. Весь исходный пароль разбивается на части по три байта. В результирующей строке на один символ отводится 10 битов. Теперь: к каждому байту исходной строки прибавляется 30h, если сумма больше, чем 7Ah, то он становится равен 30h, а к паре 9 и 10 битов добавляется единица. Однако есть исключения. Если общая длина строки пароля не кратна трем, то она дополняется байтами 3Dh. Судя по всему, это 0Dh (конец строки)+30h. В конце строки 0Dh, 0Ah: стандартное завершение. На мой взгляд, подобрать пароль вручную проще, чем написать соответствующую программу: не каждый же день ты эти пароли подбираешь! Где находится пароль - написано ниже, оттуда его и берем. А принцип прост: запускаем Internet Mail, заходим в Сообщение & reg; Параметры/Сервер. Запускаем REGEDIT, переходим в HKEY_CURRENT_USER/Software/Microsoft/InternetMail and News/Mail/POP3/"Твой сервер": смотрим Password. Удаляем пароль в Internet Mail. Первый подбираемый символ влияет на первый и второй байты, второй - на второй и третий, третий - на третий и четвертый. Теперь: подбираем символ так, чтобы первый байт совпал с оригиналом, а второй или совпал, или был самый большой, но меньше оригинала. Аналогично для второго и третьего символов. С подбором третьего символа все четыре байта должны совпасть! Если нет - извини, no sex for you. Естественно, после каждой замены символа жми "Применить". Результат контролируем REGEDIT'ом, переходя вверх/вниз для обновления информации. Когда первые три символа подобраны, возвращаемся к (*) для следующих трех и т.д. до победного конца. Разумеется, байт(ы) 3Dh подбирать не нужно! После некоторой тренировки на все это уходит минут 15. Где же это счастье хранится? И, вообще, кроме логина и пароля еще многое нужно знать, а откуда, не звонить же провайдеру? Не надо никому звонить! Все в нем, в USER.DAT.
HKEY_CURRENT_USER/RemoteAccess/Addresses: и мы имеем список подключений. Да, но там ничего не видно, цифры какие-то... А ты чего хотел, дружок! Выбираем байт, которого больше всего, и дешифруем им все остальные (обычный XOR). В результате в куче всякой ерунды получаем ASCII-строку с номером модемного телефона провайдера (потеть, конечно, придется, если друг совсем не знакомый или работает партизаном, а знакомого и спросить можно - типа: «Что это за провайдер у тебя такой не хилый, друг ты мой лучший, Миша»?).
HKEY_CURRENT_USER/RemoteAccess/Profile/«подключение»/IP: со смещения 0Ch четыре байта задом наперед - это первичный DNS, затем еще четыре - вторичный и т.д.
HKEY_CURRENT_USER/RemoteAccess/Profile/»подключение»/User: логин.
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/InternetSettings /ProxyServer: Proxy-сервер и порт.
HKEY_CURRENT_USER/Software/Microsoft/InternetMail and News/Mail:
DefaultPOP3Server:
DefaultSMTPServer:
SenderEMail:
Name:
Organization: это все и так понятно.
POP3 - "POP3-сервер":
Account: это понятно.
Password: ну вот и он, родимый.
Что делать, если пользователь - мазохист? Не хранит он пароль в компьютере, а вводит его каждый раз с клавиатуры? И этому горю можно помочь. Существуют программы типа SPYWIN или HOOKDUMP или KEYWITNESS. Они записывают все действия, производимые на компьютере. Достаточно подсадить одну из них и все... Естественно, их можно использовать и для других не менее интересных целей.
И в конце могу тебе посоветовать: не качай и уж тем более не запускай у себя всякие "взломщики Интернета". Они могут крякнуть только информацию на твоем винчестере! Ибо тот, кто может взломать провайдера, никогда не будет опускаться до таких мелочей, а другие в лучшем случае хотят над тобой просто посмеяться, в худшем - сделать бяку.
Опубликовал Kest October 26 2008 16:41:17 · 0 Комментариев · 5997 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Apollovcl61
DelTrayIcon [Исхо...
Дешифратор содерж...
Шкрыль А. - Разра...
TMS
Архив программ
Динамические за...
Игра PackMan
Delphi. Разработк...
Библия хакера 2. ...
База для Allsubmi...
Blib [Исходник на...
Dealer
DirHTMLReportBuil...
Microsoft Press -...
Delphi 2005. Разр...
PHP: обучение на ...
Основы Delphi. Пр...
Шифрование по алг...
PHP 5 на примерах

Топ загрузок
Приложение Клие... 100512
Delphi 7 Enterp... 90221
Converter AMR<-... 20092
GPSS World Stud... 14974
Borland C++Buil... 12703
Borland Delphi ... 8943
Turbo Pascal fo... 7093
Калькулятор [Ис... 5127
Visual Studio 2... 5018
FreeSMS v1.3.1 3554
Случайные статьи
Опасность разглаше...
Предпосылки создан...
Практикум 16-1: за...
Поиск текста в док...
Содержание
Описать объект, вк...
Системные вызовы и...
Предсказуемость в ...
Overflow in arithm...
туннельного сервер...
Содержание
Блок TRANSPER
Планирование имита...
Поиск и редактиров...
Электронные счетны...
СИСТЕМА ОБСЛУЖИВАН...
Atari 5200 SuperSy...
доменом, где униве...
Стеки в Delphi
Унифицированный ло...
Перевозки из Китая
Пример шифрования ...
Утверждения в сред...
Практические совет...
Объекты-функции
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?