Улыбка, домашний
У взломщика есть два варианта, когда он пытается взломать пароль. Он может попытаться получить копию пароля и затем использовать средства подбора пароля, чтобы расшифровать строку. Или он может попытаться подсмотреть пароль. Взлом паролей - старейший прием, который приносит наибольший успех, поскольку человек не слишком хороший генератор случайных последовательностей.
Очень важно узнать, как и где хранится большинство паролей, чтобы понять, как эти средства действуют, и какие методы работы за этим стоят. Пароли в Unix и Windows хранятся в одностороннем хеш-файле и не могут быть расшифрованы. И наоборот, имя пользователя можно легко подсмотреть. Например, пароль Нейла abc123 хранится в Unix в виде закодированной строки kUge2g0BqUb7k (помните, что мы не можем ее раскодировать). Сохраненная строка не расшифровывается. Сравнение хеш-строки известного слова с исследуемой строкой пароля - вот основа для атак на системы парольной защиты.
Система Windows NT 4.0 заставляет своих пользователей подбирать псевдосложные пароли. Библиотека PassFilt.dll, которая поставляется с Service Pack 2, дает возможность администратору создавать элементарные правила для пользовательских паролей. Применение правил конструирования паролей обычно является достаточно удачным средством обеспечения безопасности. В конце концов, вы можете применить самые свежие
PassFilt.dll уже может быть в поставке системы NT, но для нее требуется произвести некоторые модификации в системном реестре.
PassFilt.dll размещается в директории C:\WINNT\ System32 (или куда указывает переменная %SYSTEMROOT% ).regedt32.exe работает лучше, чем regedit.exe ), чтобы открыть ключ HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Lsa .FPNWCLNT, удалите его, если нет необходимости обеспечивать совместимость с Novell.passfilt.PassFilt.dll на первичном контроллере домена, вы должны использовать его и на резервном контроллере.Если все идет нормально, последовательность изменения пароля для любого пользователя, кроме администратора, будет определяться специальными правилами. Ограничения, накладываемые использованием PassFilt.dll - только маленький шажок к хорошим паролям. Итак, Windows проверяет каждый новый пароль на простоту, используя следующие правила.
Эти правила не могут быть изменены. Технически библиотека DLL может быть заменена на другую, созданную с использованием
Что происходит на самом деле. Пользователи любят заменять числа гласными ( a это 4, e - 3, i - 1, o - 0 ) и добавлять восклицательный знак в свой пароль, чтобы удовлетворить ограничениям по созданию "хорошего" пароля. Словарь хороших паролей, которым владеет большинство взломщиков паролей, содержит различные перестановки обычных слов, которые содержат буквы и символы. И, наконец, пароли, которые основаны на именах спортивных команд, названиях городов, ругательствах и именах всегда относятся к множеству наиболее слабых паролей, поскольку пользователи предпочитают пароли, которые легко запомнить. Следовательно, вам захочется сфокусироваться на усилиях по защите списка паролей и защите служб (таких как электронная почта, система безопасности, Windows NetBIOS), которые опираются на пароли.
Наследники NT перенесли настройки PassFilt.dll из системного реестра в графический интерфейс пользователя. Они не добавили дополнительных правил или методов модификации имеющихся правил. Чтобы включить принудительные процедуры создания сложных паролей, войдите в раздел Local
(рис 9.1) Усложнение пароля
Некоторые популярные Unix-системы, такие как FreeBSD, Linux и Solaris, содержат встраиваемую модель аутентификации ( ). telnet, вход в консоль или изменение пароля. Реализация также доступна для схем строгой аутентификации, таких как Kerberos, S/Key и RADIUS. Конфигурация остается одной и той же, независимо от метода или приложения, которое осуществляет аутентификацию. Сосредоточимся на том, как усилить политику доступа по паролям с использованием .
Рассмотрим, как можно настроить системную политику в нашей Linux-системе в сравнении с использованием PassFilt.dll под Windows NT. Во-первых, у вас должна быть установлена библиотека cracklib (или libcrack ). Эта библиотека проверки паролей, разработанная Алеком Маффетом, является частью установочного комплекта систем Debian, Mandrake, RedHat и SuSE. Для проверки пароля нам необходимо только изменить текст файла, содержащего конфигурацию . Это может быть один из двух возможных файлов:
/etc/pam.conf
или
/etc/pam.d/passwd
Строки в файле /etc/
passwd password required /lib/security/pam_cracklib.so retry=3 passwd password required /lib/security/pam_unix.so nullok use_authtok
Они логически подразделяются на пять колонок. Первая колонка содержит имя службы - имя программы, на которую распространяются инструкции, прописанные в оставшихся колонках. Файл /etc/stacking modules для службы. Ниже приведен пример файла /etc/
password required /lib/security/pam_cracklib.so retry=3 password required /lib/security/pam_unix.so nullok use_authtok
Первая колонка показывает тип модуля, которому соответствует строка. Строка может содержать один из четырех типов (нас интересует изменение модуля, который управляет изменением пароля).
account для обеспечения доступа к ресурсам, таким как общие файлы. Однако без строки auth пользователь не сможет войти в систему.auth проверки пароля пользователя, затем может следовать модуль session, который вызывает модуль pAM для отображения текущего времени. Другой способ использования модуля session может обеспечивать специфические функции, выполняющиеся, когда пользователь войдет в систему, такие как запись строки в системный журнал или истечение срока действия временного идентификатора.Следующая колонка определяет control для службы, или описывает, как должно поддерживаться ее выполнение. Успешное выполнение означает, что служба выполнила функцию, например такую, как изменение пароля пользователя. Ошибка выполнения означает, что служба не передает корректные данные, такие как пароль пользователя. Ниже приводятся функции управления.
requisite , или работа этого модуля завершилась неудачно, процесс выполнения завершается с положительным результатом.Следующая колонка содержит параметр module path для библиотеки аутентификации, которую следует использовать. Этот параметр должен содержать cracklib, поэтому убедитесь, что в этой колонке стоит pam_cracklib.so.
Последняя строка содержит аргументы, которые передаются библиотеке аутентификации. Возвращаясь к первому примеру с файлом /etc/pam_cracklib.so должен успешно завершить свою работу с аргументом retry=3, в то время как пользователь меняет пароль с использованием программы passwd.
passwd password required /lib/security/pam_cracklib.so retry=3
На самом деле, Cracklib поддерживает больше аргументов, чем просто retry=N. Аргумент retry всего лишь указывает программе passwd, сколько раз запрашивать у пользователя новый пароль. Успешное или неудачное завершение работы службы, которая требует модуля pam_cracklib.so, опирается на очки, заработанные пользователем. Пользователь может зарабатывать очки на основании содержания пароля. Аргументы модуля определяют количество очков зарабатываемых конкретной компонентой нового пароля.
Пять следующих аргументов напрямую не влияют на набранное количество очков.
cracklib располагается не первым в очереди.Аргументы размещаются в последней колонке строки и разделяются пробелом. Например, наш администратор хочет, чтобы пользователи задавали для себя пароль из 15 символов, но при создании пароля давалось бы по два дополнительных очка за использование цифр и за использование "других" символов. В этом случае файл /etc/
password required /lib/security/pam_cracklib.so \
minlen=15 dcredit=2 ocredit=2
password required /lib/security/pam_unix.so nullok use_authtok md5
Обратите внимание, что администратор добавил аргумент md5 для библиотеки pam_unix.so. Это дает возможность шифровать пароль с использованием алгоритма MD5. Шифрование пароля с использованием алгоритма DES (MD5 более эффективно за счет отсутствия ограничения по длине.
Теперь посмотрим некоторые правильные и неправильные пароли, проверенные с использованием нового файла /etc/lcredit и ucredit по умолчанию равны 1:
Password 9 очков (длина 8 + 1 строчная буква). passw0rd! 12 очков (длина 9 + 1 строчная буква + 1 цифра + 1 другой символ). Passw0rd! 13 очков (длина 9 + 1 прописная буква + 1 строчная буква + 1 цифра + 1 другой символ). Pa$$w00rd 15 очков (длина 9 + 1 прописная буква + 1 строчная буква + 2 цифры + 2 других символа).
Как видно, большое значение minlen может потребовать использования достаточно сложных паролей. Двенадцать очков, по-видимому, самое маленькое число, которое можно позволить для использования в своей системе, значение пятнадцать подходит к верхнему пределу. Однако вам придется записывать свой пароль рядом с компьютером, чтобы запомнить его. (Шутка.)
Чтобы определить класс авторизации пользователя, или задать этот класс, откройте файл /etc/master.passwd с помощью утилиты vipw. Класс авторизации - пятый параметр в строке описания пользовательского пароля. Ниже приведен пример, где классы отображаются жирным шрифтом.
root:$2a$06$T22wQ2dH...:0:0:daemon:0:0:Fede:/root:/bin/csh bisk:$2a$06$T22wQ2dH...:0:0:staff:0:0::/home/bisk:/bin/csh
Некоторые строки в файле login.conf могут содержать следующее. (Символ \ обозначает переход на следующую строку).
default :\
:path=/usr/bin:\
:umask=027:\
:localcipher=blowfish,6
staff:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,8
daemon:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,8
Здесь помещены инструкции для системы: использовать алгоритм для всех пользователей. Цифры 6 и 8 обозначают число циклов для работы алгоритма. Это замедляет работу алгоритма, поскольку требуется больше времени для шифрования пароля. Если пароль требует больше времени для шифрования, то соответственно потребуется и больше времени для его подбора. К примеру, понадобится значительно больше времени, чтобы перебрать словарь из 100000 слов, если вы используете 32 цикла ( localcipher= ), чем при использовании шести циклов.
Наиболее важными в файле login.conf являются строки: default, поскольку она используется для всех пользователей, и daemon - для пользователя root.
У каждой строки может быть несколько параметров.
old. Наилучшими параметрами могут быть md5 и blowfish , N где N указывает на число циклов ( N 32 ). Значение "old" означает, что используется DES, и его следует избегать, поскольку пароль не может быть более 8 символов, и методы взлома паролей весьма эффективно работают против этого алгоритма.localcipher. Используется для обеспечения совместимости с распределенной аутентификацией в "Сетевой информационной системе" OpenBSD . Пользователь может не обращать внимания на стандарт, если этот параметр равен 0.Измененный файл login.conf будет содержать примерно следующее (класс ftpaccess исключительно слаб в этом примере).
default:\
:path=/usr/bin:\
:umask=027:\
:localcipher=blowfish,8:\
:minpasswordlen=8:\
:passwordretries=0
ftpaccess:\
:path=/ftp/bin:\
:umask=777:\
:localcipher=old:\
:minpasswordlen=6:\
:passwordretries=3
staff:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,12:\
:minpasswordlen=8:\
:passwordretries=0
daemon:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,31
Политика, заданная в этом файле, требует использования алгоритма для всех пользователей, исключая тот самый класс ftpaccess. Политика паролей для ftpaccess представляет собой требования, свойственные старой школе Unix-систем. Пароли для пользователей, относящихся к классу staff, обычно ассоциирующемуся с привилегиями администратора, шифруются с использованием 12 циклов шифрования. Пароль пользователя root, по умолчанию члену класса daemon, должен шифроваться с использованием максимального для используемого алгоритма числа циклов шифрования. Алгоритмы и MD5 также поддерживают пароль произвольной длины, в в настоящее время существует ограничение в 128 символов. Этого достаточно, чтобы написать маленькую поэму!
.history .bash_history на предмет поиска странных команд. Иногда администратор случайно может набрать пароль в командной строке. Это обычно случается, когда администратор входит в удаленную систему, используя команду su, и путает команды, досрочно вводя пароль. Однажды мы так нашли пароль пользователя root, состоящий из 13 символов!), возможно, самый быстрый и наиболее универсальный из доступных инструментов, предназначенных для взлома паролей. Программа поддерживает шесть разных схем хеширования паролей, которые покрывают различные варианты схем хеширования паролей для Unix и Windows LanMan (используемый в NT, 2000 и XP). Он может использовать специализированный список слов или правил для паролей, основанных на типах символов и их местоположении. Программа работает под управлением 13 различных операционных систем и поддерживает разные процессоры, включая специальные ускорители для Pentium и RISC-процессоров.
Во-первых, необходимо получить и скомпилировать программу. Последняя версия программы john-1.6.31-dev. Но вам понадобится загрузить и john-1.6.31-dev.tar.gz и john-1.6.tar.gz (или .zip -эквивалент для Windows). Версия 1.6.31-dev содержит не всю документацию и дополнительные файлы, которые есть в версии 1.6. После распаковки john-1.6.31-dev в выбранной директории, вам понадобится перейти в директорию /src.
[root@hedwig]# tar zxvf john-1.6.31-dev.tar.gz [root@hedwig]# tar zxvf john-1.6.tar.gz [root@hedwig]# cd john-1.6.31-dev [root@hedwig john-1.6.31-dev]# cd src
Следующая команда проста: make <OS name>. Например, для сборки программы под управлением Cygwin вам понадобиться набрать make win32-cygwin-x86-. Для пользователей BSD, make freebsd-x86-. Просто наберите make без аргументов, чтобы посмотреть список поддерживаемых операционных систем и комбинаций процессоров.
[root@hedwig src]# make win32-cygwin-x86-mmx
Затем программа самостоятельно осуществит сборку версии для вашей платформы. Когда процесс закончится, исполняемые файлы и файлы конфигурации будут размещены в директории john-1.6.31-dev/run. Версия разработчика не содержит некоторые необходимые файлы. Вам понадобится распаковать эти файлы из архива john-1.6.tar.gz и поместить их в директорию /run.
[root@hedwig]# cd john-1.6.31-dev/run [root@hedwig run]# cp ../../john-1.6/run/all.chr . [root@hedwig run]# cp ../../john-1.6/run/alpha.chr . [root@hedwig run]# cp ../../john-1.6/run/digits.chr . [root@hedwig run]# cp ../../john-1.6/run/lanman.chr . [root@hedwig run]# cp ../../john-1.6/run/password.lst .
Если все прошло нормально, вы можете протестировать программу. Для остальных команд вам следует учитывать, что текущей директорией является john-1.6.31-dev/run. Во-первых, убедитесь, что программа работает, показывая базовую скорость работы для вашей системы.
[root@hedwig run]# ./john -test Benchmarking: Traditional DES [64/64 BS MMX]... DONE Many salts: 323175 c/s Only one salt: 279202 c/s Benchmarking: BSDI DES (x725) [64/64 BS MMX]... DONE Many salts: 10950 c/s Only one salt: 10770 c/s Benchmarking: FreeBSD MD5 [32/32]... DONE Raw: 2437 c/s Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE Raw: 169 c/s Benchmarking: Kerberos AFS DES [48/64 4K MMX]... DONE Short: 118816 c/s Long: 305669 c/s Benchmarking: NT LM DES [64/64 BS MMX]... DONE Raw: 487689 c/s
Достойны внимания два теста: FreeBSD MD5 и NT LM DES. Количество взломов в секунду (c/s) отличается для этих двух методов в 200 раз. Это означает, что на полную атаку перебором для FreeBSD потребуется в 200 раз больше усилий, чем на аналогичную работу для Windows NT! Алгоритм
Теперь взломаем пароль. Программа может воспринимать три различных формата паролей. На самом деле, программа может взломать любой шифр паролей, описанный в справке, полученной по параметру -test. Все, что вам требуется сделать, это переформатировать пароль в вид, который может принять приложение. Если вы используете парольный файл Unix или выходной формат утилиты pwdump, о которой будет разговор позже в этой лекции, то вам не потребуется модифицировать формат файла. Ниже приведено пять различных примеров форматов
Далее перечислим системы, из которых взяты приведенные выше примеры. Заметим, что, несмотря на то, что каждый из них несколько отличается в конкретной операционной системе, форматы файлов схожи. Заметим также, что вы можете взломать пароли для Solaris, используя Windows-версию программы: для этого необходима лишь реальная строка пароля; операционная система не важна.
Пароли могут быть взломаны и программой, работающей под отличной от Unix и Windows операционной системой. Для взлома одного из этих паролей просто скопируйте строку (выделенную жирным шрифтом в каждом примере) во второе поле файла в формате Unix.
Cisco
Исходная строка: enable
Строка для взлома: cisco:$1$M9/GbWfv$sktn.4pPetd8zAwvhiB6.1::::
Apache .htaccess-файлы, которые используют строку пароля, сформатированную в формате DES. Apache также поддерживает строки паролей в формате алгоритмов
Исходный формат .htaccess: dragon:yJMVYngEA6t9c
Формат для программы: dragon:yJMVYngEA6t9c::::
Другие, основанные на алгоритме DES пароли, такие как WWWBoard.
Исходный файл passwd.txt: WebAdmin: aepTOqxOi4i8U
Строка для взлома: WebAdmin: aepTOqxOi4i8U: 0:3:www.victim.com::
Для взлома пароля с использованием опций по умолчанию, вы должны ввести имя файла в качестве аргумента. Для примеров из этой лекции мы будем использовать три различных файла паролей: passwd.unix, содержащий пароли, зашифрованные с помощью алгоритма DES, passwd.md5, содержащий пароли, зашифрованные с использованием алгоритма MD5, и passwd.lanman, содержащий пароли в формате Windows NT.
[root@hedwig run]# ./john passwd.unix Loaded 189 passwords with 182 different salts (Traditional DES [64/64 BS MMX])
Программа автоматически выбирает правильный алгоритм шифрования для строк и начинает взлом. Нажмите любую клавишу, чтобы вывести на экран текущую статистику взлома, и CTRL-C, чтобы прервать работу программы. Если пароль взломан, программа выводит на экран и сохраняет взломанный пароль для дальнейшего использования. Чтобы посмотреть вскрытые пароли из специального файла, используйте параметр -show.
[root@hedwig run]# ./john -show passwd.unix 2buddha:smooth1:0:3:wwwboard:/:/sbin/sh ecs:asdfg1:11262:0:40:5::11853: informix:abc123:10864:0:40:5::12689: kr:grant5:11569:0:35:5::11853: mjs:rocky22:11569:0:35:5::11853: np:ny0b0y:11572:0:35:5::11853:
Все вскрытые пароли сохраняются в файле john.
Словарь по умолчанию для программы содержится в файле password.lst. Этот файл содержит пароли, которые наиболее часто встречаются среди пользователей. Вы можете найти несколько альтернативных словарей в интернете, просто воспользовавшись поисковой системой Google. Один из лучших (около 15Mb) называется bigdict.zip. Используйте параметр -wordfile, чтобы указать программе на необходимость использовать альтернативный словарь.
[root@hedwig run]# ./john -wordfile:password.lst passwd.unix Loaded 188 passwords with 182 different salts (Traditional DES [64/64 BS MMX]) guesses: 0 time: 0:00:00:01 100% c/s: 333074 trying: tacobell - zhongguo
Мы даже можем делать некоторые перестановки в словаре, используя параметр -rules.
[root@hedwig run]# ./john -wordfile:password.lst -rules passwd.unix Loaded 188 passwords with 182 different salts (Traditional DES [64/64 BS MMX]) guesses: 0 time: 0:00:00:58 100% c/s: 327702 trying: Wonderin - Zenithin
Чтобы понять функцию параметра -rules, посмотрим на файл john.conf (или john.ini для версии 1.6). Ниже приведена часть файла john.conf, которая описывает перестановки в нашем списке слов (комментарии начинаются с символа # ).
[List.Rules:Wordlist] # Try words as they are : Lowercase every pure alphanumeric word -c >3!?XlQ # Capitalize every pure alphanumeric word -c >2(?a!?XcQ # Lowercase and pluralize pure alphabetic words <*>2!?Alp # Lowercase pure alphabetic words and append '1' <*>2!?Al$1
Эти записи, на самом деле, не так сложны, как это кажется на первый взгляд. Базовый синтаксис для большинства этих правил унаследован от утилиты для взлома, написанной Али Маффетом (помните libcrack?). Представьте, что системная политика паролей требует, чтобы каждый пароль начинался с цифры. Следовательно, нет необходимости перебирать комбинации строки "letmein" до тех пор, пока строка не станет удовлетворять выбранной политике, а строка "7letmein" может быть правильной. Вот и правило для предварения слова цифрой.
# Prepend digits (adds 10 more passes through the wordlist) ^[0123456789]
Мы можем разбить это правило на три части. Символ ^ означает, что операция должна начинаться от начала слова. Другими словами, она должна предварять последовательность символов. Квадратные скобки [ и ] содержат набор символов, которые должны следовать за символом ^. Цифры 0123456789 являются символами, которые должны предварять слово. Итак, если наше правило работает со строкой "letmein", ему понадобится всего десять попыток, чтобы пробежать от комбинации "0letmein" до "9letmein".
Символы, которые определяют место, где должен размещаться новый символ, приведены ниже.
| Символ | Описание | Пример |
|---|---|---|
^ |
Поставить символ в начало | ^[01] 0letmein 1letmein |
$ |
Добавить символ в конец | $[!.] letmein! letmein. |
i[n] |
Вставить символ на соответствующую позицию | i[4][XZ] letXmein letZmein |
Мы можем определить любой набор символов, который будет вставляться в строку. Полный список слов будет переработан для каждого из дополнительных символов. Например, список из 1000 слов может реально превратиться в список из 10000, если к каждому слову в начало будет добавлен один из символов от 0 до 9. Ниже приведены некоторые, наиболее часто используемые символы, которые добавляются к базовым словам.
Мы можем использовать преобразование правил для изменения регистра или типа (верхний, нижний, от e до 3) символов, или удаления отдельных типов символов.
Правила - великолепный способ повысить производительность подбора пароля, особенно те из них, которые добавляют символы или правила l33t, заменяющие символы и цифры. Правила наиболее подходят для случая, когда скорость работы компьютера не больше, чем у обезьяны, считающей на счетах. Сегодня, когда за несколько сотен долларов можно купить процессор с тактовой частотой более 1GHz, вы не много потеряете, пропустив этап обработки сложными правилами, и перейдете непосредственно к прямому перебору.
Сложные правила и обширные словари не смогут взломать любой пароль. Это заставляет прибегать к атаке методом прямого перебора. Другими словами, мы будем пробовать все возможные комбинации символов заданной длины. Программа может переключаться в режим прямого перебора по умолчанию, если в командной строке не задано никаких параметров. Чтобы заставить программу перейти к прямому перебору, используйте параметр -incremental.
[root@hedwig run]# ./john -incremental:LanMan passwd.lanman Loaded 1152 passwords with no different salts (NT LM DES [64/64 BS MMX])
По умолчанию файл john.conf содержит четыре аддитивных параметра.
Каждый аддитивный параметр имеет пять полей в файле john.conf. Например, строка для LanMan содержит следующие поля.
Аналогично строка для ALL содержит следующие поля.
Поля MinLen и MaxLen наиболее важны, поскольку мы можем изменять их для определения атаки. В MaxLen для LanMan никогда не может быть больше семь символов. Число CharCount в степени MaxLen дает количество комбинаций, необходимое для полного завершения атаки перебором. Например, общее количество комбинаций для работы с паролями LanMan составляет 7.6 триллиона. Общее число комбинаций при использовании параметра ALL составляет около 6700 триллионов! Заметим, что бессмысленно использовать параметр incremental:All для подбора паролей LanMan, поскольку нет необходимости отдельно проверять символы нижнего и верхнего регистров.
Если в нашем распоряжении список паролей из Unix, о котором известно, что все пароли состоят из восьми символов, мы можем изменить значения параметров. В данном случае это экономит время, поскольку можно не заниматься перебором строк длиной в семь и менее символов.
[Incremental:All] File = ./all.chr MinLen = 8 MaxLen = 8 CharCount = 95
Затем запустим программу.
[root@hedwig run]# ./john -incremental:All passwd.unix
Будет производиться только перебор строк длиной в восемь символов. Мы можем использовать параметр -stdout, чтобы проверить это. Каждый использованный вариант будет распечатываться на экране.
[root@hedwig run]# ./john -incremental:All -stdout
Это полезно, если вы перенаправляете вывод в файл и создаете список слов для дальнейшего использования с программой john или другой утилитой, которая может использовать файл со списком слов, например Whisker.
[root@hedwig run]# ./john -makechars:guessed Loaded 3820 plaintexts Generating charsets... 1 2 3 4 5 6 7 8 DONE Generating cracking order... DONE Successfully written charset file: guessed (82 characters)
Вам следует знать кое-что о программе john, чтобы управлять большими наборами паролей различной степени сложности. Программа периодически сохраняет
# Crash recovery file saving delay in seconds Save = 600
Имя файла по умолчанию restore, но его можно изменить, используя параметр -session.
[root@hedwig run]# ./john -incremental:LanMan -session:pdc \ passwd.lanman Loaded 1152 passwords with no different salts (NT LM DES [64/64 BS MMX])
Содержимое файла restore выглядит примерно так.
REC2 5 -incremental:LanMan -session:pdc passwd.lanman -format:lm 6 0 47508000 00000000 0 -1 488 0 8 3 2 6 5 2 0 0 0
Девятая и десятая строки в этом файле (показаны жирным шрифтом) содержат шестнадцатеричные значения числа завершенных операций. Число возможных комбинаций не может быть представлено 32-битным числом, поэтому программа использует два 32-битных поля для создания 64-битного числа. Информация об этом числе и то, как им можно манипулировать, может быть использована для выполнения распределенных вычислений. Возьмем наш файл restore и используем его для запуска параллельных версий программы на двух независимых машинах. Файл restore для первого компьютера будет содержать следующие строки.
REC2 4 -incremental:LanMan passwd.lanman -format:lm 4 0 00000000 00000000 0 -1 333 0 8 15 16 0 0 0 0 0 0
Файл restore для второго компьютера будет таким.
REC2 4 -incremental:LanMan passwd.lanman -format:lm 4 0 00000000 0000036f 0 -1 333 0 8 15 16 0 0 0 0 0 0
Итак, первая система начнет перебор комбинаций с нуля. Второй компьютер начнет перебор с паролей для LanMan со значения 0000036f 00000000. Теперь работа распределена между двумя машинами, и вам не следует беспокоиться об избыточных комбинациях. Грамотность приема для поиска правильного значения "crypt" состоит в том, чтобы позволить проработать системе некоторое время.
Например, представим себе, что в вашем распоряжении 10 компьютеров. На каждой из этих систем программа выполняет 400000 c/s (взломов в секунду). Для одной из этих машин понадобиться 30 недель, чтобы перебрать все возможные комбинации из семи символов в случае работы с паролями LanMan (69^7 комбинаций). Запустите программу на одной из машин на неделю. В конце недели запишите значение "crypt". Возьмите это значение и используйте его для другой машины, и затем умножьте значение на 2 и используйте полученное число для следующей машины. Теперь 10 компьютеров закончат работу по перебору всех комбинаций за три недели. Эта простая арифметика позволяет определить множитель X для значения "crypt", которое необходимо записать в 10 файлов - по одному для каждой машины. Первая машина начнет перебор с нуля, следующая со значения ноль плюс X, и так далее.
Общeе время в неделях.
Tw = (69^7 / взломов в секунду) / (секунд в неделю) Tw = (69^7 / 400,000) / (604800) = 30.8 недель.
"Crypt" множитель. X = Tw / (10 машин) X = 30.8 / 10 = 3
Значение " crypt " после первой недели (шестнадцатеричное число, взятое из файла restore): 00030000 00000000.
Ниже приведены значения параметра " crypt " (в шестнадцатеричной записи). Это значения, которые необходимо записать в файлы на каждой системе.
System 1 = 0 System 2 = "crypt" * X = 00090000 00000000 System 3 = "crypt" * X * 2 = 00120000 00000000 System N = "crypt" * X * (N - 1) = restore value System 10 = "crypt" * X * 9 = 00510000 00000000
Этот метод далек от элегантности, но эффективен, когда используется на нескольких одинаковых машинах. Другой способ распределенного взлома - использование параметра -external. Этот параметр позволяет написать свои программы и List.External. Просто используйте директиву -external, как это требуется.
[root@hedwig run]# ./john -external:Parallel passwd.lanman
node=1 на строку node=2 в файле john.conf на втором компьютере. Заметим, что использование этого метода на более чем двух компьютерах неэффективно, поскольку if (number++ % total) может создавать пересекающиеся слова на разных системах.Самым серьезным показателем того, что John the Ripper работает на вашем компьютере, может быть значение загрузки центрального процессора. Вы можете просмотреть список ps ), но вы не обрадуетесь, увидев в списке эту программу. Если вы попытаетесь переименовать исполняемый модуль, к примеру "inetd " (обратите внимание на пробел после d ), то программа не будет работать, если не сделать несколько изменений в исходном коде.
Пример из жизни. Атака на политику паролей
Правила, которые вы можете определить в файле john.conf - это достаточно долгий путь к настройке словаря. Мы уже упоминали о простом правиле добавления числа в начало каждой строки.
# Prepend digits (adds 10 more passes through the wordlist) ^[0123456789]
Но что с другими сценариями? Что, если мы заметим тенденцию в схеме изменения паролей для конкретной системы в сети под управлением Unix? Например, что, если мы хотим создать список слов, в который входят все комбинации слова
# Permutation of "ban" (total of 8 passes) i[0][bB]i[1][aA]i[2][nN]
Заметьте, что мы всего лишь поместили первые три буквы в правило. Это сделано потому, что john требуется список слов, чтобы им оперировать. Список слов, называемый password.lst, содержит три последних буквы.
k K
Теперь если вы запустите john с новым правилом с использованием короткого файла password.lst, вы увидите нечто похожее на это.
$ ./john.exe -wordfile:password.lst -rules -stdout bank bank bank bank bAnk bAnK bANk bANK Bank BanK BaNk BaNK Bank BAnK BANk BANK words: 16 time: 0:00:00:00 100% w/s: 47.05 current: BANK
Ниже представлено еще одно правило, которое может атаковать политику поддержания паролей, требующую наличия специальных символов в третьей позиции и числа в последней позиции.
# Strict policy (adds 160 more passes through the word list) i[2]['~!@#$%^*()-_=+]$[0123456789]
Это сокращенный пример вывода манипуляции со словом password:
$ ./john.exe -wordfile:password.lst -rules -stdout pa'ssword0 pa'ssword1 pa'ssword2 ... pa~ssword7 pa~ssword8 pa~ssword9 pa!ssword0 pa!ssword1 pa!ssword2 ...
Вы можете увидеть, что вполне возможно создать правила для быстрого взлома правил создания сетевых паролей.
Сначала система Windows казалась более привлекательной с точки зрения безопасности паролей, чем Unix. Большинство Unix-систем никогда не создают пароли более восьми символов.
Windows NT допускает длину пароля до 14 символов, это почти удвоение длины! Mudge и
Мы уже кратко упоминали в этой лекции о системе шифрования LanMan. Мы знаем, что это система хранения шифрованных паролей, схожая с форматами Unix-файлов /etc/passwd или /etc/shadow. Что можно понять, внимательно изучая, как генерируется и хранится в LanMan шифрованная строка? Система Windows хранит две версии пользовательского пароля. Первая версия называется LanMan, или LM, хэш. Вторая версия - NT-хэш, который шифруется с использованием алгоритма MD5. Это
Посмотрим на содержимое трех строк паролей в LanMan. Они представлены в шестнадцатеричной записи и содержат 16 байт данных.
898f30164a203ca0 14cc8d7feb12c1db 898f30164a203ca0 aad3b435b51404ee 14cc8d7feb12c1db aad3b435b51404ee
Не надо быть семи пядей во лбу, чтобы заметить некоторые совпадения в этих трех примерах. Последние 8 байт второго и третьего примера одинаковые: aad3b435b51404ee. Эти значения одинаковы для всех паролей длиной более восьми символов. Эта криптографическая ошибка возникает по двум причинам: вследствие того, что содержимое пароля составляет более восьми символов и показывает, что при генерации второй половины шифрованной строки не используется никакой информации о первой половине. Обратите внимание, что вторая половина первого примера ( 14cc8d7feb12c1db ) содержит первую часть третьего примера. Это, скорее, говорит о том, что пароль шифровался на основе двух независимых наборов символов (по семь каждый), чем о том, что вторая половина зависит от содержания первой части пароля.
В результате это превращает большой пароль из 14 символов в два коротких пароля по 7 символов. И в довершение всего, LanMan при шифровании игнорирует регистр символов, что резко сокращает время, затрачиваемое на взлом пароля перебором.
L0phtCrack - инструмент для взлома паролей с развитым графическим интерфейсом для среды Windows NT и ее наследников Windows 2000 и XP. Попытка стащить пароль у Unix-системы обычно требует доступа к файлам /etc/passwd и /etc/shadow. И тот и другой представляют собой легко читаемый текст. Windows хранит пароли в Security L0phtCrack не только подбирает пароли: он может извлекать шифрованные строки паролей из SAM-файла, локальной или удаленной системы и перехватывать пароли, когда они передаются по сети.
SAM-файл располагается в директории \WINNT\system32\config\. Если вы попытаетесь скопировать или открыть этот файл, получите сообщение об ошибке.
C:\WINNT\system32\configcopy SAM c:\temp
The process cannot access the file because it is being used by
another process.
0 file(s) copied.
Не теряйтесь. Windows, к счастью, хранит резервную копию SAM файла в директории \WINNT\ или \WINNT\.
L0phtCrack может извлечь пароли локального или удаленного компьютера с помощью функции .

Удаленное извлечение пароля требует доступа к общему ресурсу ADMIN$. Для этого необходим доступ к порту 39 NetBIOS TCP. L0phtCrack может создать для вас сессию, или вы можете сделать это вручную.
C:\>net use \\victim\admin$ * /u:Administrator Type the password for \\localhost\admin$: The command completed successfully.
Программа также может перехватить строку пароля из сети. Каждый раз, когда прослушиваемый компьютер посылает команду net use, можно извлечь строку аутентификации. Вы должны находиться в локальной сети и иметь возможность просматривать трафик, чтобы можно было ограничивать использование программы.
Скорость взлома пароля у L0phtCrack удовлетворительная, но не сравнится с последней версией john. При этом программа не предлагает возможностей гибкого изменения правил. Программа лишь допускает настройку списка символов из меню Options.

Тем не менее, наилучшим вариантом обычно является использование L0phtCrack для получения паролей и сохранения их для использования с john. Для этого воспользуйтесь функциями File/Save As.
Вам понадобится обработать файл для использования с john. Изменения состоят в помещении строк паролей в соответствующие поля.
Здесь представлен файл, в котором L0phtCrack сохраняет пароли.
LastBruteIteration=0 CharacterSet=1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ ElapsedTime=0 0 Administrator:"":"": A34E6990556D7BA3BA1F6705936BF461: 2B1437DBB1DC57DA3DA1B88BADAB13B2:::
А это файл, с которым работает John the Ripper. Обратите внимание на то, что три первых строки удалены, и есть только одно поле между именем пользователя (Administrator) и строкой пароля. Содержимое этого поля не имеет значения для john, но мы, в качестве напоминания, поместим сюда идентификатор пользователя (SID).
Administrator:500:A34E6990556D7BA3BA1F6705936BF461: 2B1437DBB1DC57DA3DA1B88BADAB13B2:::
В версии 3.0 L0phtCrack введены усовершенствования для анализа приложений. Эта версия также проще для использования администраторами и она больше соответствует их потребностям (такие возможности, как сообщение о том, что пароль был взломан, без вывода результата). Мы предпочитаем использовать L0phtCrack 2.52 для захвата паролей и использовать John the Ripper для их взлома.
У версии 3.0. L0phtCrack свои преимущества. Домены Windows 2000 имеют пользовательские профили с паролями из 15 символов. Это исключает методы хранения, применяющиеся в LanMan. Соответственно, версия 2.5. будет выдавать сообщение "No Password" как для строк LanMan, так и для
AAD3B435B51404EEAAD3B435B51404EE:FA95F45CC70B670BD865F3748CA3E9FC:::
то вам стоит исследовать этот "суперпароль". Заметим, что строка пароля для LanMan содержит уже знакомые нам нулевые символы AAD3B435B51404EE, дважды повторяемые LanMan в части пароля (выделено жирным шрифтом).
Другое преимущество L0phtCrack 3.0 состоит в возможности выполнять распределенный взлом. Метод взлома состоит в разделении процедур подбора паролей на блоки. Это очень важно для запуска программы в гетерогенной среде и отслеживания
Строгая сетевая и персональная политика безопасности - наилучший способ защиты паролей и John the Ripper и L0phtCrack, не поддерживают некоторые символы, которые Windows считает правильными.
Некоторые комбинации, набранные с использованием клавиши ALT и альтернативной клавиатуры, генерируют символы, которые не могут быть проверены имеющимися в настоящее время утилитами взлома. Помните, что для ввода этих комбинаций надо использовать цифры с альтернативной клавиатуры. К примеру, последовательность символов p-a-s-s-w-ALT+242-r-d (password) будет в безопасности до тех пор, пока кто-то не обновит утилиты для взлома паролей. Плюс к этому, дополнительные символы, доступные на альтернативной клавиатуре с помощью комбинации клавиш ALT-nnn, в значительной степени расширяют пространство символов для прямого перебора. Комбинации с клавишей ALT для
Преимущества, которые предоставляют Windows XP и Windows 2000 Service Pack 2 администраторам, состоят в наличии ключа реестра, который удаляет хранилище пользовательских паролей LanMan. Помните, что LM - ущербная версия пользовательских паролей, которая игнорирует различия между прописными и строчными буквами. Вы можете создать пароль из 15 символов и более, как отмечалось при обсуждении реализации L0phtCrack. Или вы можете установить ключ реестра, чтобы указать Windows на необходимость не сохранять строки паролей LanMan для любых последующих изменений пароля.
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash
Значение NoLMHash - REG_DWORD должно быть равно единице. Это нарушит совместимость с другими Windows-системами серий 9x или Me, но 2000 и XP будут работать прекрасно. Как только вы установите эти значения, убедитесь, что все пользователи изменили свои пароли, чтобы новые установки сработали. Если установка этих ключей не кажется усилением безопасности ваших паролей, обратите внимание вот на что: пространство символов для восьмисимвольных паролей (и во времени, которое потребуется для подбора пароля) для строки LanMan и для строки зашифрованной
После обзора L0phtCrack в этой лекции понятно, что строки паролей Windows администратор может просматривать также легко, как администратор Unix может просматривать файл /etc/shadow. С другой стороны, файл /etc/shadow представляет собой текстовый файл, который можно просматривать с использованием любого текстового редактора или просто выводя его на экран. База данных SAM для Windows имеет двоичный формат, что не позволяет просматривать ее с такой легкостью. Именно поэтому нам необходим инструмент типа pwdump или lsadump, с помощью которого можно получить текстовую версию базы данных SAM.
Утилита ), созданная Тодом Сабином, может быть использована для извлечения шифрованных паролей в системе Windows. Это утилита командной строки, которая должна запускаться локально на исследуемой системе; однако позднее в этом разделе мы познакомимся с утилитой pwdump3, которая может выполняться удаленно.
Пример из жизни. Взлом системы с помощью L0phtCrack
Вирус-сканер может идентифицировать L0phtCrack. Так происходит потому, что это одновременно полезное средство проверки для системных администраторов, но в то же время является спорным то, что это равноценно полезное средство для злонамеренных пользователей, которые инсталлируют его без разрешения. Вы можете найти файлы с расширением .lc, что является хорошим признаком того, что здесь присутствовал L0phtCrack. Если это средство действительно было инсталлировано в системе, а не запускалось с гибкого диска, то вы можете произвести поиск в реестре на наличие l0pht. Давайте проведем несколько поисков так, как это сделает системный администратор после обнаружения, что автоматизированное рабочее место временного сотрудника получает доступ к части ADMIN$ сети
Мы не обратим внимание на такие шаги, как захват (блокировка) данных и выяснение того, какие команды запускались. Вместо этого мы будем беспокоиться о паролях. У нас 600 сотрудников. Мы уже решили считать каждый пароль подвергшимся риску, но если мы будем искать прямое свидетельство того, что внутренний пользователь взламывал пароли, то нам придется найти некоторые ключевые данные. Наиболее очевидной уликой, которая показывает, что L0phtCrack был инсталлирован в системе, является его собственный реестровый ключ.
HKLM\SYSTEM\Software\L0pht Heavy Industries\L0phtcrack 2.5
К сожалению, этого ключа в системе нет. Но есть другие индикаторы того, что L0phtCrack был инсталлирован. Один из ключей относится к драйверу пакета сбора данных, он используется для розыска в путанице LanMan.
HKLM\SYSTEM\CurrentControlSet\Service\NDIS3Pkt
Этот ключ могут устанавливать другие программы, но корректное значение, которое устанавливают эти программы, будет следующим (обратите внимание на этот регистр):
HKLM\SYSTEM\CurrentControlSet\Service\Ndis3pkt
Если этот ключ NDIS3Pkt присутствует, то мы можем начать подозревать, что L0phtCrack был инсталлирован. Коварный сотрудник мог попытаться удалить свидетельства присутствия этого средства, даже путем L0phtCrack. Даже если L0phtCrack был деинсталлирован, то остается следующий ключ регистра.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\L0phtcrack 2.5
Если системный администратор находит это в реестре, то можно быть на 100% уверенным, что L0phtCrack когда-то был инсталлирован в системе. Затем администратор может поискать "недавно использовавшиеся" (MRU) значения в регистре файлов с расширением .lc. Даже если пользователь удалил "sam_pdc.lc" из файловой системы, то ссылки на него по-прежнему могут присутствовать в регистре!
Программа должна запускаться локально. Это вторая версия утилиты, первоначально разработанной Джереми Алисоном в проекте Samba. В отличие от первой версии, для pwdump2 шифрование базы данных SAM с использованием SysKey не является препятствием. Шифрование SysKey было добавлено в Windows NT с целью увеличить безопасность базы данных SAM, но эффективность этого шага спорна, как мы убедимся с помощью pwdump2. Применение pwdump2 показано ниже.
C:\>pwdump2.exe /? Pwdump2 - dump the SAM database. Usage: pwdump2.exe <pid of lsass.exe>
Для получения паролей утилита должна запускаться с полномочиями администратора.
C:\>pwdump2.exe Administrator:500:f1e5c5efbc8cfb7f18136fb05f77a0bf:55c77b761ffa46... Orc:501:cbc501a4d2227783cbc501a4d2227783:f523558e22c95c62a6d6d00c... skycladgirl:1013:aa5536a42ebe131baad3b235b51404ee:db31a1ee00bfbee...
Обычно у вас не было необходимости выяснять идентификатор ID (lsass.exe. Однако вы можете использовать один простой путь, чтобы найти его с помощью команд tlist или pulist и команды find (параметр /i указывает команде find игнорировать регистр).
C:\>tlist/find /i "lsass" 244 LSASS.EXE C:\>pulist/find /i "lsass" LSASS.EXE 244 NT AUTHORITY\SYSTEM C:\>pwdump2.exe 244 Administrator:500:f1e5c5efbc8cfb7f18136fb05f77a0bf:55c77b761ffa46... Orc:501:cbc501a4d2227783cbc501a4d2227783:f523558e22c95c62a6d6d00c... skycladgirl:1013:aa5536a42ebe131baad3b235b51404ee:db31a1ee00bfbee...
Данные, полученные утилитой pwdump2 нельзя напрямую использовать в L0phtCrack, поскольку он не может их читать. Причина в том, что алфавитные символы в шифрованной строке представлены в нижнем регистре; L0phtCrack читает на входе символы верхнего регистра. У John the Ripper нет таких проблем. К счастью, утилита tr (translate characters) может помочь тем, кто хочет использовать утилиту с графическим интерфейсом. Эта утилита работает как под Unix, так и под Cygwin, и была приспособлена под Windows, как часть набора утилит Resource Kit.
[user@hediwg ]$ cat pwdump.out/tr a-z A-Z ADMINISTRATOR:500:F1E5C5EFBC8CFB7F18136FB05F77A0BF:55C77B761FFA46... ORC:501:CBC501A4D2227783CBC501A4D2227783:F523558E22C95C62A6D6D00C... SKYCLADGIRL:1013:AA5536A42EBE131BAAD3B235B51404EE:DB31A1EE00BFBEE...
Утилита ), разработанная Филом Стаубсом, отличается от pwdump возможностью удаленного доступа к подозрительной машине. Существует четная версия pwdump3e, которая шифрует
Usage: PWDUMP3 machineName [outputFile] [userName] C:\>PwDump3.exe victim pwdump.out root C:\>type pwdump.out guest:1001:NO PASSWORD*********************:2DEAC3223C70B24E90F02... wwwadmin:500:NO PASSWORD*********************:9CBD10B05F8E69B62F2... IUSR_WWW01:1003:6E72211CDC51C9F8EB9293C3135F3985:0E2A2DCE3B6ABFBA...
Чтобы pwdump3 работала корректно, вам необходимо установить доступ к общему ресурсу ADMIN$. Утилита устанавливает такое соединение и запрашивает пароль администратора. В противном случае, вы можете установить соединение вручную с использованием команды net.
C:\>net use \\victim\admin$ * /u:Administrator Type the password for \\localhost\admin$: The command completed successfully.
Программа ) делает процесс сбора паролей тривиальным. Это еще одна утилита от Тода Сабина, который обновил созданную Паулем Аштоном программу. Различия между Lsadump2 и pwdump в том, что Lsadump2 выводит действительные текстовые пароли, а не шифрованные строки. Понятно, что это предпочтительнее, пока вы не можете запустить какую либо утилиту взлома паролей. К сожалению, Lsadump2 извлекает пароли, только если они были сохранены в памяти с использованием Local Security Authority (
Для запуска Lsadump2 требуются полномочия администратора. Применение Lsadump2 показано ниже.
C:\>lsadump2.exe Lsadump2 - dump an LSA secret. Usage: lsadump2.exe pid of lsass.exe <secret>
Вам необходимо знать идентификатор ( ) процесса lsass (так же как и для pwdump2 ).
C:\>tlist/find /i "lsass" 244 LSASS.EXE
LSA (PID ) также хранится в реестре в этом ключе:HKLM\SYSTEM\ CurrentControlSet\Control\Lsa\LsaPid.
Эта утилита выводит текст "
aspnet_WP_PASSWORD
61 00 77 00 41 00 39 00 65 00 68 00 68 00 61 00 a.w.A.9.e.h.h.a.
4B 00 38 00 K.8.
Левая колонка содержит ряд шестнадцатеричных цифр, имеющих отношение к службе. Правая колонка содержит ASCII-представление данных. Если на вашей машине под управлением Windows 2000 установлена служба .NET, то, скорее всего, у вас есть пользователь с именем ASPNET. Lsadump2 частично нашел пароль для этого пользователя, показанный жирным шрифтом. Обратите внимание, что Windows сохраняет пароли в формате Unicode, чем и объясняется наличие символов (00) после каждой буквы. К счастью, настройки по умолчанию для этого пользователя не позволяют осуществлять удаленный доступ или выполнение команд.
Средства активного взлома являются последним веянием в деле подбора паролей. Они генерируют большое количество паразитного шума в сети и в отношении атакуемой машины (поэтому их деятельность может долгое время оставаться незамеченной). Непременным условие начала
Другим распространенным шагом перед началом атаки является попытка выяснения времени блокирования доступа после ввода неправильного пароля. Если период блокирования составляет 30 минут после того, как пароль введен неправильно пять раз, вы не захотите терять 29 минут 30 секунд на работу, которая не будет иметь успеха.
Утилита SMBGrind является частью сканера уязвимостей . Это утилита командной строки, которая осуществляет подбор паролей, используя имена и пароли из текстового файла.
Вдобавок к приобретению и установке комплекта , вам понадобится только одно необходимое условие - создать файл для имен пользователей и паролей. Ниже показано применение утилиты.
C:\>smbgrind.exe -i 192.168.209.117 -u users.txt -p pass.txt -v Host address : 192.168.209.117 Userlist : users.txt Passlist : pass.txt Cracking host 192.168.209.117 (*SMBSERVER) Parallel Grinders: 10 Percent complete: 0 Trying: domain\NetAdm administrator Trying: domain\NetAdm Pass!word1 Trying: domain\NetAdm password Trying: domain\NetAdm change%me Trying: administrator administrator Trying: administrator Pass!word1 Trying: administrator password Trying: administrator change%me Percent complete: 75 Trying: guest administrator Trying: guest Pass!word1 Trying: guest password Trying: guest change%me Percent complete: 100 Grinding complete, guessed 0 accounts
SMBGrind - достаточно быстрая программа, но склонная к ошибочным положительным решениям. Программа порождает пакеты со строкой в качестве полезной нагрузки. Следовательно, деятельность программы может быть обнаружена системами IDS в сети, или строку можно обнаружить в журнале событий, ведущемся для фиксирования неудавшихся попыток подбора пароля.
Другим недостатком является невозможность направить атаку против конкретных общих ресурсов. Инструмент, который направлен на взлом ресурсов ADMIN$ или C$, в Windows может поставить под угрозу целостность всей системы, но для хитрого взломщика более привлекательным может оказаться доступ к ресурсу "wwwroot".
Программа Nbaudit по сравнению с SMBGrind позволяет пользователю сканировать интервал IP-адресов. Это прием чаще применяется для поиска опасных уязвимостей, таких как профиль администратора с пустым паролем.
Ниже приведен способ использования программы nbaudit.
usage: nbaudit [-o filename] [-u userlist] [-p passlist] <address>
Параметры userlist и passlist должны быть понятны без разъяснений. Параметр -o используется для задания выходного файла для сообщений о работе nbaudit. Параметр < address > может ввести вас в заблуждение. Он задает адрес или интервал адресов в следующем формате.
Ниже приведен пример вывода программы nbaudit.
[*] --- Checking host: 192.168.1.1
[*] --- Obtaining list of remote NetBIOS names
[*] --- Remote systems name tables:
PRINTSERVER
PRINTSERVER
PRINTSERVER
_MSBROWSE_
HOTEL
HOTEL
HOTEL
HOTEL
[*] --- Attempting to connect with name: *
[*] --- CONNECTED with name: *
[*] --- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
[*] --- Remote server wants us to encrypt, telling it not to
[*] --- Attempting to connect with protocol: LM1.2X002
[*] --- Server time is Mon Jan 28 02:06:08 2002
[*] --- Timezone is UTC-8.0
[*] --- Attempting to establish session
[*] --- Obtained server information:
Server=[*] User=[administrator] Workgroup=[HOTEL] Domain=[HOTEL]
[*]- Obtained listing of shares:
Sharename Type Comment
------- --- ------
IPC IPC: IPC Service (PrintServer)
Printer Printer: Hotel Public Printer
printer$ Disk:
[*] --- This machine has a browse list:
Server Comment
---- ------
PRINTSERVER PrintServer
[*] --- Attempting to access share: \\*\
[*] --- Unable to access
[*] --- Attempting to access share: \\*\printer$
[*] --- WARNING: Able to access share: \\*\printer$
[*] --- Checking write access in: \\*\printer$
[*] --- Attempting to exercise .. bug on: \\*\printer$
[*] --- Attempting to access share: \\*\ADMIN$
[*] --- Unable to access
[*] --- Attempting to access share: \\*\C$
[*] --- Unable to access
[*] --- Attempting to access share: \\*\D$
[*] --- Unable to access
[*] --- Attempting to access share: \\*\ROOT
[*] --- Unable to access
[*] --- Attempting to access share: \\*\WINNT$
[*] --- Unable to access
Nbaudit атакует все обнаруженные общие ресурсы. В этом примере программа успешно соединилась с ресурсом printer$ с нулевым паролем. Если программа осуществляет соединение по имени пользователя и паролю из списка, то на выход выдается информация об удачных соединениях. Это повышает их рейтинг, поскольку дает возможность осуществлять соединение с большим количеством общих ресурсов.
Улыбка, домашний
У взломщика есть два варианта, когда он пытается взломать пароль. Он может попытаться получить копию пароля и затем использовать средства подбора пароля, чтобы расшифровать строку. Или он может попытаться подсмотреть пароль. Взлом паролей - старейший прием, который приносит наибольший успех, поскольку человек не слишком хороший генератор случайных последовательностей.
Очень важно узнать, как и где хранится большинство паролей, чтобы понять, как эти средства действуют, и какие методы работы за этим стоят. Пароли в Unix и Windows хранятся в одностороннем хеш-файле и не могут быть расшифрованы. И наоборот, имя пользователя можно легко подсмотреть. Например, пароль Нейла abc123 хранится в Unix в виде закодированной строки kUge2g0BqUb7k (помните, что мы не можем ее раскодировать). Сохраненная строка не расшифровывается. Сравнение хеш-строки известного слова с исследуемой строкой пароля - вот основа для атак на системы парольной защиты.
Система Windows NT 4.0 заставляет своих пользователей подбирать псевдосложные пароли. Библиотека PassFilt.dll, которая поставляется с Service Pack 2, дает возможность администратору создавать элементарные правила для пользовательских паролей. Применение правил конструирования паролей обычно является достаточно удачным средством обеспечения безопасности. В конце концов, вы можете применить самые свежие
PassFilt.dll уже может быть в поставке системы NT, но для нее требуется произвести некоторые модификации в системном реестре.
PassFilt.dll размещается в директории C:\WINNT\ System32 (или куда указывает переменная %SYSTEMROOT% ).regedt32.exe работает лучше, чем regedit.exe ), чтобы открыть ключ HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Lsa .FPNWCLNT, удалите его, если нет необходимости обеспечивать совместимость с Novell.passfilt.PassFilt.dll на первичном контроллере домена, вы должны использовать его и на резервном контроллере.Если все идет нормально, последовательность изменения пароля для любого пользователя, кроме администратора, будет определяться специальными правилами. Ограничения, накладываемые использованием PassFilt.dll - только маленький шажок к хорошим паролям. Итак, Windows проверяет каждый новый пароль на простоту, используя следующие правила.
Эти правила не могут быть изменены. Технически библиотека DLL может быть заменена на другую, созданную с использованием
Что происходит на самом деле. Пользователи любят заменять числа гласными ( a это 4, e - 3, i - 1, o - 0 ) и добавлять восклицательный знак в свой пароль, чтобы удовлетворить ограничениям по созданию "хорошего" пароля. Словарь хороших паролей, которым владеет большинство взломщиков паролей, содержит различные перестановки обычных слов, которые содержат буквы и символы. И, наконец, пароли, которые основаны на именах спортивных команд, названиях городов, ругательствах и именах всегда относятся к множеству наиболее слабых паролей, поскольку пользователи предпочитают пароли, которые легко запомнить. Следовательно, вам захочется сфокусироваться на усилиях по защите списка паролей и защите служб (таких как электронная почта, система безопасности, Windows NetBIOS), которые опираются на пароли.
Наследники NT перенесли настройки PassFilt.dll из системного реестра в графический интерфейс пользователя. Они не добавили дополнительных правил или методов модификации имеющихся правил. Чтобы включить принудительные процедуры создания сложных паролей, войдите в раздел Local
(рис 9.1) Усложнение пароля
Некоторые популярные Unix-системы, такие как FreeBSD, Linux и Solaris, содержат встраиваемую модель аутентификации ( ). telnet, вход в консоль или изменение пароля. Реализация также доступна для схем строгой аутентификации, таких как Kerberos, S/Key и RADIUS. Конфигурация остается одной и той же, независимо от метода или приложения, которое осуществляет аутентификацию. Сосредоточимся на том, как усилить политику доступа по паролям с использованием .
Рассмотрим, как можно настроить системную политику в нашей Linux-системе в сравнении с использованием PassFilt.dll под Windows NT. Во-первых, у вас должна быть установлена библиотека cracklib (или libcrack ). Эта библиотека проверки паролей, разработанная Алеком Маффетом, является частью установочного комплекта систем Debian, Mandrake, RedHat и SuSE. Для проверки пароля нам необходимо только изменить текст файла, содержащего конфигурацию . Это может быть один из двух возможных файлов:
/etc/pam.conf
или
/etc/pam.d/passwd
Строки в файле /etc/
passwd password required /lib/security/pam_cracklib.so retry=3 passwd password required /lib/security/pam_unix.so nullok use_authtok
Они логически подразделяются на пять колонок. Первая колонка содержит имя службы - имя программы, на которую распространяются инструкции, прописанные в оставшихся колонках. Файл /etc/stacking modules для службы. Ниже приведен пример файла /etc/
password required /lib/security/pam_cracklib.so retry=3 password required /lib/security/pam_unix.so nullok use_authtok
Первая колонка показывает тип модуля, которому соответствует строка. Строка может содержать один из четырех типов (нас интересует изменение модуля, который управляет изменением пароля).
account для обеспечения доступа к ресурсам, таким как общие файлы. Однако без строки auth пользователь не сможет войти в систему.auth проверки пароля пользователя, затем может следовать модуль session, который вызывает модуль pAM для отображения текущего времени. Другой способ использования модуля session может обеспечивать специфические функции, выполняющиеся, когда пользователь войдет в систему, такие как запись строки в системный журнал или истечение срока действия временного идентификатора.Следующая колонка определяет control для службы, или описывает, как должно поддерживаться ее выполнение. Успешное выполнение означает, что служба выполнила функцию, например такую, как изменение пароля пользователя. Ошибка выполнения означает, что служба не передает корректные данные, такие как пароль пользователя. Ниже приводятся функции управления.
requisite , или работа этого модуля завершилась неудачно, процесс выполнения завершается с положительным результатом.Следующая колонка содержит параметр module path для библиотеки аутентификации, которую следует использовать. Этот параметр должен содержать cracklib, поэтому убедитесь, что в этой колонке стоит pam_cracklib.so.
Последняя строка содержит аргументы, которые передаются библиотеке аутентификации. Возвращаясь к первому примеру с файлом /etc/pam_cracklib.so должен успешно завершить свою работу с аргументом retry=3, в то время как пользователь меняет пароль с использованием программы passwd.
passwd password required /lib/security/pam_cracklib.so retry=3
На самом деле, Cracklib поддерживает больше аргументов, чем просто retry=N. Аргумент retry всего лишь указывает программе passwd, сколько раз запрашивать у пользователя новый пароль. Успешное или неудачное завершение работы службы, которая требует модуля pam_cracklib.so, опирается на очки, заработанные пользователем. Пользователь может зарабатывать очки на основании содержания пароля. Аргументы модуля определяют количество очков зарабатываемых конкретной компонентой нового пароля.
Пять следующих аргументов напрямую не влияют на набранное количество очков.
cracklib располагается не первым в очереди.Аргументы размещаются в последней колонке строки и разделяются пробелом. Например, наш администратор хочет, чтобы пользователи задавали для себя пароль из 15 символов, но при создании пароля давалось бы по два дополнительных очка за использование цифр и за использование "других" символов. В этом случае файл /etc/
password required /lib/security/pam_cracklib.so \
minlen=15 dcredit=2 ocredit=2
password required /lib/security/pam_unix.so nullok use_authtok md5
Обратите внимание, что администратор добавил аргумент md5 для библиотеки pam_unix.so. Это дает возможность шифровать пароль с использованием алгоритма MD5. Шифрование пароля с использованием алгоритма DES (MD5 более эффективно за счет отсутствия ограничения по длине.
Теперь посмотрим некоторые правильные и неправильные пароли, проверенные с использованием нового файла /etc/lcredit и ucredit по умолчанию равны 1:
Password 9 очков (длина 8 + 1 строчная буква). passw0rd! 12 очков (длина 9 + 1 строчная буква + 1 цифра + 1 другой символ). Passw0rd! 13 очков (длина 9 + 1 прописная буква + 1 строчная буква + 1 цифра + 1 другой символ). Pa$$w00rd 15 очков (длина 9 + 1 прописная буква + 1 строчная буква + 2 цифры + 2 других символа).
Как видно, большое значение minlen может потребовать использования достаточно сложных паролей. Двенадцать очков, по-видимому, самое маленькое число, которое можно позволить для использования в своей системе, значение пятнадцать подходит к верхнему пределу. Однако вам придется записывать свой пароль рядом с компьютером, чтобы запомнить его. (Шутка.)
Чтобы определить класс авторизации пользователя, или задать этот класс, откройте файл /etc/master.passwd с помощью утилиты vipw. Класс авторизации - пятый параметр в строке описания пользовательского пароля. Ниже приведен пример, где классы отображаются жирным шрифтом.
root:$2a$06$T22wQ2dH...:0:0:daemon:0:0:Fede:/root:/bin/csh bisk:$2a$06$T22wQ2dH...:0:0:staff:0:0::/home/bisk:/bin/csh
Некоторые строки в файле login.conf могут содержать следующее. (Символ \ обозначает переход на следующую строку).
default :\
:path=/usr/bin:\
:umask=027:\
:localcipher=blowfish,6
staff:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,8
daemon:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,8
Здесь помещены инструкции для системы: использовать алгоритм для всех пользователей. Цифры 6 и 8 обозначают число циклов для работы алгоритма. Это замедляет работу алгоритма, поскольку требуется больше времени для шифрования пароля. Если пароль требует больше времени для шифрования, то соответственно потребуется и больше времени для его подбора. К примеру, понадобится значительно больше времени, чтобы перебрать словарь из 100000 слов, если вы используете 32 цикла ( localcipher= ), чем при использовании шести циклов.
Наиболее важными в файле login.conf являются строки: default, поскольку она используется для всех пользователей, и daemon - для пользователя root.
У каждой строки может быть несколько параметров.
old. Наилучшими параметрами могут быть md5 и blowfish , N где N указывает на число циклов ( N 32 ). Значение "old" означает, что используется DES, и его следует избегать, поскольку пароль не может быть более 8 символов, и методы взлома паролей весьма эффективно работают против этого алгоритма.localcipher. Используется для обеспечения совместимости с распределенной аутентификацией в "Сетевой информационной системе" OpenBSD . Пользователь может не обращать внимания на стандарт, если этот параметр равен 0.Измененный файл login.conf будет содержать примерно следующее (класс ftpaccess исключительно слаб в этом примере).
default:\
:path=/usr/bin:\
:umask=027:\
:localcipher=blowfish,8:\
:minpasswordlen=8:\
:passwordretries=0
ftpaccess:\
:path=/ftp/bin:\
:umask=777:\
:localcipher=old:\
:minpasswordlen=6:\
:passwordretries=3
staff:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,12:\
:minpasswordlen=8:\
:passwordretries=0
daemon:\
:path=/usr/sbin:\
:umask=077:\
:localcipher=blowfish,31
Политика, заданная в этом файле, требует использования алгоритма для всех пользователей, исключая тот самый класс ftpaccess. Политика паролей для ftpaccess представляет собой требования, свойственные старой школе Unix-систем. Пароли для пользователей, относящихся к классу staff, обычно ассоциирующемуся с привилегиями администратора, шифруются с использованием 12 циклов шифрования. Пароль пользователя root, по умолчанию члену класса daemon, должен шифроваться с использованием максимального для используемого алгоритма числа циклов шифрования. Алгоритмы и MD5 также поддерживают пароль произвольной длины, в в настоящее время существует ограничение в 128 символов. Этого достаточно, чтобы написать маленькую поэму!
.history .bash_history на предмет поиска странных команд. Иногда администратор случайно может набрать пароль в командной строке. Это обычно случается, когда администратор входит в удаленную систему, используя команду su, и путает команды, досрочно вводя пароль. Однажды мы так нашли пароль пользователя root, состоящий из 13 символов!), возможно, самый быстрый и наиболее универсальный из доступных инструментов, предназначенных для взлома паролей. Программа поддерживает шесть разных схем хеширования паролей, которые покрывают различные варианты схем хеширования паролей для Unix и Windows LanMan (используемый в NT, 2000 и XP). Он может использовать специализированный список слов или правил для паролей, основанных на типах символов и их местоположении. Программа работает под управлением 13 различных операционных систем и поддерживает разные процессоры, включая специальные ускорители для Pentium и RISC-процессоров.
Во-первых, необходимо получить и скомпилировать программу. Последняя версия программы john-1.6.31-dev. Но вам понадобится загрузить и john-1.6.31-dev.tar.gz и john-1.6.tar.gz (или .zip -эквивалент для Windows). Версия 1.6.31-dev содержит не всю документацию и дополнительные файлы, которые есть в версии 1.6. После распаковки john-1.6.31-dev в выбранной директории, вам понадобится перейти в директорию /src.
[root@hedwig]# tar zxvf john-1.6.31-dev.tar.gz [root@hedwig]# tar zxvf john-1.6.tar.gz [root@hedwig]# cd john-1.6.31-dev [root@hedwig john-1.6.31-dev]# cd src
Следующая команда проста: make <OS name>. Например, для сборки программы под управлением Cygwin вам понадобиться набрать make win32-cygwin-x86-. Для пользователей BSD, make freebsd-x86-. Просто наберите make без аргументов, чтобы посмотреть список поддерживаемых операционных систем и комбинаций процессоров.
[root@hedwig src]# make win32-cygwin-x86-mmx
Затем программа самостоятельно осуществит сборку версии для вашей платформы. Когда процесс закончится, исполняемые файлы и файлы конфигурации будут размещены в директории john-1.6.31-dev/run. Версия разработчика не содержит некоторые необходимые файлы. Вам понадобится распаковать эти файлы из архива john-1.6.tar.gz и поместить их в директорию /run.
[root@hedwig]# cd john-1.6.31-dev/run [root@hedwig run]# cp ../../john-1.6/run/all.chr . [root@hedwig run]# cp ../../john-1.6/run/alpha.chr . [root@hedwig run]# cp ../../john-1.6/run/digits.chr . [root@hedwig run]# cp ../../john-1.6/run/lanman.chr . [root@hedwig run]# cp ../../john-1.6/run/password.lst .
Если все прошло нормально, вы можете протестировать программу. Для остальных команд вам следует учитывать, что текущей директорией является john-1.6.31-dev/run. Во-первых, убедитесь, что программа работает, показывая базовую скорость работы для вашей системы.
[root@hedwig run]# ./john -test Benchmarking: Traditional DES [64/64 BS MMX]... DONE Many salts: 323175 c/s Only one salt: 279202 c/s Benchmarking: BSDI DES (x725) [64/64 BS MMX]... DONE Many salts: 10950 c/s Only one salt: 10770 c/s Benchmarking: FreeBSD MD5 [32/32]... DONE Raw: 2437 c/s Benchmarking: OpenBSD Blowfish (x32) [32/32]... DONE Raw: 169 c/s Benchmarking: Kerberos AFS DES [48/64 4K MMX]... DONE Short: 118816 c/s Long: 305669 c/s Benchmarking: NT LM DES [64/64 BS MMX]... DONE Raw: 487689 c/s
Достойны внимания два теста: FreeBSD MD5 и NT LM DES. Количество взломов в секунду (c/s) отличается для этих двух методов в 200 раз. Это означает, что на полную атаку перебором для FreeBSD потребуется в 200 раз больше усилий, чем на аналогичную работу для Windows NT! Алгоритм
Теперь взломаем пароль. Программа может воспринимать три различных формата паролей. На самом деле, программа может взломать любой шифр паролей, описанный в справке, полученной по параметру -test. Все, что вам требуется сделать, это переформатировать пароль в вид, который может принять приложение. Если вы используете парольный файл Unix или выходной формат утилиты pwdump, о которой будет разговор позже в этой лекции, то вам не потребуется модифицировать формат файла. Ниже приведено пять различных примеров форматов
Далее перечислим системы, из которых взяты приведенные выше примеры. Заметим, что, несмотря на то, что каждый из них несколько отличается в конкретной операционной системе, форматы файлов схожи. Заметим также, что вы можете взломать пароли для Solaris, используя Windows-версию программы: для этого необходима лишь реальная строка пароля; операционная система не важна.
Пароли могут быть взломаны и программой, работающей под отличной от Unix и Windows операционной системой. Для взлома одного из этих паролей просто скопируйте строку (выделенную жирным шрифтом в каждом примере) во второе поле файла в формате Unix.
Cisco
Исходная строка: enable
Строка для взлома: cisco:$1$M9/GbWfv$sktn.4pPetd8zAwvhiB6.1::::
Apache .htaccess-файлы, которые используют строку пароля, сформатированную в формате DES. Apache также поддерживает строки паролей в формате алгоритмов
Исходный формат .htaccess: dragon:yJMVYngEA6t9c
Формат для программы: dragon:yJMVYngEA6t9c::::
Другие, основанные на алгоритме DES пароли, такие как WWWBoard.
Исходный файл passwd.txt: WebAdmin: aepTOqxOi4i8U
Строка для взлома: WebAdmin: aepTOqxOi4i8U: 0:3:www.victim.com::
Для взлома пароля с использованием опций по умолчанию, вы должны ввести имя файла в качестве аргумента. Для примеров из этой лекции мы будем использовать три различных файла паролей: passwd.unix, содержащий пароли, зашифрованные с помощью алгоритма DES, passwd.md5, содержащий пароли, зашифрованные с использованием алгоритма MD5, и passwd.lanman, содержащий пароли в формате Windows NT.
[root@hedwig run]# ./john passwd.unix Loaded 189 passwords with 182 different salts (Traditional DES [64/64 BS MMX])
Программа автоматически выбирает правильный алгоритм шифрования для строк и начинает взлом. Нажмите любую клавишу, чтобы вывести на экран текущую статистику взлома, и CTRL-C, чтобы прервать работу программы. Если пароль взломан, программа выводит на экран и сохраняет взломанный пароль для дальнейшего использования. Чтобы посмотреть вскрытые пароли из специального файла, используйте параметр -show.
[root@hedwig run]# ./john -show passwd.unix 2buddha:smooth1:0:3:wwwboard:/:/sbin/sh ecs:asdfg1:11262:0:40:5::11853: informix:abc123:10864:0:40:5::12689: kr:grant5:11569:0:35:5::11853: mjs:rocky22:11569:0:35:5::11853: np:ny0b0y:11572:0:35:5::11853:
Все вскрытые пароли сохраняются в файле john.
Словарь по умолчанию для программы содержится в файле password.lst. Этот файл содержит пароли, которые наиболее часто встречаются среди пользователей. Вы можете найти несколько альтернативных словарей в интернете, просто воспользовавшись поисковой системой Google. Один из лучших (около 15Mb) называется bigdict.zip. Используйте параметр -wordfile, чтобы указать программе на необходимость использовать альтернативный словарь.
[root@hedwig run]# ./john -wordfile:password.lst passwd.unix Loaded 188 passwords with 182 different salts (Traditional DES [64/64 BS MMX]) guesses: 0 time: 0:00:00:01 100% c/s: 333074 trying: tacobell - zhongguo
Мы даже можем делать некоторые перестановки в словаре, используя параметр -rules.
[root@hedwig run]# ./john -wordfile:password.lst -rules passwd.unix Loaded 188 passwords with 182 different salts (Traditional DES [64/64 BS MMX]) guesses: 0 time: 0:00:00:58 100% c/s: 327702 trying: Wonderin - Zenithin
Чтобы понять функцию параметра -rules, посмотрим на файл john.conf (или john.ini для версии 1.6). Ниже приведена часть файла john.conf, которая описывает перестановки в нашем списке слов (комментарии начинаются с символа # ).
[List.Rules:Wordlist] # Try words as they are : Lowercase every pure alphanumeric word -c >3!?XlQ # Capitalize every pure alphanumeric word -c >2(?a!?XcQ # Lowercase and pluralize pure alphabetic words <*>2!?Alp # Lowercase pure alphabetic words and append '1' <*>2!?Al$1
Эти записи, на самом деле, не так сложны, как это кажется на первый взгляд. Базовый синтаксис для большинства этих правил унаследован от утилиты для взлома, написанной Али Маффетом (помните libcrack?). Представьте, что системная политика паролей требует, чтобы каждый пароль начинался с цифры. Следовательно, нет необходимости перебирать комбинации строки "letmein" до тех пор, пока строка не станет удовлетворять выбранной политике, а строка "7letmein" может быть правильной. Вот и правило для предварения слова цифрой.
# Prepend digits (adds 10 more passes through the wordlist) ^[0123456789]
Мы можем разбить это правило на три части. Символ ^ означает, что операция должна начинаться от начала слова. Другими словами, она должна предварять последовательность символов. Квадратные скобки [ и ] содержат набор символов, которые должны следовать за символом ^. Цифры 0123456789 являются символами, которые должны предварять слово. Итак, если наше правило работает со строкой "letmein", ему понадобится всего десять попыток, чтобы пробежать от комбинации "0letmein" до "9letmein".
Символы, которые определяют место, где должен размещаться новый символ, приведены ниже.
| Символ | Описание | Пример |
|---|---|---|
^ |
Поставить символ в начало | ^[01] 0letmein 1letmein |
$ |
Добавить символ в конец | $[!.] letmein! letmein. |
i[n] |
Вставить символ на соответствующую позицию | i[4][XZ] letXmein letZmein |
Мы можем определить любой набор символов, который будет вставляться в строку. Полный список слов будет переработан для каждого из дополнительных символов. Например, список из 1000 слов может реально превратиться в список из 10000, если к каждому слову в начало будет добавлен один из символов от 0 до 9. Ниже приведены некоторые, наиболее часто используемые символы, которые добавляются к базовым словам.
Мы можем использовать преобразование правил для изменения регистра или типа (верхний, нижний, от e до 3) символов, или удаления отдельных типов символов.
Правила - великолепный способ повысить производительность подбора пароля, особенно те из них, которые добавляют символы или правила l33t, заменяющие символы и цифры. Правила наиболее подходят для случая, когда скорость работы компьютера не больше, чем у обезьяны, считающей на счетах. Сегодня, когда за несколько сотен долларов можно купить процессор с тактовой частотой более 1GHz, вы не много потеряете, пропустив этап обработки сложными правилами, и перейдете непосредственно к прямому перебору.
Сложные правила и обширные словари не смогут взломать любой пароль. Это заставляет прибегать к атаке методом прямого перебора. Другими словами, мы будем пробовать все возможные комбинации символов заданной длины. Программа может переключаться в режим прямого перебора по умолчанию, если в командной строке не задано никаких параметров. Чтобы заставить программу перейти к прямому перебору, используйте параметр -incremental.
[root@hedwig run]# ./john -incremental:LanMan passwd.lanman Loaded 1152 passwords with no different salts (NT LM DES [64/64 BS MMX])
По умолчанию файл john.conf содержит четыре аддитивных параметра.
Каждый аддитивный параметр имеет пять полей в файле john.conf. Например, строка для LanMan содержит следующие поля.
Аналогично строка для ALL содержит следующие поля.
Поля MinLen и MaxLen наиболее важны, поскольку мы можем изменять их для определения атаки. В MaxLen для LanMan никогда не может быть больше семь символов. Число CharCount в степени MaxLen дает количество комбинаций, необходимое для полного завершения атаки перебором. Например, общее количество комбинаций для работы с паролями LanMan составляет 7.6 триллиона. Общее число комбинаций при использовании параметра ALL составляет около 6700 триллионов! Заметим, что бессмысленно использовать параметр incremental:All для подбора паролей LanMan, поскольку нет необходимости отдельно проверять символы нижнего и верхнего регистров.
Если в нашем распоряжении список паролей из Unix, о котором известно, что все пароли состоят из восьми символов, мы можем изменить значения параметров. В данном случае это экономит время, поскольку можно не заниматься перебором строк длиной в семь и менее символов.
[Incremental:All] File = ./all.chr MinLen = 8 MaxLen = 8 CharCount = 95
Затем запустим программу.
[root@hedwig run]# ./john -incremental:All passwd.unix
Будет производиться только перебор строк длиной в восемь символов. Мы можем использовать параметр -stdout, чтобы проверить это. Каждый использованный вариант будет распечатываться на экране.
[root@hedwig run]# ./john -incremental:All -stdout
Это полезно, если вы перенаправляете вывод в файл и создаете список слов для дальнейшего использования с программой john или другой утилитой, которая может использовать файл со списком слов, например Whisker.
[root@hedwig run]# ./john -makechars:guessed Loaded 3820 plaintexts Generating charsets... 1 2 3 4 5 6 7 8 DONE Generating cracking order... DONE Successfully written charset file: guessed (82 characters)
Вам следует знать кое-что о программе john, чтобы управлять большими наборами паролей различной степени сложности. Программа периодически сохраняет
# Crash recovery file saving delay in seconds Save = 600
Имя файла по умолчанию restore, но его можно изменить, используя параметр -session.
[root@hedwig run]# ./john -incremental:LanMan -session:pdc \ passwd.lanman Loaded 1152 passwords with no different salts (NT LM DES [64/64 BS MMX])
Содержимое файла restore выглядит примерно так.
REC2 5 -incremental:LanMan -session:pdc passwd.lanman -format:lm 6 0 47508000 00000000 0 -1 488 0 8 3 2 6 5 2 0 0 0
Девятая и десятая строки в этом файле (показаны жирным шрифтом) содержат шестнадцатеричные значения числа завершенных операций. Число возможных комбинаций не может быть представлено 32-битным числом, поэтому программа использует два 32-битных поля для создания 64-битного числа. Информация об этом числе и то, как им можно манипулировать, может быть использована для выполнения распределенных вычислений. Возьмем наш файл restore и используем его для запуска параллельных версий программы на двух независимых машинах. Файл restore для первого компьютера будет содержать следующие строки.
REC2 4 -incremental:LanMan passwd.lanman -format:lm 4 0 00000000 00000000 0 -1 333 0 8 15 16 0 0 0 0 0 0
Файл restore для второго компьютера будет таким.
REC2 4 -incremental:LanMan passwd.lanman -format:lm 4 0 00000000 0000036f 0 -1 333 0 8 15 16 0 0 0 0 0 0
Итак, первая система начнет перебор комбинаций с нуля. Второй компьютер начнет перебор с паролей для LanMan со значения 0000036f 00000000. Теперь работа распределена между двумя машинами, и вам не следует беспокоиться об избыточных комбинациях. Грамотность приема для поиска правильного значения "crypt" состоит в том, чтобы позволить проработать системе некоторое время.
Например, представим себе, что в вашем распоряжении 10 компьютеров. На каждой из этих систем программа выполняет 400000 c/s (взломов в секунду). Для одной из этих машин понадобиться 30 недель, чтобы перебрать все возможные комбинации из семи символов в случае работы с паролями LanMan (69^7 комбинаций). Запустите программу на одной из машин на неделю. В конце недели запишите значение "crypt". Возьмите это значение и используйте его для другой машины, и затем умножьте значение на 2 и используйте полученное число для следующей машины. Теперь 10 компьютеров закончат работу по перебору всех комбинаций за три недели. Эта простая арифметика позволяет определить множитель X для значения "crypt", которое необходимо записать в 10 файлов - по одному для каждой машины. Первая машина начнет перебор с нуля, следующая со значения ноль плюс X, и так далее.
Общeе время в неделях.
Tw = (69^7 / взломов в секунду) / (секунд в неделю) Tw = (69^7 / 400,000) / (604800) = 30.8 недель.
"Crypt" множитель. X = Tw / (10 машин) X = 30.8 / 10 = 3
Значение " crypt " после первой недели (шестнадцатеричное число, взятое из файла restore): 00030000 00000000.
Ниже приведены значения параметра " crypt " (в шестнадцатеричной записи). Это значения, которые необходимо записать в файлы на каждой системе.
System 1 = 0 System 2 = "crypt" * X = 00090000 00000000 System 3 = "crypt" * X * 2 = 00120000 00000000 System N = "crypt" * X * (N - 1) = restore value System 10 = "crypt" * X * 9 = 00510000 00000000
Этот метод далек от элегантности, но эффективен, когда используется на нескольких одинаковых машинах. Другой способ распределенного взлома - использование параметра -external. Этот параметр позволяет написать свои программы и List.External. Просто используйте директиву -external, как это требуется.
[root@hedwig run]# ./john -external:Parallel passwd.lanman
node=1 на строку node=2 в файле john.conf на втором компьютере. Заметим, что использование этого метода на более чем двух компьютерах неэффективно, поскольку if (number++ % total) может создавать пересекающиеся слова на разных системах.Самым серьезным показателем того, что John the Ripper работает на вашем компьютере, может быть значение загрузки центрального процессора. Вы можете просмотреть список ps ), но вы не обрадуетесь, увидев в списке эту программу. Если вы попытаетесь переименовать исполняемый модуль, к примеру "inetd " (обратите внимание на пробел после d ), то программа не будет работать, если не сделать несколько изменений в исходном коде.
Пример из жизни. Атака на политику паролей
Правила, которые вы можете определить в файле john.conf - это достаточно долгий путь к настройке словаря. Мы уже упоминали о простом правиле добавления числа в начало каждой строки.
# Prepend digits (adds 10 more passes through the wordlist) ^[0123456789]
Но что с другими сценариями? Что, если мы заметим тенденцию в схеме изменения паролей для конкретной системы в сети под управлением Unix? Например, что, если мы хотим создать список слов, в который входят все комбинации слова
# Permutation of "ban" (total of 8 passes) i[0][bB]i[1][aA]i[2][nN]
Заметьте, что мы всего лишь поместили первые три буквы в правило. Это сделано потому, что john требуется список слов, чтобы им оперировать. Список слов, называемый password.lst, содержит три последних буквы.
k K
Теперь если вы запустите john с новым правилом с использованием короткого файла password.lst, вы увидите нечто похожее на это.
$ ./john.exe -wordfile:password.lst -rules -stdout bank bank bank bank bAnk bAnK bANk bANK Bank BanK BaNk BaNK Bank BAnK BANk BANK words: 16 time: 0:00:00:00 100% w/s: 47.05 current: BANK
Ниже представлено еще одно правило, которое может атаковать политику поддержания паролей, требующую наличия специальных символов в третьей позиции и числа в последней позиции.
# Strict policy (adds 160 more passes through the word list) i[2]['~!@#$%^*()-_=+]$[0123456789]
Это сокращенный пример вывода манипуляции со словом password:
$ ./john.exe -wordfile:password.lst -rules -stdout pa'ssword0 pa'ssword1 pa'ssword2 ... pa~ssword7 pa~ssword8 pa~ssword9 pa!ssword0 pa!ssword1 pa!ssword2 ...
Вы можете увидеть, что вполне возможно создать правила для быстрого взлома правил создания сетевых паролей.
Сначала система Windows казалась более привлекательной с точки зрения безопасности паролей, чем Unix. Большинство Unix-систем никогда не создают пароли более восьми символов.
Windows NT допускает длину пароля до 14 символов, это почти удвоение длины! Mudge и
Мы уже кратко упоминали в этой лекции о системе шифрования LanMan. Мы знаем, что это система хранения шифрованных паролей, схожая с форматами Unix-файлов /etc/passwd или /etc/shadow. Что можно понять, внимательно изучая, как генерируется и хранится в LanMan шифрованная строка? Система Windows хранит две версии пользовательского пароля. Первая версия называется LanMan, или LM, хэш. Вторая версия - NT-хэш, который шифруется с использованием алгоритма MD5. Это
Посмотрим на содержимое трех строк паролей в LanMan. Они представлены в шестнадцатеричной записи и содержат 16 байт данных.
898f30164a203ca0 14cc8d7feb12c1db 898f30164a203ca0 aad3b435b51404ee 14cc8d7feb12c1db aad3b435b51404ee
Не надо быть семи пядей во лбу, чтобы заметить некоторые совпадения в этих трех примерах. Последние 8 байт второго и третьего примера одинаковые: aad3b435b51404ee. Эти значения одинаковы для всех паролей длиной более восьми символов. Эта криптографическая ошибка возникает по двум причинам: вследствие того, что содержимое пароля составляет более восьми символов и показывает, что при генерации второй половины шифрованной строки не используется никакой информации о первой половине. Обратите внимание, что вторая половина первого примера ( 14cc8d7feb12c1db ) содержит первую часть третьего примера. Это, скорее, говорит о том, что пароль шифровался на основе двух независимых наборов символов (по семь каждый), чем о том, что вторая половина зависит от содержания первой части пароля.
В результате это превращает большой пароль из 14 символов в два коротких пароля по 7 символов. И в довершение всего, LanMan при шифровании игнорирует регистр символов, что резко сокращает время, затрачиваемое на взлом пароля перебором.
L0phtCrack - инструмент для взлома паролей с развитым графическим интерфейсом для среды Windows NT и ее наследников Windows 2000 и XP. Попытка стащить пароль у Unix-системы обычно требует доступа к файлам /etc/passwd и /etc/shadow. И тот и другой представляют собой легко читаемый текст. Windows хранит пароли в Security L0phtCrack не только подбирает пароли: он может извлекать шифрованные строки паролей из SAM-файла, локальной или удаленной системы и перехватывать пароли, когда они передаются по сети.
SAM-файл располагается в директории \WINNT\system32\config\. Если вы попытаетесь скопировать или открыть этот файл, получите сообщение об ошибке.
C:\WINNT\system32\configcopy SAM c:\temp
The process cannot access the file because it is being used by
another process.
0 file(s) copied.
Не теряйтесь. Windows, к счастью, хранит резервную копию SAM файла в директории \WINNT\ или \WINNT\.
L0phtCrack может извлечь пароли локального или удаленного компьютера с помощью функции .

Удаленное извлечение пароля требует доступа к общему ресурсу ADMIN$. Для этого необходим доступ к порту 39 NetBIOS TCP. L0phtCrack может создать для вас сессию, или вы можете сделать это вручную.
C:\>net use \\victim\admin$ * /u:Administrator Type the password for \\localhost\admin$: The command completed successfully.
Программа также может перехватить строку пароля из сети. Каждый раз, когда прослушиваемый компьютер посылает команду net use, можно извлечь строку аутентификации. Вы должны находиться в локальной сети и иметь возможность просматривать трафик, чтобы можно было ограничивать использование программы.
Скорость взлома пароля у L0phtCrack удовлетворительная, но не сравнится с последней версией john. При этом программа не предлагает возможностей гибкого изменения правил. Программа лишь допускает настройку списка символов из меню Options.

Тем не менее, наилучшим вариантом обычно является использование L0phtCrack для получения паролей и сохранения их для использования с john. Для этого воспользуйтесь функциями File/Save As.
Вам понадобится обработать файл для использования с john. Изменения состоят в помещении строк паролей в соответствующие поля.
Здесь представлен файл, в котором L0phtCrack сохраняет пароли.
LastBruteIteration=0 CharacterSet=1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ ElapsedTime=0 0 Administrator:"":"": A34E6990556D7BA3BA1F6705936BF461: 2B1437DBB1DC57DA3DA1B88BADAB13B2:::
А это файл, с которым работает John the Ripper. Обратите внимание на то, что три первых строки удалены, и есть только одно поле между именем пользователя (Administrator) и строкой пароля. Содержимое этого поля не имеет значения для john, но мы, в качестве напоминания, поместим сюда идентификатор пользователя (SID).
Administrator:500:A34E6990556D7BA3BA1F6705936BF461: 2B1437DBB1DC57DA3DA1B88BADAB13B2:::
В версии 3.0 L0phtCrack введены усовершенствования для анализа приложений. Эта версия также проще для использования администраторами и она больше соответствует их потребностям (такие возможности, как сообщение о том, что пароль был взломан, без вывода результата). Мы предпочитаем использовать L0phtCrack 2.52 для захвата паролей и использовать John the Ripper для их взлома.
У версии 3.0. L0phtCrack свои преимущества. Домены Windows 2000 имеют пользовательские профили с паролями из 15 символов. Это исключает методы хранения, применяющиеся в LanMan. Соответственно, версия 2.5. будет выдавать сообщение "No Password" как для строк LanMan, так и для
AAD3B435B51404EEAAD3B435B51404EE:FA95F45CC70B670BD865F3748CA3E9FC:::
то вам стоит исследовать этот "суперпароль". Заметим, что строка пароля для LanMan содержит уже знакомые нам нулевые символы AAD3B435B51404EE, дважды повторяемые LanMan в части пароля (выделено жирным шрифтом).
Другое преимущество L0phtCrack 3.0 состоит в возможности выполнять распределенный взлом. Метод взлома состоит в разделении процедур подбора паролей на блоки. Это очень важно для запуска программы в гетерогенной среде и отслеживания
Строгая сетевая и персональная политика безопасности - наилучший способ защиты паролей и John the Ripper и L0phtCrack, не поддерживают некоторые символы, которые Windows считает правильными.
Некоторые комбинации, набранные с использованием клавиши ALT и альтернативной клавиатуры, генерируют символы, которые не могут быть проверены имеющимися в настоящее время утилитами взлома. Помните, что для ввода этих комбинаций надо использовать цифры с альтернативной клавиатуры. К примеру, последовательность символов p-a-s-s-w-ALT+242-r-d (password) будет в безопасности до тех пор, пока кто-то не обновит утилиты для взлома паролей. Плюс к этому, дополнительные символы, доступные на альтернативной клавиатуре с помощью комбинации клавиш ALT-nnn, в значительной степени расширяют пространство символов для прямого перебора. Комбинации с клавишей ALT для
Преимущества, которые предоставляют Windows XP и Windows 2000 Service Pack 2 администраторам, состоят в наличии ключа реестра, который удаляет хранилище пользовательских паролей LanMan. Помните, что LM - ущербная версия пользовательских паролей, которая игнорирует различия между прописными и строчными буквами. Вы можете создать пароль из 15 символов и более, как отмечалось при обсуждении реализации L0phtCrack. Или вы можете установить ключ реестра, чтобы указать Windows на необходимость не сохранять строки паролей LanMan для любых последующих изменений пароля.
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash
Значение NoLMHash - REG_DWORD должно быть равно единице. Это нарушит совместимость с другими Windows-системами серий 9x или Me, но 2000 и XP будут работать прекрасно. Как только вы установите эти значения, убедитесь, что все пользователи изменили свои пароли, чтобы новые установки сработали. Если установка этих ключей не кажется усилением безопасности ваших паролей, обратите внимание вот на что: пространство символов для восьмисимвольных паролей (и во времени, которое потребуется для подбора пароля) для строки LanMan и для строки зашифрованной
После обзора L0phtCrack в этой лекции понятно, что строки паролей Windows администратор может просматривать также легко, как администратор Unix может просматривать файл /etc/shadow. С другой стороны, файл /etc/shadow представляет собой текстовый файл, который можно просматривать с использованием любого текстового редактора или просто выводя его на экран. База данных SAM для Windows имеет двоичный формат, что не позволяет просматривать ее с такой легкостью. Именно поэтому нам необходим инструмент типа pwdump или lsadump, с помощью которого можно получить текстовую версию базы данных SAM.
Утилита ), созданная Тодом Сабином, может быть использована для извлечения шифрованных паролей в системе Windows. Это утилита командной строки, которая должна запускаться локально на исследуемой системе; однако позднее в этом разделе мы познакомимся с утилитой pwdump3, которая может выполняться удаленно.
Пример из жизни. Взлом системы с помощью L0phtCrack
Вирус-сканер может идентифицировать L0phtCrack. Так происходит потому, что это одновременно полезное средство проверки для системных администраторов, но в то же время является спорным то, что это равноценно полезное средство для злонамеренных пользователей, которые инсталлируют его без разрешения. Вы можете найти файлы с расширением .lc, что является хорошим признаком того, что здесь присутствовал L0phtCrack. Если это средство действительно было инсталлировано в системе, а не запускалось с гибкого диска, то вы можете произвести поиск в реестре на наличие l0pht. Давайте проведем несколько поисков так, как это сделает системный администратор после обнаружения, что автоматизированное рабочее место временного сотрудника получает доступ к части ADMIN$ сети
Мы не обратим внимание на такие шаги, как захват (блокировка) данных и выяснение того, какие команды запускались. Вместо этого мы будем беспокоиться о паролях. У нас 600 сотрудников. Мы уже решили считать каждый пароль подвергшимся риску, но если мы будем искать прямое свидетельство того, что внутренний пользователь взламывал пароли, то нам придется найти некоторые ключевые данные. Наиболее очевидной уликой, которая показывает, что L0phtCrack был инсталлирован в системе, является его собственный реестровый ключ.
HKLM\SYSTEM\Software\L0pht Heavy Industries\L0phtcrack 2.5
К сожалению, этого ключа в системе нет. Но есть другие индикаторы того, что L0phtCrack был инсталлирован. Один из ключей относится к драйверу пакета сбора данных, он используется для розыска в путанице LanMan.
HKLM\SYSTEM\CurrentControlSet\Service\NDIS3Pkt
Этот ключ могут устанавливать другие программы, но корректное значение, которое устанавливают эти программы, будет следующим (обратите внимание на этот регистр):
HKLM\SYSTEM\CurrentControlSet\Service\Ndis3pkt
Если этот ключ NDIS3Pkt присутствует, то мы можем начать подозревать, что L0phtCrack был инсталлирован. Коварный сотрудник мог попытаться удалить свидетельства присутствия этого средства, даже путем L0phtCrack. Даже если L0phtCrack был деинсталлирован, то остается следующий ключ регистра.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\L0phtcrack 2.5
Если системный администратор находит это в реестре, то можно быть на 100% уверенным, что L0phtCrack когда-то был инсталлирован в системе. Затем администратор может поискать "недавно использовавшиеся" (MRU) значения в регистре файлов с расширением .lc. Даже если пользователь удалил "sam_pdc.lc" из файловой системы, то ссылки на него по-прежнему могут присутствовать в регистре!
Программа должна запускаться локально. Это вторая версия утилиты, первоначально разработанной Джереми Алисоном в проекте Samba. В отличие от первой версии, для pwdump2 шифрование базы данных SAM с использованием SysKey не является препятствием. Шифрование SysKey было добавлено в Windows NT с целью увеличить безопасность базы данных SAM, но эффективность этого шага спорна, как мы убедимся с помощью pwdump2. Применение pwdump2 показано ниже.
C:\>pwdump2.exe /? Pwdump2 - dump the SAM database. Usage: pwdump2.exe <pid of lsass.exe>
Для получения паролей утилита должна запускаться с полномочиями администратора.
C:\>pwdump2.exe Administrator:500:f1e5c5efbc8cfb7f18136fb05f77a0bf:55c77b761ffa46... Orc:501:cbc501a4d2227783cbc501a4d2227783:f523558e22c95c62a6d6d00c... skycladgirl:1013:aa5536a42ebe131baad3b235b51404ee:db31a1ee00bfbee...
Обычно у вас не было необходимости выяснять идентификатор ID (lsass.exe. Однако вы можете использовать один простой путь, чтобы найти его с помощью команд tlist или pulist и команды find (параметр /i указывает команде find игнорировать регистр).
C:\>tlist/find /i "lsass" 244 LSASS.EXE C:\>pulist/find /i "lsass" LSASS.EXE 244 NT AUTHORITY\SYSTEM C:\>pwdump2.exe 244 Administrator:500:f1e5c5efbc8cfb7f18136fb05f77a0bf:55c77b761ffa46... Orc:501:cbc501a4d2227783cbc501a4d2227783:f523558e22c95c62a6d6d00c... skycladgirl:1013:aa5536a42ebe131baad3b235b51404ee:db31a1ee00bfbee...
Данные, полученные утилитой pwdump2 нельзя напрямую использовать в L0phtCrack, поскольку он не может их читать. Причина в том, что алфавитные символы в шифрованной строке представлены в нижнем регистре; L0phtCrack читает на входе символы верхнего регистра. У John the Ripper нет таких проблем. К счастью, утилита tr (translate characters) может помочь тем, кто хочет использовать утилиту с графическим интерфейсом. Эта утилита работает как под Unix, так и под Cygwin, и была приспособлена под Windows, как часть набора утилит Resource Kit.
[user@hediwg ]$ cat pwdump.out/tr a-z A-Z ADMINISTRATOR:500:F1E5C5EFBC8CFB7F18136FB05F77A0BF:55C77B761FFA46... ORC:501:CBC501A4D2227783CBC501A4D2227783:F523558E22C95C62A6D6D00C... SKYCLADGIRL:1013:AA5536A42EBE131BAAD3B235B51404EE:DB31A1EE00BFBEE...
Утилита ), разработанная Филом Стаубсом, отличается от pwdump возможностью удаленного доступа к подозрительной машине. Существует четная версия pwdump3e, которая шифрует
Usage: PWDUMP3 machineName [outputFile] [userName] C:\>PwDump3.exe victim pwdump.out root C:\>type pwdump.out guest:1001:NO PASSWORD*********************:2DEAC3223C70B24E90F02... wwwadmin:500:NO PASSWORD*********************:9CBD10B05F8E69B62F2... IUSR_WWW01:1003:6E72211CDC51C9F8EB9293C3135F3985:0E2A2DCE3B6ABFBA...
Чтобы pwdump3 работала корректно, вам необходимо установить доступ к общему ресурсу ADMIN$. Утилита устанавливает такое соединение и запрашивает пароль администратора. В противном случае, вы можете установить соединение вручную с использованием команды net.
C:\>net use \\victim\admin$ * /u:Administrator Type the password for \\localhost\admin$: The command completed successfully.
Программа ) делает процесс сбора паролей тривиальным. Это еще одна утилита от Тода Сабина, который обновил созданную Паулем Аштоном программу. Различия между Lsadump2 и pwdump в том, что Lsadump2 выводит действительные текстовые пароли, а не шифрованные строки. Понятно, что это предпочтительнее, пока вы не можете запустить какую либо утилиту взлома паролей. К сожалению, Lsadump2 извлекает пароли, только если они были сохранены в памяти с использованием Local Security Authority (
Для запуска Lsadump2 требуются полномочия администратора. Применение Lsadump2 показано ниже.
C:\>lsadump2.exe Lsadump2 - dump an LSA secret. Usage: lsadump2.exe pid of lsass.exe <secret>
Вам необходимо знать идентификатор ( ) процесса lsass (так же как и для pwdump2 ).
C:\>tlist/find /i "lsass" 244 LSASS.EXE
LSA (PID ) также хранится в реестре в этом ключе:HKLM\SYSTEM\ CurrentControlSet\Control\Lsa\LsaPid.
Эта утилита выводит текст "
aspnet_WP_PASSWORD
61 00 77 00 41 00 39 00 65 00 68 00 68 00 61 00 a.w.A.9.e.h.h.a.
4B 00 38 00 K.8.
Левая колонка содержит ряд шестнадцатеричных цифр, имеющих отношение к службе. Правая колонка содержит ASCII-представление данных. Если на вашей машине под управлением Windows 2000 установлена служба .NET, то, скорее всего, у вас есть пользователь с именем ASPNET. Lsadump2 частично нашел пароль для этого пользователя, показанный жирным шрифтом. Обратите внимание, что Windows сохраняет пароли в формате Unicode, чем и объясняется наличие символов (00) после каждой буквы. К счастью, настройки по умолчанию для этого пользователя не позволяют осуществлять удаленный доступ или выполнение команд.
Средства активного взлома являются последним веянием в деле подбора паролей. Они генерируют большое количество паразитного шума в сети и в отношении атакуемой машины (поэтому их деятельность может долгое время оставаться незамеченной). Непременным условие начала
Другим распространенным шагом перед началом атаки является попытка выяснения времени блокирования доступа после ввода неправильного пароля. Если период блокирования составляет 30 минут после того, как пароль введен неправильно пять раз, вы не захотите терять 29 минут 30 секунд на работу, которая не будет иметь успеха.
Утилита SMBGrind является частью сканера уязвимостей . Это утилита командной строки, которая осуществляет подбор паролей, используя имена и пароли из текстового файла.
Вдобавок к приобретению и установке комплекта , вам понадобится только одно необходимое условие - создать файл для имен пользователей и паролей. Ниже показано применение утилиты.
C:\>smbgrind.exe -i 192.168.209.117 -u users.txt -p pass.txt -v Host address : 192.168.209.117 Userlist : users.txt Passlist : pass.txt Cracking host 192.168.209.117 (*SMBSERVER) Parallel Grinders: 10 Percent complete: 0 Trying: domain\NetAdm administrator Trying: domain\NetAdm Pass!word1 Trying: domain\NetAdm password Trying: domain\NetAdm change%me Trying: administrator administrator Trying: administrator Pass!word1 Trying: administrator password Trying: administrator change%me Percent complete: 75 Trying: guest administrator Trying: guest Pass!word1 Trying: guest password Trying: guest change%me Percent complete: 100 Grinding complete, guessed 0 accounts
SMBGrind - достаточно быстрая программа, но склонная к ошибочным положительным решениям. Программа порождает пакеты со строкой в качестве полезной нагрузки. Следовательно, деятельность программы может быть обнаружена системами IDS в сети, или строку можно обнаружить в журнале событий, ведущемся для фиксирования неудавшихся попыток подбора пароля.
Другим недостатком является невозможность направить атаку против конкретных общих ресурсов. Инструмент, который направлен на взлом ресурсов ADMIN$ или C$, в Windows может поставить под угрозу целостность всей системы, но для хитрого взломщика более привлекательным может оказаться доступ к ресурсу "wwwroot".
Программа Nbaudit по сравнению с SMBGrind позволяет пользователю сканировать интервал IP-адресов. Это прием чаще применяется для поиска опасных уязвимостей, таких как профиль администратора с пустым паролем.
Ниже приведен способ использования программы nbaudit.
usage: nbaudit [-o filename] [-u userlist] [-p passlist] <address>
Параметры userlist и passlist должны быть понятны без разъяснений. Параметр -o используется для задания выходного файла для сообщений о работе nbaudit. Параметр < address > может ввести вас в заблуждение. Он задает адрес или интервал адресов в следующем формате.
Ниже приведен пример вывода программы nbaudit.
[*] --- Checking host: 192.168.1.1
[*] --- Obtaining list of remote NetBIOS names
[*] --- Remote systems name tables:
PRINTSERVER
PRINTSERVER
PRINTSERVER
_MSBROWSE_
HOTEL
HOTEL
HOTEL
HOTEL
[*] --- Attempting to connect with name: *
[*] --- CONNECTED with name: *
[*] --- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
[*] --- Remote server wants us to encrypt, telling it not to
[*] --- Attempting to connect with protocol: LM1.2X002
[*] --- Server time is Mon Jan 28 02:06:08 2002
[*] --- Timezone is UTC-8.0
[*] --- Attempting to establish session
[*] --- Obtained server information:
Server=[*] User=[administrator] Workgroup=[HOTEL] Domain=[HOTEL]
[*]- Obtained listing of shares:
Sharename Type Comment
------- --- ------
IPC IPC: IPC Service (PrintServer)
Printer Printer: Hotel Public Printer
printer$ Disk:
[*] --- This machine has a browse list:
Server Comment
---- ------
PRINTSERVER PrintServer
[*] --- Attempting to access share: \\*\
[*] --- Unable to access
[*] --- Attempting to access share: \\*\printer$
[*] --- WARNING: Able to access share: \\*\printer$
[*] --- Checking write access in: \\*\printer$
[*] --- Attempting to exercise .. bug on: \\*\printer$
[*] --- Attempting to access share: \\*\ADMIN$
[*] --- Unable to access
[*] --- Attempting to access share: \\*\C$
[*] --- Unable to access
[*] --- Attempting to access share: \\*\D$
[*] --- Unable to access
[*] --- Attempting to access share: \\*\ROOT
[*] --- Unable to access
[*] --- Attempting to access share: \\*\WINNT$
[*] --- Unable to access
Nbaudit атакует все обнаруженные общие ресурсы. В этом примере программа успешно соединилась с ресурсом printer$ с нулевым паролем. Если программа осуществляет соединение по имени пользователя и паролю из списка, то на выход выдается информация об удачных соединениях. Это повышает их рейтинг, поскольку дает возможность осуществлять соединение с большим количеством общих ресурсов.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.