Извлечение хэшкодов из данных SAM
Извлечение хэш-кодов из данных SAM
При наличии привилегий администратора кэш-коды паролей можно легко получить непосредственно из системного реестра в формате, подобном формату файла /etc/passwd UNIX. Для этого можно воспользоваться утилитой pwdump, написанной Джереми Аллисоном (Jeremy Allison). Исходный код этой утилиты и ее откомпилированные версии для Windows можно найти в архивах Internet. Новые версии утилиты LOphtcrack также имеют подобное встроенное средство. Однако ни pwdump, ни LOphtcrack не способны преодолеть расширенное шифрование файла SAM с использованием ключа SYSKEY, появившееся после выпуска сервисного пакета Service Pack 2 (для получения более подробной информации читайте раздел "Контрмеры: Защита От Взлома Пароля" ниже в этой главе).
Более поздняя версия утилиты pwdump, написанная Тоддом Сабином (Todd Sabin) и названная pwdump2 (http://razor.bindview.com/tools/desc/pwdump2_readme.html), может обойти SYSKEY-защиту. Работа pwdump2 основана на внедрении библиотеки DLL (см. выше описание утилиты getadmin), посредством чего она записывает свой код в пространство другого процесса, обладающего более высоким уровнем привилегий. После этого внедренный код вызывает внутренние функции интерфейса API, с помощью которых утилита получает доступ к зашифрованным паролям, минуя необходимость их расшифровки.
В отличие от pwdump утилита pwdump2 должна запускаться в пространстве процессов взламываемой системы. Причем в данном случае по-прежнему требуется процесс с привилегиями администратора, а также библиотека samdump.DLL (которая распространяется вместе с pwdump2).
Привилегированный процесс, используемый утилитой pwdump2,— это процесс lsass.exe подсистемы защиты (Local Security Authority Subsystem — LSASS). Утилита внедряет свой код в адресное пространство и пользовательский контекст процесса lsass.exe. Однако перед запуском утилиты необходимо вручную получить идентификатор процесса (PID — Process ID).
Тодд Сабин написал обновленную версию утилиты pwdump2, после установки которой идентификатор РЮ процесса LSASS можно получить автоматически. Поэтому пользователям обновленной версии выполнять этот шаг вручную не требуется. Однако сейчас мы сосредоточимся на обсуждении основной концепции получения идентификаторов процессов, которую потребуется использовать в тех случаях, когда обновленная версия утилиты pwdump2 отсутствует.
Воспользуемся утилитой pulist из NTRK и, объединив ее с утилитой find, получим идентификатор процесса lsass.exe, как показано в следующем примере.
D:\>pulist | find "lsass"
lsass.exe 50 NT AUTHORITYXSYSTEM
Теперь можно запустить утилиту pwdump2, передав ей в качестве параметра полученный идентификатор PID 50. По умолчанию результаты выводятся на экран (в приведенном выше примере они показаны в сокращенной форме), однако их легко перенаправить в файл. Пом-
ните, что pwdump2 должна выполняться локально на удаленной системе. В противном случае вы получите дамп собственных паролей! Обсуждение методов удаленного запуска программ содержится ниже в разделе "Удаленное Управление И Потайные Ходы" данной главы.
D:\>pwdump2 50
A. Nonymous:1039:e52cac67419a9a22
4a3bl08f3fa6cb6d:8846f7eaee8fbll7..
ACMEPDC1$:1000: 922bb2aaaObc07334d9al
60a08db3a33 : d2ad2ce86a7d90f d62..
Administrator: 500:48b48ef 5635d97b6f 513f
7c84b50c317 : 8a6a398a2d8c84f..
Guest:501:aOel50c75al7008eaad3b435b51404ee:
823893adfad2cda6ela414f..
IUSR_ACMEPDC1:1001:cabf272ad9e04b24af3
f5fe8cOf 05078:e6f 37a4 69ca3f8..
IWAM_ACMEPDC1: 1038:3d5c22dObal7f25c2eb
8a6e701182677:d96bf5d98ec992..
Самая последняя версия утилиты pwdump2 позволяет также извлекать хэш-коды из базы данных активного каталога.