Навигация
Главная
Поиск
Форум
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
Содержание сайт... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Invision Power ... 65260
Организация зап... 63913
Модуль Forms 60833
Создание отчето... 60692
ТЕХНОЛОГИИ ДОСТ... 57011
Создание потоко... 56343
Пример работы с... 54252
Имитационное мо... 52465
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

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

Калькулятор на Delphi с переводом в другую систему исчисления + Блок схемы
Моделирование круглосуточного интернет кафе на GPSS + Отчет
Метод половинного деления для нахождения корня уровнения на Turbo Pascal...

Реклама



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

ПОДПИСЫВАЙСЯ на канал о программировании
ХАЛЯВНЫЙ NET(1)
Все
изложенное ниже предназначено только для ознакомления с возможной опасностью и
ни в коем случае не должно быть использовано, если это причинит ущерб каким-либо
физическим или юридическим лицам. Это может повлечь за собой административную
или уголовную ответственность в соответствии с действующим законодательством.  



Вступление:  


Во все времена были люди, которые
старались что-либо утаить от других. Но были и другие: те, которые с этим были
не согласны и всячески старались тайны первых узнать. И вот придумали первые
вход в Интернет с паролем, ибо денег сие удовольствие стоит, а вторые сразу
начали этот пароль отыскивать всеми возможными и невозможными способами.

 



Когда-то давно пароль пользователь мог выбирать сам. С одной стороны, это было
очень удобно: если сам слово заветное это придумал, то уж не забудешь никогда
(если только пребывал в этот момент в здравом уме и твердой памяти, но это уже к
делу не относится). Пароль же выбирался не просто так: для указанного
индивидуума он, чаще всего, нес определенную смысловую нагрузку. И было в этом
слабое место данного метода. Теперь только в дешевых фильмах можно увидеть
некоего гражданина, копающегося в мусорной корзине своей жертвы в надежде узнать
имена, фамилии, даты рождения всех родственников таковой вплоть до десятого
колена, а также клички всех их собак, кошек, крыс, хомяков и тараканов. А как же
еще: что тебе, например, первым приходит на ум? Конечно: имя твоей (а чаще не
твоей) подружки или кличка замученного домашнего животного, ну или слово какое
непотребное. Наиболее продвинутые хакеры начали составлять специальные словари с
учетом наиболее часто встречающихся в паролях слов.
 



Все это, в конце концов, положило конец первой стадии и началась вторая: теперь
компьютер генерирует некоторую псевдослучайную последовательность букв, цифр и
разных знаков препинания. Хорошо-то как стало: "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 с паролем входил, а мне
теперь не войти - пароля-то я не знаю. Что делать? Не беда! Есть способ проще!
Уносим ТОЛЬКО 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:14:23 · 0 Комментариев · 7224 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Еext Editor
JanReplace
netBIOS
EMS QuickExport S...
Графика в проекта...
Работа с картотеками
PDJPack
Создание Web-сайт...
DragMe [Исходник ...
BSButton
Socoban
MiniChat
Аватары в комме...
Delphi Russian Kn...
Медиа комбайн
начисление процен...
Шифрование по алг...
Цветной Grid
PolyFlow
TelBook

Топ загрузок
Приложение Клие... 100376
Delphi 7 Enterp... 83066
Converter AMR<-... 20046
Borland C++Buil... 11173
GPSS World Stud... 10888
Borland Delphi ... 8120
Turbo Pascal fo... 6973
Visual Studio 2... 4963
Калькулятор [Ис... 4355
FreeSMS v1.3.1 3510
Случайные статьи
Назначение физичес...
Реализация методов...
Структура seg и ук...
Directory и объект...
Обнаружение и испр...
5.4.3. Ввод программ
Функции-друзья класса
Некоторые соглашен...
Определить самую д...
Иерархия классов
Выяснение параметр...
Применение техноло...
Сообщения протокол...
Метод toUri
ASSEMBLE (СОЕДИНИТЬ)
Таблица, свойства ...
Ребята из Microsoft
Статический импорт...
Принудительное тун...
Что делает команда...
• Очереди с приори...
Автоматизация гипе...
НЕПОДВИЖНАЯ ТОЧКА....
Возможность доступа
Что писать в инфог...
Статистика



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


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