Эффективное получение хеша паролей в Windows. Часть 2.

Источник: http://www.securitylab.ru/analytics/425179.php?R=1

В предыдущей статье из серии, я в общих словах объяснил, что такое Менеджер безопасности учетных записей (SAM) Windows, и как, получив физический или удаленный доступ к системе достать из SAM хешированные пароли локальных пользователей.

Автор: Bernardo Damele A. G

Подводим итоги по менеджеру учетных записей безопасности

В предыдущей статье из серии, я в общих словах объяснил, что такое Менеджер безопасности учетных записей (SAM) Windows, и как, получив физический или удаленный доступ к системе достать из SAM хешированные пароли локальных пользователей. При удаленном доступе существует три возможных метода получения хешей: метод, основанный на унаследованных возможностях Windows, на теневом копировании томов, и на внедрении в память процесса. Наконец, я сделал сводную электронную таблицу с описанием наиболее часто используемых утилит для дампа хешей из памяти процесса. О некоторых утилитах из этой таблице речь пойдет ниже.

И опять же я хочу повторить следующую мысль: если есть возможность перемещать файлы между вашей машиной и целевой системой, то всегда сначала копируйте файлы SAM и SYSTEM с целевой системы, а затем уже доставайте хеши паролей в оффлайн-режиме.

Тем не менее, простое копирование файлов не гарантирует, что вы получите хеши всех локальных учетных записей. Если все хеши вам получить так и не удалось, то придется слить их из памяти и объединить результаты. Странно, но с подобными случаями я сталкивался не раз, и, хочу подчеркнуть, что речь идет об автономных (не входящих в домен) рабочих станциях Windows.

Рекомендуемые инструменты

Лично я первое место отдаю утилите pwdump7. Утилита работает на всех версиях Windows (как 32-х, так и 64-разрядных), начиная с Windows 2000 и выше. Тем не менее, pwdump7 не может сливать хешированные пароли из памяти, и поэтому некоторые хеши вы можете так и не получить. Для того чтобы ничего не упустить, я всегда использую pwdump7 совместно с gsecdump.Когда на целевой системе мне удалось запустить Metasploit Meterpreter, я пользуюсь пост-эксплойтом smart_hashdump Карлоса Переза (Carlos Perez). Если же smart_hashdump не срабатывает, то я прибегаю к его предыдущей версии – пост-эксплойту hashdump.

Active Directory

Определение из Википедии: Active Directory выступает в роли централизованного хранилища, служащего для управления сетью и безопасностью. В функции службы каталогов входит аутентификация и авторизация всех пользователей внутри домена Windows, создание и выполнение политик безопасности […] Когда пользователь регистрируется в системе на компьютере, входящем в домен, то именно Active Directory проверяет пароль пользователя […]

Информация из определения пригодится вам, после компрометации какой-либо системы из домена Windows. Для того чтобы быстро взять под контроль весь домен, вам нужно получить доступ к корневому контроллеру домена. Если же вы находитесь в домене-потомке, то ваша цель – получить доступ к контроллеру корневого домена леса с правами Администратора предприятия.

В сети существует множество ресурсов, посвященных тому, как повысить свои права в домене, и поэтому в настоящей статье этой темы мы касаться не будем. В блоге pentestmonkey.net приведена вся необходимая информация по вопросу повышения прав.

Также существует вероятность, что администратор использует одни и тот же пароль локального администратора на всех машинах домена. В подобном случае, вам достаточно с помощью keimpx узнать пароль всего на одной машине, и контроллер у вас в руках!

Неважно, каким именно способом вы получили доступ к контроллеру домена (в идеале, подключились к корневому контроллеру домена, так как именно на нем в первую очередь отражаются изменения учетных записей пользователей), самое главное: запустить на контроллере командную строку с правами администратора (локального или доменного).

Файл базы данных NTDS.DIT

Наша цель теперь: получить хешированные пароли доменных пользователей. Пароли, как и практически вся другая информация Active Directory (пользовательские объекты, группы, информация о принадлежности к группам и.т.д.) хранится в бинарном файле %SystemRoot%\ntds\NTDS.DIT.Файл NTDS.DIT заблокирован системой. Для получения этого файла вместе с файлом SYSTEM воспользуйтесь службой теневого копирования томов, как описывалось в предыдущей статье.

Как вариант, используйте функцию создания снимка утилитой ntdsutil, впервые такая функция была представлена в Windows Server 2008. Утилита сделает мгновенный снимок базы данных Active Directory, что позволит вам скопировать ntds.dit и файл SYSTEM. О том, как сделать снимок, написано в статье Microsoft TechNet.

Извлечение хешей из NTDS.DIT

Для извлечения хешей из ntds.dit используйте Windows Password Recovery Tool.Также для извлечения хешей подойдет пакет (ntds_dump_hash.zip), разработанный Ксаба Бартой (Csaba Barta). Функции пакета описаны в статье “Исследование получения хеша паролей в оффлайн-режиме и анализ ntds.dat”. ntds_dump_hash.zip позволяет:

  • извлечь необходимые таблицы из ntds.dit: esedbdumphash
  • получить хеши и дополнительные сведения об учетных записях пользователей: dsdump.py, dsdumphistory.py, dsuserinfo.py.

Скачайте и скомпилируйте пакет:

$ wget http://csababarta.com/downloads/ntds_dump_hash.zip

$ unzip ntds_dump_hash.zip

$ cd libesedb

$ ./configure && make

Воспользуйтесь esedbdumphash, чтобы извлечь таблицу datatable из ntds.dit:

$ cd esedbtools

$ ./esedbdumphash -v -t /tmp/output

$ ls -1 /tmp/output.export/

datatable

Используйте dsdump.py, чтобы получить хеши из таблицы datatable с помощью bootkey (SYSKEY) из куста SYSTEM:

$ cd ../../creddump/

$ chmod +x *.py

$ ./dsuserinfo.py /tmp/output.export/datatable

$ ./dsdump.py /tmp/output.export/datatable —include-locked

—include-disabled > domain_hashes.txt

Как и в случае с автономными рабочими станциями, вы точно так же, используя те же методы, можете слить пароли доменных пользователей, внедрившись в память процесса. Но будьте осторожны при манипуляциях с процессом LSASS на контроллере домена: в худшем случае вам придется перезагружать критически важный сервер.

Информацию обо всех описанных в этой статье утилитах я добавил в электронную таблицу.

Изменения на 4 января 2012г.

В декабре 2011 года, Ксаба Барта изучил структуру NTDS.DIT более подробно, и в результате разработал новый фреймворк под названием NTDSXtract. Фреймворк совместно с утилитой libesedb позволяет извлечь информацию из таблиц базы данных ntds.dit. NTDSXtract и libesedb корректно работают на 64х-разрядных системах.Скачайте и установите последнюю версию libesedb.

Извлеките таблицы из ntds.dit:

$ esedbexport -l /tmp/esedbexport.log -t /tmp/ntds.dit

esedbexport 20111210

Opening file.

Exporting table 1 (MSysObjects) out of 12.

Exporting table 2 (MSysObjectsShadow) out of 12.

Exporting table 3 (MSysUnicodeFixupVer2) out of 12.

Exporting table 4 (datatable) out of 12.

Exporting table 5 (hiddentable) out of 12.

Exporting table 6 (link_table) out of 12.

Exporting table 7 (sdpropcounttable) out of 12.

Exporting table 8 (sdproptable) out of 12.

Exporting table 9 (sd_table) out of 12.

Exporting table 10 (MSysDefrag2) out of 12.

Exporting table 11 (quota_table) out of 12.

Exporting table 12 (quota_rebuild_progress_table) out of 12.

Export completed.

$ ls -1 /tmp/ntds.dit.export/

datatable.3

hiddentable.4

link_table.5

[…]

С помощью NTDSXtract извлеките из таблицы datatable хешированные пароли и историю паролей:

~/NTDSXtract 1.0$ python dsusers.py /tmp/ntds.dit.export/datatable.3

/tmp/ntds.dit.export/link_table.5 —passwordhashes —

passwordhistory —certificates —supplcreds file> —membership > /tmp/ntds.dit.output

Используйте этот небольшой скрипт, чтобы преобразовать результаты работы dsusers.py к более привычному виду, подобному тому, который вы увидите после работы pwdump:

$ python ntdstopwdump.py /tmp/ntds.dit.output

Administrator:500:NO

PASSWORD*********************:09b1708f0ea4832b6d87b0ce07d7764b:::

Guest:501:NO PASSWORD*********************:NO

PASSWORD*********************:::

[…]

Подробнее: http://www.securitylab.ru/analytics/425179.php?R=1

Добавить комментарий