Как известно, знание - главное оружие хакера, вот его получением мы и займемся.

Историческая справка.

Все началось в 1985 году, когда Microsoft выпустил первую версию Windows, тогда еще оболочки для DOS. Никто и представить не мог, что всего через 15 лет два из трех компьютеров, если не больше, будут работать под управлением OS Windows. Система задумывалась как максимально дружественная к пользователю, что называется 'для домохозяек'. Эта доктрина сохраняется во всей серии Windows 95/95OSR2/98/98SE/ME, где все сделано для того, чтобы пользователю было максимально удобно работать. Безопасность была принесена в жертву удобству и простоте. Потом конечно была NT c гораздо более серьезной защитой и разделением доступа к файлам, но зачем домохозяйке такие сложности? Забота о пользователях в сумме с небрежной реализацией механизма аутентификации дает многим и многим любителям халявного интернета возможность получить желаемое, неграмотным пользователям шанс потерять некоторое количество денег, а армии врачей-практологов дополнительную работу в лице провайдеров.

Пользователи и пароли.

Самый ненадежный элемент в любой системе - это человек. Особенно если этот человек слабо разбирается в компьютерах и не задумывается о безопасности своей системы, если для него вообще существует такое понятие. Большинство пользователей не понимает, что пароль есть средство защиты. Средний пользователь имеет очень плохую память или просто боится забыть пароль, поэтому вводит что-нибудь легко запоминающееся, вроде 12345, qwerty, gfhjkm, password, имя любимой кошечки, девушки smile.gif , свой же логин, а если воможно, то вообще не вводит. Чтобы, опять же, не забыть десяток паролей, введенных в разных местах, средний пользователь имеет один единственный пароль на все случаи жизни. Иногда средний пользватель все же имеет много паролей, причем хорошей сложности, но, чтобы не забыть, хранит их в текстовом файле. 'Пароль среднего пользователя' подбирается без особого труда. Только не надо спешно менять все пароли, ведь перебор - не единственный способ их получения. В последней части содержатся рекомендации по повышению уровня безопасности системы. Грамотно же составленный пароль, включающий строчные и прописные буквы, цифры, прочие печатные символы можно подбирать многие тысячи лет и не добиться результата. Это связано с очень быстрым ростом количества паролей, имеющих заданное число символов. Например, односимвольных паролей из маленьких английских букв существует ровно 26, двусимвольных - 676, восьмисимвольных - чуть больше 200 миллиардов, с такой же скоростью возрастает и время перебора методом 'грубой силы'. При скорости 50000 паролей в секунду (подбор пароля к парольному кэшу Windows на Pentium-200) времена перебора получаются следующие:

Длина пароля 26 [a..z] 36 [a..z]+[0..9] 70 (все отображаемые)

4 instantly instantly 8 minutes

5 4 minutes 20 minutes 9 hours

6 100 minutes 12 hours 27 days

7 45 hours 18 days 5 years

8 24 days 21 months 371 years

9 48 days 65 years 26,000 years

Очевидно, что время перебора обратно пропорционально тактовой частоте процессора, т.е. обратно пропорционально скорости перебора, так что даже на полуторагигагерцовом процессоре эти числа не уменьшатся до нескольких часов. Из этих соображений следует, что перебор стоит начать со словаря, составленного из стандартных паролей, а затем уже переходить к методу грубой силы. Самый простой пароль - общеупотребительное английское слово (love, sex, secret, god smile.gif), самый сложный - случайный набор символов ( f1gH@Eb{ ).

Парольный кэш Windows.
Чтобы помочь несчастным пользователям со слабой памятью Microsoft придумал парольный кэш - систему сохранения паролей. В кэше служба удаленного доступа (Remote Access Service) сохраняет логины и пароли телефонных соединений, Windows - пароли для доступа к общим ресурсам и много чего еще. Все это богатство хранится в зашифрованном виде в файлах C:\%WINDIR%\*.pwl, где имя файла получается из имени пользователя укорачиванием до восьми символов и, при наличии нехороших символов вроде пробела, еще некоторыми преобразованиями. В любом случае, соответствие имя пользователя - имя парольного файла хранится в файле system.ini. Размер пустого парольного кэша 688 байт. Шифрование происходит алгоритмами MD5 и RC4. В Windows 95 OSR1 шифрование было организовано небрежно, что позволяло извлекать содержимое, не зная пароля, за сотые доли секунды (программа Glide). В остальных версиях для дешифровки нужно знать пароль и полное имя пользователя. Здесь на сцену со всеми вытекающими последствиями вламывается 'пароль среднего пользователя'. Используя соответствующие инструменты (например, RePWL или мой любимый PWLHack) можно попытаться подобрать пароль, но если пользователь окажется не средним, то процесс перебора может занять значительное время, измеряемое даже не годами, а сотнями и тысячами лет. При наличии физического доступа к компьютеру задача расшифровки кэша становится тривиальной - после того, как требуемый пользователь залогинился в систему достаточно запустить программу, запрашивающую кэшированые пароли у самой системы, например, Phone Book Viewer, который AVP обзывает Trojan.PSW.Hackof. Подробнее на эту тему можно почитать по адресу http://www.passwords.ru/.

А как же телефоны?

В парольном кэше Windows можно найти пару логин/пароль провайдера, но где же телефон?
Microsoft предусмотрел и это. Windows хранит настройки соединений, включая телефоны, которые отображаются
в папке 'Удаленный доступ к сети', как и другую личную информацию пользователя, вроде паролей Outlook в реестре, секция:

HKEY_CURRENT_USER\RemoteAccess\Addresses.

Содержимое же ключа HKEY_CURRENT_USER физически хранится по адресу %WINDIR%\user.dat, правда не в текстовом виде. Файл user.dat может занимать от 100Kb до 2Mb. Извлечь значение ключа позволяет стандартная программа regedit, запущенная в режиме эмуляции ms-dos. Например, команда:

regedit /R:user.dat /E raccess.reg HKEY_CURRENT_USER\RemoteAccess\Addresses

записывает содержимое секции HKEY_CURRENT_USER\RemoteAccess\Addresses в
файл raccess.reg. Его содержимое будет иметь вид REGEDIT4

[HKEY_CURRENT_USER\RemoteAccess\Addresses]
"mtu"=hex:f5,f6,84,86,b3,b4,b4,b4,94,b4,b4,b4,95,b4,b4,b4,b3,b4,b4,b4,98,\
......... b4,b4,b4,b4,b4,b4,b4,b4,a4,b5,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4.

Из этой последовательности байт трудно что-то понять, но этого и не требуется. Достаточно внести содержимое этого файла в реестр и в папке 'Удаленный доступ к сети' появится новый значек.

Общие ресурсы (Shared resources).
Опять же заботясь о пользователях, Microsoft придумала сеть Microsoft (Microsoft Network), которая позволяет пользователю в локальной сети или сети интернет с равным успехом получить доступ к файлам и принтерам компьютера, находящегося в соседней комнате и в хижине вождя племени Зулусов где-нибудь в Африке. Чтобы все это заработало надо установить:

клиент для сетей Microsoft,
службу доступа к файлам и принтерам

сетей Microsoft - и в случае dial-up соединения поставить в его настройках галочку "Войти в сеть". Далее можно как пользоваться чужими ресурсами, так и предоставлять доступ к своим. Есть несколько способов подключиться к чужим ресурсам:

набрать ip или сетевое имя во вкладке 'Найти компьютер' и открыть список его общих ресурсов в проводнике, либо командой 'подключить сетевой диск' сделать ресурс удаленной машины доступным как локальный;

выполнить одну из команд \\<сетевое имя>или \\<ip адрес>при этом в проводнике откроется список общих ресурсов;

воспользоваться командой NET - команда вида

NET VIEW \\<ip адрес>либо вида
NET VIEW \\<сетевое имя>покажет список общих ресурсов
nbsp;
удаленного компьютера, включая скрытые, а строка вида

NET USE x: \\<ip адрес>\<имя ресурса>
или

NET USE x: \\<сетевое имя>\<имя ресурса>
смонтирует (mount) ресурс с заданным именем на локальный диск X:. Иногда Windows постоянно выдает ошибку 'Не найдено сетевое имя', в этом случае нужно помочь системе, добавив в файл lmhosts строку вида

<ip adress> <сетевое имя> #PRE.

Ресурсы, имена которых заканчиваются на $ считаются скрытыми и не отображаются в списке общих ресурсов проводника, а также некоторыми сканерами. Кроме определяемых пользователем существуют ресурсы IPC$ (InterProcess Communication), который является служебным и доступа к файлам не предоставляет и ADMIN$ (в Windows 98/NT/2000), который позволяет получить полный доступ к системным ресурсам c$, d$... Делать доступными можно целые диски, отдельные папки и принтеры, доступ к файлам может быть двух типов: только чтение (Read only) и полный (Full) - и, естественно, ограничивается паролем. Эта защита в Windows 95/98/ME, как будет дальше видно, чисто номинальная и защищает только домохозяек от тех же домохозяек. Делает её таковой, опять же, небрежность реализации, а именно: пароль переводится в верхний регистр, усекается до 8 символов и в процессе аутентификации проверяется посимвольно. Первые два пункта еще не смертельны - они просто существенно сокращают пространство возможных паролей, но третий сводит всю защиту на нет, позволяя подбирать пароль за время не превышающее нескольких минут даже при плохой связи. Итак, пользователь вводит пароль и Windows начинает передавать его знаки, один за другим, удаленной машине. Она же, не дождавшись ввода последнего символа начинает сверять введенный пароль с правильным и как только встречает неверный символ отсылает назад сообщение об ошибке. Таким образом, пароль можно подбирать посимвольно, как в фильмах про хакеров, что успешно делают программы типа LANGuard Network Scanner и xIntruder. В Windows NT/2000/XP защита уже не детская: нужно знать кроме пароля еще и логин, так что подбирается только 'пароль среднего пользователя', также есть шанс, что администратор любезно оставил какой-нибудь стандартный аккаунт.

Пользователи и общие ресурсы.

Средний пользователь достаточно ленив и имеет достаточно знаний, чтобы пользоваться таким полезным механизмом как общие ресурсы, но он недостаточно умен, чтобы понять как делать это, не подвергаясь опасности быть обкраденным. Он делает доступным всему миру свой диск С:, с паролем или без, на котором стоит его звонилка, лежит парольный кэш, любимая ася, список паролей, документы... Иногда, чтобы что-то туда закачивать, дает даже полный доступ. По моим личным наблюдениям таких пользователей 3-5%. Для автоматизации обнаружения этих пользователей существуют сканеры, которые опрашивают заданный диапазон ip адресов на предмет общих ресурсов. Например, xSharez, Legion, LANGuard Network Scanner, Essential Nettools.

Сервис whois.

Как известно, у интернета нет владельца, но кто-то все-таки должен устанавливать правила, принимать протоколы и т.д. Этим занимаются некоммерческие организации. RIPE отвечает за распределение ip адресов и имеет огромную базу данных, которая содержит информацию о тех, за кем числятся все распределенные ip адреса. Она содержит название организации, диапазон выделенных ей ip адресов, почтовый адрес организации, ip маршрутизаторов и некоторую информацию о контактных лицах. Эта база данных является публичной, т.е. любой желающий может сделать к ней запрос с помошью програм, работающих по протоколу whois, например, Smart Whois, либо через скрипт, например, по адресу http://www.ripe.net/perl/whois/.

Например, для ip 213.180.194.130 (Yandex, raya.ru) результат выполнения запроса имеет вид:

inetnum: 213.180.194.0 - 213.180.195.255 - диапазон ip
netname: COMPTEK-NET2
descr: CompTek International, inc. - название организации
descr: Gubkina st.3, Moscow, Russia - её адрес
country: RU
admin-c: VLI1-RIPE
tech-c: KBG2-RIPE
status: ASSIGNED PA
notify: noc@comptek.ru
mnt-by: COMPTEK-MNT-RIPE
changed: wawa@comptek.ru 20001121
source: RIPE

route: 213.180.192.0/20 - маршрутизатор
descr: CompTek network / special
origin: AS13238
notify: noc@comptek.ru
mnt-by: COMPTEK-MNT-RIPE
changed: wawa@comptek.ru 20010123
source: RIPE

person: Vladimir L Ivanov - контактное лицо
address: CompTek International, inc.
address: Gubkina street 3
address: Moscow
address: Russia
phone: +7 095 785 2525
fax-no: +7 095 785 2526
e-mail: wawa@comptek.ru
nic-hdl: VLI1-RIPE
mnt-by: COMPTEK-MNT-RIPE
changed: wawa@comptek.ru 19990212
source: RIPE

Автозагрузка.

Во время загрузки Windows стартует некоторое количество програм, например AVP Monitor, MSOffice Fastload, всякие троянцы, угнездившиеся в системе, ICQ NetDetect...
Существует несколько способов заставить программу запускаться при старте Windows. Самый тривиальный - добавить её в группу Автозагрузка (Autorun) в меню 'Пуск'. Как известно, в этом самом меню отображается содержимое папки
C:\%WINDIR%\Главное меню\. Этот способ очень прост, но пользователь может легко заметить лишний ярлычёк. Но если этот ярлык сделать скрытым, то пользователь ничего не увидит.

Новые программы, как и трояны, в большинстве запускаются из реестра (registry), ключи

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run*,
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run*,

но этот способ в Windows 95/98 нельзя использовать удаленно. Про autoexec.bat и winstart.bat, надеюсь, упоминать не надо. Также можно использовать способ, применявшийся еще в ранних версиях Windows, когда реестр заменяли ini-файлы. Чтобы запускать программу из win.ini, нужно в секцию [Windows] добавить строчку вида run=<имя файла с путём>.

Борьба со звездочками.

Метод избежать подглядывания пароля при вводе был придуман, видимо, одновременно с самим паролем: на экран вместо вводимых символов либо не выводится ничего, либо все символы заменяются на какой-нибудь один, например ту же '*'. Microsoft не обошел эту меру безопасности своим вниманием - Windows имеет поддержку особых полей ввода, отображающих вместо символов '*'. Обработка введенного пароля, как правило, осуществляется после того, как пользователь сообщит системе, что ввод закончен, например, нажав кнопку Ok. Естественно напрашивается вывод, что когда на экране отображаются звездочки пароль в это время преспокойно хранится в памяти, причем в открытом виде. Само по себе это еще ничего не дает, если бы не привычка некоторых приложений отображать в полях такого типа ранее сохраненные пароли, давая пользователю возможность изменить ввод налету. Таким образом приложение само расшифровывает пароль, остается только прочитать его, с чем успешно справляются программы типа OpenPass или Behind The Asterisks, и Pass2k для Windows 2000 & XP

Мультилогины. В природе существует такое понятие как мультилогины. Это такие логины, по которому может сидеть одновременно несколько людей. Некотрые провайдеры предоставляют такую услугу. Владельцу они обходятся в кругленькую сумму, но вам оно не все равно? Так как же определить мульти он или нет.

Первый признак это то, что вы в любое время спокойно заходите в сеть. Иногда, когда вы пытаетесь зайти не по мультилогину после проверки логина может появиться окошко вход в сеть, где windows предложит вам ввести логин и пароль( В XP это будет ошибка 691) Это характерный признак того, что к сожалению логин не является мульти. Так же это может просто означать, что логин уже не рабочий.

Признак второй. Во время того, как вы сидите в сети. Попробуйте попинговать человека, у которого вы добыли своим трудом логин, естественно это на случай если он имеет статистический ип. А если нет, то просто попробуйте посканить сеть на имя компьютера скоторого был добыт аккаунт . Вы ведь его запомнили? ;-)

Ну, вот, пожалуй, и все.