Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3483 / 787 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 9:

Средства взлома/подбора паролей

Скорость взлома пароля у 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, так и для NTLM, для любого пользователя с паролем из 15 символов. Версия 3.0 корректно загружает и идентифицирует пароли, состоящие из 15 символов. Если вы вдруг встретите строку похожую на эту,

AAD3B435B51404EEAAD3B435B51404EE:FA95F45CC70B670BD865F3748CA3E9FC:::

то вам стоит исследовать этот "суперпароль". Заметим, что строка пароля для LanMan содержит уже знакомые нам нулевые символы AAD3B435B51404EE, дважды повторяемые LanMan в части пароля (выделено жирным шрифтом).

Другое преимущество L0phtCrack 3.0 состоит в возможности выполнять распределенный взлом. Метод взлома состоит в разделении процедур подбора паролей на блоки. Это очень важно для запуска программы в гетерогенной среде и отслеживания состояния процесса.

Защита вашего пароля

Строгая сетевая и персональная политика безопасности - наилучший способ защиты паролей и файлов паролей. Если недобросовестные пользователи могут перехватить файл паролей или строку пароля для системы Windows, это означает, что пройдет немного времени, и все основные пароли будут вскрыты. Однако утилиты, подобные John the Ripper и L0phtCrack, не поддерживают некоторые символы, которые Windows считает правильными.

Некоторые комбинации, набранные с использованием клавиши ALT и альтернативной клавиатуры, генерируют символы, которые не могут быть проверены имеющимися в настоящее время утилитами взлома. Помните, что для ввода этих комбинаций надо использовать цифры с альтернативной клавиатуры. К примеру, последовательность символов p-a-s-s-w-ALT+242-r-d (password) будет в безопасности до тех пор, пока кто-то не обновит утилиты для взлома паролей. Плюс к этому, дополнительные символы, доступные на альтернативной клавиатуре с помощью комбинации клавиш ALT-nnn, в значительной степени расширяют пространство символов для прямого перебора. Комбинации с клавишей ALT для спецсимволов начинаются со 160 (ALT+160) и заканчиваются на 255.

Удаление шифрованных строк паролей LanMan

Преимущества, которые предоставляют 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 и для строки зашифрованной MD4 различается примерно в 1000 раз! Другими словами, необходимо обработать 69^7 комбинаций для строки LanMan (помните, что на самом деле восьмисимвольный пароль - это пароль из семи символов и еще один символ) и 96^8 комбинаций для строки MD4.

Захват строк паролей Windows

После обзора L0phtCrack в этой лекции понятно, что строки паролей Windows администратор может просматривать также легко, как администратор Unix может просматривать файл /etc/shadow. С другой стороны, файл /etc/shadow представляет собой текстовый файл, который можно просматривать с использованием любого текстового редактора или просто выводя его на экран. База данных SAM для Windows имеет двоичный формат, что не позволяет просматривать ее с такой легкостью. Именно поэтому нам необходим инструмент типа pwdump или lsadump, с помощью которого можно получить текстовую версию базы данных SAM.

Pwdump

Утилита Pwdump2 (http://www.webspan.net/~tas/pwdump2/), созданная Тодом Сабином, может быть использована для извлечения шифрованных паролей в системе Windows. Это утилита командной строки, которая должна запускаться локально на исследуемой системе; однако позднее в этом разделе мы познакомимся с утилитой pwdump3, которая может выполняться удаленно.

Пример из жизни. Взлом системы с помощью L0phtCrack

Вирус-сканер может идентифицировать L0phtCrack. Так происходит потому, что это одновременно полезное средство проверки для системных администраторов, но в то же время является спорным то, что это равноценно полезное средство для злонамеренных пользователей, которые инсталлируют его без разрешения. Вы можете найти файлы с расширением .lc, что является хорошим признаком того, что здесь присутствовал L0phtCrack. Если это средство действительно было инсталлировано в системе, а не запускалось с гибкого диска, то вы можете произвести поиск в реестре на наличие l0pht. Давайте проведем несколько поисков так, как это сделает системный администратор после обнаружения, что автоматизированное рабочее место временного сотрудника получает доступ к части ADMIN$ сети PDC.

Мы не обратим внимание на такие шаги, как захват (блокировка) данных и выяснение того, какие команды запускались. Вместо этого мы будем беспокоиться о паролях. У нас 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 был инсталлирован. Коварный сотрудник мог попытаться удалить свидетельства присутствия этого средства, даже путем дефрагментации жесткого диска и записи на исходное место на диске, чтобы предотвратить нахождение удаленных данных на жестком диске специальными средствами. Однако существует другая запись, которая хранится системой Windows для информации о деинсталляции 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 (PID) для программы 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...