Глава 4. Глобальная сеть — место больших возможностей
Глава 4. Глобальная сеть — место больших возможностей
Никто не станет спорить, что Интернет прочно вошел в нашу жизнь. Он предоставляет в наши руки огромные возможности по передаче информации. Но Интернет стал также и полигоном для испытания самых грозных форм компьютерной заразы, местом, откуда можно попросту украсть интересующую информацию. Через Интернет стал возможным и взлом компьютеров, находящихся на данный момент в сети.
Для доступа к информации компьютера, находящегося в сети, используется множество способов, но все их можно подразделить условно на две большие группы:
– взлом «снаружи». Взлом с использованием удаленного доступа;
– взлом «изнутри». Взлом с помощью какого-либо ПО, находящегося на взламываемом компьютере.
Для того чтобы понять, что такое взлом «снаружи», нужно иметь понятие о так называемых портах (см. выше). Для обнаружения уязвимостей применяется сканирование портов. Обычно вы можете определить факт сканирования портов вашей системы путем простого анализа регистрационных журналов. Большинство сканеров сканируют сеть в поисках какой-то определенной уязвимости. Если вы замечаете в регистрационных журналах записи, указывающие на попытку установить соединение на один и тот же порт большинства ваших систем с одного адреса, это указывает на такое специализированное сканирование.
Вероятнее всего, злоумышленник имеет готовый экс-плойт для какой-то определенной уязвимости и обследует сеть в ее поисках. Если поиск будет удачным, он попробует применить эксплойт.
После того как вы определили факт сканирования, следующий вопрос, которым вы задаетесь: «Смогли ли они проникнуть внутрь?» Большинство современных экс-плойтов основано на переполнении буфера (известном также как срыв стека). Говоря простым языком, переполнение буфера возникает, когда программа (как правило, демон) получает на вход данные большего размера, чем ожидалось, перезаписывая критичные области памяти. В результате выполняется некоторый код, дающий права привилегированного пользователя (Администратора).
Взлом «изнутри» использует несколько иные механизмы. Для его осуществления на взламываемый компьютер нужно внедрить некое ПО, которое должно быть хоть раз запущено. С помощью таких программ можно получить доступ к управлению или информации на компьютере.
Обычно такие файлы либо внедряются в состав обычных пользовательских программ, либо побуждают пользователя запустить полученный из сети файл. Файл может быть получен по электронной почте или скачан из Интернета. Суть от этого не меняется. Основная цель злоумышленников после внедрения такого ПО на компьютер пользователя – запуск этого файла. И тут пользователь чаще всего сам помогает хакеру, запуская непонятный файл, благо, способов обмануть его, наивного, очень много. Таким же образом часто распространяются и вирусы (хакерские программы – по сути тоже вирусы, называемые троянами).
Вот с такими противниками нам придется столкнуться. Главное, что нужно сделать для защиты информационной системы от внешних и внутренних угроз, – выработать корпоративную политику. Обдумайте, чего вы хотите добиться и как можно достичь поставленной цели; составьте ясный документ, посвященный политике защиты. Регулярно проводите занятия с сотрудниками, повышая их образовательный уровень и степень информированности обо всех аспектах информационной безопасности компании. Поверьте, это окупится.
Периодически проводите тестирование и оценку системы защиты, чтобы проверить, насколько внешняя и внутренняя защиты соответствуют корпоративной политике. Работайте только с теми консультантами, которые придерживаются структурированного подхода и не заинтересованы напрямую в результатах тестирования.
Не забывайте и о простых способах физической защиты. Следите за доступом к распределительным шкафам, серверам, комнатам телефонной связи и кроссам точно так же, как вы следите за доступом к вычислительным центрам. Стоит рассмотреть вопрос об использовании услуг сторонних компаний, специализирующихся в области защиты данных; они должны работать в контакте с отделом автоматизации. Эти компании могут оказаться лучше подготовленными к тому, чтобы следить за защитой ваших данных 24 ч в сутки без выходных. Тогда вам придется передать в чужие руки управление определенной частью своего бизнеса. Стоит ли оно того и как именно это сделать – решать вам.
Несколько советов по защите серверов и машин, использующих сеть.
1. Следует ограничить число людей, имеющих удаленный доступ к управлению вашим Web-сервером, и тщательно следить за этим доступом. Дистанционное администрирование (как и доступ к корневому каталогу) - хороший подарок хакеру.
2. Проверьте, правильно ли сконфигурированы списки доступа и вносятся ли в них каждодневные изменения (такие, например, как добавление новых пользователей и клиентов, удаление старых).
3. Насколько возможно, отделите такую машину от прочих. Можно дополнительно укрепить сервер, отменив все необязательные функции приложений и операционных систем. Если вы не в состоянии это сделать, следует всерьез подумать об использовании сторонних услуг (outsourcing).
4. Установите систему обнаружения вторжений, которая немедленно будет ставить в известность администратора сети обо всех проблемах, требующих устранения.
Помните, что обнаружить хакера – уже полдела; главная задача состоит в пресечении его деятельности.
5. Система должна реагировать на любые необычные события, происходящие на серверах. Невозможно остановить злоумышленника, не зная, что он делает.
6.Неправильно написанные, сконфигурированные и установленные на сервере скрипты Perl и CGI (Common Gateway Interface) могут стать причиной возникновения «дыр» в системе защиты. Этими средствами надо поль пзоваться крайне аккуратно; все скрипты должны проверяться опытными специалистами.
7.Следует обеспечить аутентификацию администраторов. Все большее распространение получают различные биометрические средства идентификации по голосу, отпечаткам пальцев и узору сетчатки, если, конечно, ценность информации достаточно велика (они стоят примерно по 300 долл. в расчете на одного пользователя).
8. Подумайте, не стоит ли снабдить критически важные данные и соответствующие им системные файлы оболочками для обеспечения их целостности. Криптографические оболочки вокруг этих файлов позволят не допустить их модификации или внесения вредоносного кода.
Теперь еще несколько советов для укрепления безопасности. Они обойдутся вам очень дешево, но время доказало эффективность этих мер.
1. Выясните о нанимаемых на работу людях несколько больше, чем можно узнать из их резюме; особенно это касается таких критически важных должностей, как системный администратор. Подумайте о введении системы психотестов, которые позволят выявить этические принципы кандидатов, их особенности.
2. Рассмотрите вопрос о снятии дисководов и CD-ROM с пользовательских ПК. Это затруднит сотрудникам установку своего собственного программного обеспечения и компьютерных игр, помешает им заражать систему вирусами и «выносить» из компании закрытую информацию. Такая мера позволит избежать и еще одной угрозы для информационной безопасности – диски, разбросанные на столе сотрудника, легко могут пропасть.
3. Установите безопасную блокировку компьютера при появлении экранной заставки – это поможет обезопасить компьютеры пользователей, которые забывают их блокировать, когда уходят со своего рабочего места.
4. Предоставляйте администраторские права только тем людям, которым они реально нужны. Помните, что каждый раз, когда вы даете такие привилегии, в системе защиты появляется еще одна потенциальная «дырка».
5. Уничтожайте или сжигайте важную закрытую информацию: списки персонала, идентификационные имена сотрудников, сводки отдела кадров, папки с данными о клиентах, памятки руководства, схемы сетей и вообще все, что может представлять интерес для злоумышленников.
6. Мусорные контейнеры должны находиться на территории организации; в противном случае злоумышленник не устоит перед соблазном в них порыться.
7. Постарайтесь, чтобы сотрудники компании стали вашими союзниками в борьбе за корпоративную безопасность. Попробуйте реализовать программы партнерства: пообещайте вознаграждение тому, кто обнаружит недочеты в системе безопасности или уличит кого-либо в недобросовестности. Не увлекайтесь этим советом – это может подорвать атмосферу в коллективе.
8. Внимательно изучайте все продукты, обеспечивающие информационную безопасность. Убедитесь, что они работают именно так, как было обещано производителем. Подумайте, можно ли укрепить систему защиты, не устанавливая новый продукт, который потребует от вас определенных усилий.
9. Уполномочьте кого-либо из сотрудников принимать оперативные меры в случае угрозы информационной безопасности – от аварийной остановки Web-сервера до вызова охраны для удаления проштрафившегося сотрудника за пределы организации.
4.1. Как обманывают провайдера?
Для хакера выбор провайдера – это отправная точка, с которой он начинает свой путь по стезе порока. Хакеры, как правило, глупыми не бывают. Как говорили на Диком Западе, «либо ты быстрый, либо мертвый». Так же и тут: либо умный, либо совсем даже и не хакер. Однако наличие ума не означает отсутствия лени, и вот таких ленивых хакеров и должен отлавливать провайдер, чтобы не позволить им грабить нормальных клиентов фирмы и распугивать всю клиентуру.
Разумеется, хакеры учитывают то обстоятельство, что практически все провайдеры требуют идентификации их личности (Ф.И.О., паспортные данные и т. д. ), и принимают различные меры предосторожности.
Ни один хакер никогда не станет регистрироваться под настоящим именем, ибо неизвестно, к кому могут попасть его данные и для чего их могут использовать. Самым простым способом является простейшая подделка документов – хакер при регистрации у провайдера предъявляет некий документ со своей фотографией и фальшивыми данными. Для убедительности ставится печать (берется у друзей, можно вообще сделать ее – любая печать в Москве стоит порядка 50 долл.) – лучше государственного образца. Этот документ может гласить, что имярек – охранник, работник прокуратуры, сотрудник ФАПСИ (ФСБ, МВД) или просто какой-либо сотрудник какой-либо фирмы.
Для начала хакер берет любую телефонную базу, например КОТИК или ее Online-версию: http:// www.xland.ru:8088/tel_win/owa/tel. form, и вводит любую выдуманную им фамилию. Он не станет вводить тривиальные фамилии вроде Иванов, Петров, Смирнов, Андреев, Алексеев и т. д. Как правило, берется что-то не совсем обычное, первое, что приходит в голову: Левашов, Дубинин, Авдотин и т. п. Плюс ко всему необходимо выдумать левые паспортные данные: серию, номер, кем выдан, когда.
Далее злоумышленник едет в контору к провайдеру (чаще всего он хочет зарегистрироваться с утра (стать их клиентом) и, когда доходит до паспорта (иногда достаточно просто вписать паспортные данные, не предъявляя его), говорит, что не взял его (мол, никто и не говорил по телефону, что нужен паспорт). Но он наизусть помнит свои паспортные (левые, естественно) данные. Для убедительности он может показать свое удостоверение. Как правило, сотрудницы, сидящие на оформлении документов, на такое соглашаются, и отныне ваш сервер находится под постоянной угрозой влома. Если номер «не прокатит», несостоявшийся клиент уходит с обиженным видом и угрозами: мол, ноги моей больше не будет в вашей гнилой конторе.
Умный хакер, если хочет сохранить свою конфиденциальность при работе с Интернетом, прежде всего удостоверяется в отсутствии аппаратуры АОН у провайдера (теперь это редкость, но бывает чаще, чем вы думаете. Для этого производятся контрольные звонки на рабочие (именно рабочие, а не тестовые линии – их телефоны узнают заранее у провайдера или из других источников) телефонные линии, например с сотового телефона, с телефона-двойника, с таксофона или с телефона, который гарантированно не определяется системой АОН. АОН засвечивает себя характерным щелчком и звуковым сигналом, как правило, после первого гудка (т. е. он снимает трубку, а далее уже идут гудки, выдаваемые самими АОН и по тональности, как правило, отличающиеся от первого гудка).
Если АОН есть, но хакеру все же надо остаться анонимным, то он воспользуется АнтиАОНом. Функции АнтиАО-На присутствуют практически во всех телефонных аппаратах с АОН (например, в аппаратах «Русь» или в «Phone Master»). Аппаратура АОН имеется у всех провайдеров, использующих модемы «Zyxell» (например, «Deol»), у всех провайдеров, производящих оплату в кредит (МТУ-Ин-форм, ГОТ и др.). Это не самая дорогая аппаратура, однако она помогает моментально вычислить паршивую овечку в стаде Интернет-клиентов.
Некоторые провайдеры (например, «Россия Он-лайн») предлагают (или прилагают к купленному модему, компьютеру и т. д.) пакет ПО, документацию и некоторое количество часов бесплатной работы в Интернете (как правило, 5-10 ч). Другие провайдеры (например, «СИТЕК») просто продают запечатанный конверт, в котором находится имя, пароль и определенное количество часов работы в Интернет. Это, пожалуй, самый безопасный вариант, где хакер никоим образом не засвечивает свои данные. Ну и разумеется, продающиеся сейчас в большом количестве Интернет-карточки значительно упрощают жизнь хакера.
4.2. Кто и как нас ломает?
На глобальную сеть Интернет постоянно совершаются нападения, причем на разные серверы. В связи’ с этими «виртуальными сбоями» страдают и обычные клиенты, и солидные фирмы. Чем грозят пользователям эти взломы?
Например, потерей денег. Но иногда это более серьезный удар – удар по престижу фирмы. Так, недавно при невиннейшей, на первый взгляд, попытке узнать через Интернет текущие котировки ценных бумах мы заглянули на страничку некой весьма солидной компании, назовем ее «Альфа-Бета». Каково же было наше удивление, когда вместо сухих и привычных сводок мы обнаружили картинки весьма фривольного, мягко говоря, содержания. А жестче – прямую и неприкрытую порнографию.
Но каким образом такое могло произойти? У каждого пользователя Интернета есть свой адрес, например www.microsoft.com – адрес компании «Microsoft». При взломе меняется адрес, соответствующий интернетовскому имени пользователя, а его собственное имя присваивается другому адресу, и с этого момента все сообщения идут по ложному адресу. В нашем случае хакеры заменили слово в имени «ИнфоАрт» (www.ritmpress.ru) на имя сервера, где находится порнография, на, извините, www.free.ru. Поэтому те, кто интересовался в Интернете погодой или финансовыми новостями через привычный сервер, наталкивались на… хм, ну, понятно, что. Неприятности, которые, согласитесь, можно пережить. Но, к сожалению, сам факт «перемены адресов» в Интернете может иметь значительно более серьезные последствия. Что означает на самом деле взлом сервера и изменение адреса? Что конкретно еще могут сделать такие злоумышленники? Можно взять и создать липовую фирму в Интернете, при помощи которой каждый из нас как будто бы может заказать себе авиабилеты на нужный рейс в любую точку земного шара. Фирма вроде бы и есть, но реально она никаких услуг не оказывает. Мы перевели деньги на счет несуществующей компании и после этого можем до бесконечности долго ожидать, когда же эти самые билеты окажутся у нас на руках. В это время наши деньги уже давно перекочевали на счет компании-«призрака».
Взломав сервер, можно выйти и на банковскую компьютерную систему, подключенную к Интернету. Но, слава Богу, не все банки работают в режиме он-лайн. А что, если какому-нибудь «взломщику» придет-таки в голову мысль «исправить» счет банка? И все наши денежки потекут по компьютерным сетям на какой-то совсем другой счет, в какой-нибудь банк далекой Швейцарии?
В принципе, Интернет – огромный сборник разнообразной информации. На Западе пользователи сети уже дожили до того, что заглядывают в глобальную сеть по любому бытовому поводу: купить что-нибудь (от пиццы до квартиры), заказать гостиницу на отдых, найти по вакансиям новое место работы, получить биржевую сводку и т. д. В этом случае кровно заинтересованные персоны-хакеры – могут, взломавши сеть, несколько исказить информационные данные. Например, завысить вполне приемлемую цену музыкального центра «Sony» в каком-нибудь магазине бытовой техники. Или вы можете произвести проплату покупки на никому не известный счет. А еще лучше забронировать себе номер в отеле «Крийон», приехать в Париж и выяснить, что вас там совсем не ждали. Каково? В общем, «виртуальные» диверсии в Интернете пока нам ничем таким серьезным еще не угрожали, но прецедент создан – сеть взломана. Значит, никто не гарантирован от иезуитского вмешательства на любом сервере Интернета.
Существует определенная методика взлома сетей. Разумеется, они недоступны без пароля. А поэтому хакер прежде всего проникает в известное ему место и выискивает там работающий пароль к сайту, который хочет взломать. Затем он должен войти в этот сайт, например так: http: //www. chat.ru/index. html. Удаляет слово index.html и набирает, скажем, .htaccess, например www.chat.ru/.htaccess. Если ему повезет, он получит следующее: AuthUserFile/www/chat. ru/.htpasswd ‹ – место, где лежит файл с паролями AuthGroupFile/dev/null ‹ – место, где лежит groupfile AuthName Chat Only Directory ‹ – место, где находится popup, который просит его ввести password/login AuthType Basic ‹ – другие типы авторизации apache btw Limit GET POST PUT ‹ – require valid-user ‹ -
Но реально все это не нужно для начала. Если. htaccess прошел сразу, вместо него пишут. htpasswd и все ОК.
Находят passwordfile (.htpasswd). Удаляют, htaccess и вместо набирают (.htpasswd ).
После этого хакер получит файл паролей. Пароли будут зашифрованы. Это будет выглядеть примерно так: ocean: ORJFyfmfoetf. sydgator: 458mLs4euQHwo de-mil: o7ad9QtJIklTY demi2: Fx93hhGP/oTs6Y 233244: ZXEHRGfdsL9E346.
Первое слово – логин, остальное – пароли. Чтобы декодировать пароли, хакеру надо будет сначала скачать программу-декодер. Искать эту программу несложно, она свободно лежит по адресу http: //astalavi-sta. box.sk/.
Сохранив полученные логины и пароли, хакер разархивирует John The Ripper и набирает (предварительно поместив текстовой файл в директорию, где лежит ripper): John xxx. txt-single (это самый быстрый способ и самый простой алгоритм); John xxx. txt-wordfi-le: password. 1st (это посложней); John xxx. txt-incre-mental (это самый сложный алгоритм и занимает время, зато самый надежный). Этим описанием хотелось бы привлечь внимание разработчиков и провайдеров к необходимости разработки более совершенной системы шифровки паролей.
Наш читатель конечно же уже слышал много способов, как утянуть пароли у глупых юзеров, используя различные хитрые, навороченные программки. А вы знаете, как это делают настоящие хакеры? Нет?! А ведь они сами не пользуются никакими специальными программами (да, они их пишут, но не для себя). А знаете ли вы, как они достают пароли пользователей?
Оказывается, глупые юзеры сами готовы рассказать всем свои пароли! Для этого им нужен лишь маленький толчок. Для начала хакеры выбирают свою жертву. Это может быть сосед по лестнице, или друг по чату, или еще кто-нибудь. Выбрав жертву, хакер старается узнать как минимум две вещи, а именно: название провайдера, через которого подключается его жертва, и его логин. Благо, обе эти вещи сильно никем не скрываются и поэтому диалог: – А кто твой провайдер? – Я подключаюсь через провайдера Super Internet Provider, – не вызовет никакого подозрения. Теперь, зная провайдера, хакер узнает логин юзера. Часто (читай: почти всегда) логин пользователя такой же, как и адрес электронной почты, т. е. если электронный адрес пользователя выглядит так: LAMMER@super-provider.ru, то его логин с вероятностью в 99 % будет – «LAMMER».
Теперь, зная провайдера и логин юзера у этого провайдера, настает время узнать e-mail службы поддержки у этого провайдера. Чаще всего этот адрес выглядит как support@super-provider.ru или admin@super-provi-der. ru. И еще, если есть возможность, следует посмотреть хотя бы одно письмо от этой самой службы поддержки, чтобы знать форму обращения к юзеру и всякие стандартные приветствия типа «Здравствуйте, дорогой наш пользователь LAMMER!!!» и прощания. Они нам пригодятся. Шаг второй. Когда хакер знает весь необходимый минимум, приходит время для создания почтового адреса на каком-нибудь бесплатном сервере, так как оттуда можно будет забирать почту бесплатно, не звоня провайдеру, и потому что можно получить адрес с доменом @ru. ru (но это мелочи). Но создает он адрес не от «фонаря». Он не называет свой ящик die_you_lammers@.., а скромненько так пишет 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» support@super-provider. ru. Если юзер вздумает посмотреть, от кого пришло письмо, он увидит РЕАЛЬНЫЙ адрес службы поддержки. В строке «кому» он пишет: То: lammer@super-provider.ru. И теперь самое интересное: в строке «ответить туда-то» находится следующее: Reply-To: «Super Provider Support» support-super-provider@ru.ru. Видите, «support-super-provider@ru. ru» – это адрес хакерского мыла (который он создал), и при ответе почтовая программа отправит именно по этому адресу. В теме письма пишут что-то типа Subject: Внимание. И в целом заголовок письма выглядит следующим образом: Reply-To: «Super Provider Support» From: «Super Provider Support» To: lammer@super-provider.ru 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-й пароль и т. д.
Да, это все хорошо, но она работает в окне DOS. Но есть еще одна штука, PEEPER называется. Эта идет еще дальше. Пароль, как вы можете заметить, не показывается, вместо него звездочки. Так вот: запускаем PEEPER, запускаем соединение, наводим мышь на звезды и в окне PEEPER видим… правильно, открытый пароль. Вы скажете: у меня нет ни времени, ни возможности ковыряться в чужой машине, нельзя ли стянуть у соседа этот самый PWL, а потом дома разобрать? Можно, только это вам ничего не даст: не будет он у вас работать. Вернее, он ОДИН не будет. Нужно унести еще и USER. DAT. После чего дома «создать» User’a с именем из PWL, заменить свой USER. DAT на цельнотянутый и еще добавить в Windows тянутый PWL. После чего войти в Windows под соответствующим именем и… Дальше в игру вступает PWLVIEW. Я все так и сделал, скажете вы, а вот тот User в Windows с паролем входил, а мне теперь не войти – пароля-то я не знаю. Что делать? Не беда! Уносим ТОЛЬКО USER. DAT! А теперь еще раз: Windows‘95 – MustDie! Как вам известно, кроме интерактивного доступа в Интернет, провайдеры предлагают еще и e-mail. Так вот, чтобы залезть в ваш почтовый ящик, в тот, что у вас на лестнице, нужен ключ (или лом). Чтобы залезть в ваш e-mail, нужен пароль (или виртуальный лом). И тут я скажу откровенно: мало кто из отечественных провайдеров заслуживает доброго слова! Пароль к РОРЗ-ящику всегда и у всех тот же, что и DialUp! «Ну и что?» – спросите вы. А дело в том, что пароль e-mail находится не в PWL’e, а в USER.DAT, и зашифрован он не так сильно, вернее, почти совсем не зашифрован!
Дело в том, что метод «шифрования» сильно UUE-кодирование напоминает, иначе говоря, из трех байтов делают четыре или из восьми битов – десять. Весь исходный пароль разбивается на части по три байта. В результирующей строке на один символ отводится 10 битов. Теперь к каждому байту исходной строки прибавляется ЗОН, если сумма больше, чем 7Ah, то он становится равен ЗОН, а к паре 9 и 10 битов добавляется единица.
Есть исключения. Если общая длина строки пароля не кратна трем, то она дополняется байтами 3Dh. Судя по всему, это ODh (конец строки)+30(1). В конце строки ODh, OAh: стандартное завершение. На мой взгляд подобрать пароль вручную проще, чем написать соответствующую программу: не каждый же день вы эти пароли подбираете! Где находится пароль – смотрите ниже, оттуда его и берем. А принцип прост: запускаем Internet Mail, заходим в Сообщение. Параметры. Сервер. Запускаем REGEDIT и переходим в HKEY_CURRENT_USER?Software?Microsoft?In-ternetMail and News?Mail?POP3?‹Bam сервер›: где и смотрим Password. (*) Удаляем пароль в Internet Mail. Первый подбираемый символ влияет на первый и второй байты, второй – на второй и третий, третий – на третий и четвертый. Теперь подбираем символ так, чтобы первый байт совпал с оригиналом, а второй или совпал, или был самый большой, но меньше оригинала. Аналогично для второго и третьего символов. С подбором третьего символа все четыре байта должны совпасть! Если нет – извините, вы ошиблись.
Естественно, после каждой замены символа нажимаем «Применить». Результат контролируем REGEDITOM, переходя выше/ниже для обновления информации. Когда первые три символа подобраны, возвращаемся к (*) для следующих трех, и так далее до конца. Разумеется, байт(ы) 3Dh подбирать не нужно! После некоторой тренировки на все это уходит меньше 15 минут. А где это счастье хранится? И, кстати, ведь кроме логина и пароля еще многое нужно знать, а откуда? Не звонить же провайдеру? – не надо никому звонить! Все в нем, в USER.DAT.
HKEY_CURRENT_USER?RemoteAccess?Addresses: и мы имеем список подключений. Да, но там ничего не понятно. Правильно! Выбираем байт, которого больше всего, и дешифруем им все остальные (обычный XOR). В результате, в куче всякой ерунды получаем ASCII-строку с номером модемного телефона провайдера.
HKEY_CURRENT_USER?RemoteAccess?Profile -Хподключение›?1Р: со смещения ОСЬ четыре байта задом наперед – первичный DNS, затем еще четыре – вторичный и т. д.
HKEY_CURRENT_USER?RemoteAccess?Profile -› ‹подключение›?юзер: логин. HKEYCURRENTUS-ER?Software?Microsoft?Windows -› CurrentVersion?In-ternetSettings?ProxyServer: Proxy- сервер и порт. Н К Е Y_CURRENT_USER?Software?Microso ft?Internct Mail and News? Mail: ?DefaultPOP3Server: ?DefaultSMTPServer: ?SenderEMail: ?Name: ?Organi-zation: это все и так понятно.
7РОРЗ -г ‹РОРЗ-сервер›: ?Account: ЭТО ПОНЯТНО.
?Password: Ну вот и он!
А что делать, если пользователь – мазохист и не хранит пароли в компьютере, а вводит их каждый раз с клавиатуры? И этому горю можно помочь. Существуют программы типа SPYWIN или KEYBOARD SPY. Они записывают все действия, производимые на компьютере. Достаточно подсадить одну из них и… если вам потом не лень будет разбирать те десятки килобайт, которые будут порождены этими шпионами. Естественно, их можно использовать и для других целей.
Специально привожу пример с последовательностью действий для устаревшей «Винды». Поверьте, в новых версиях (2000 и ХР) тоже можно поломать и прочитать пароли.