Как вывести файл Windows SAM во время работы системы?

14

Я использовал тестовые машины с использованием metasploit и смог получить хэши из файла SAM; Я пытался запустить команды, SYSTEMчтобы получить их, но не могу этого сделать. Что является более переносимым методом для извлечения хэшей из файла SAM?


источник

Ответы:

12

Это не проблема разрешения - Windows сохраняет монопольную блокировку файла SAM (что, насколько я знаю, является стандартным поведением для загруженных кустов реестра), поэтому любой другой процесс не может открыть его.

Однако в последних версиях Windows имеется функция «Теневое копирование тома», предназначенная для создания снимков всего тома, предназначенных только для чтения, в основном для резервного копирования. Блокировки файлов предназначены для обеспечения согласованности данных, поэтому они не нужны, если сделан снимок всей файловой системы. Это означает, что можно создать снимок C:, смонтировать его, скопировать SAMфайл, а затем сбросить снимок.

Как именно это сделать, зависит от вашей версии Windows: XP нужна внешняя программа, Vista и 7 есть vssadmin create shadow, а Server 2008 имеет diskshadowкоманду. На странице Безопасный сброс хэшей с контроллеров домена Live есть более подробная информация об этом процессе, а также инструкции и сценарии.

В качестве альтернативы, существуют такие инструменты, samdumpкоторые злоупотребляют процессом LSASS с разных сторон, чтобы извлечь все хэши паролей непосредственно из памяти. Они могут быть намного быстрее, чем снимки VSS, но имеют более высокий риск сбоя системы.

Наконец, Google выявляет этот фрагмент, полезность которого я не могу оценить, никогда не использовал metasploit самостоятельно:

meterpreter> use priv
meterpreter> hashdump
user1686
источник
В чем разница между файлами SAM \ SYSTEM и подразделами реестра SAM \ SYSTEM (я имею в виду ответ vmarquet )? Содержимое одинаковое?
GordonAitchJay
1
Да, эти файлы на самом деле хранятся в базе данных реестра - файл «SYSTEM» содержит данные HKLM \ SYSTEM. (Я имею в виду, он должен где-то храниться в каком- то файле , не так ли?) Вы можете посмотреть, HKLM\SYSTEM\CurrentControlSet\Control\HiveListкакие подключи соответствуют каким файлам.
user1686
12

Существует более простое решение, которое не требует управления теневыми томами или использования внешних инструментов. Вы можете просто скопировать SAM и SYSTEM с помощью regкоманды, предоставленной Microsoft (протестировано в Windows 7 и Windows Server 2008):

reg save hklm\sam c:\sam
reg save hklm\system c:\system

(последний параметр - это место, куда вы хотите скопировать файл)


Затем вы можете извлечь хэши в системе Linux с помощью пакета samdump2 (доступен в Debian:) apt-get install samdump2:

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
vmarquet
источник
на каких версиях Windows это работает (или, скорее, на каких нет)? пытался сказать с веб-сайта MSDN, но он не перечисляет его (по крайней мере, я его не видел)
n00b
это просто сбрасывает локальные учетные записи. чтобы получить кешированные кредиты домена, вам также необходимо получить БЕЗОПАСНОСТЬ из реестра. затем вы можете запустить: python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -system SYSTEM LOCAL, чтобы сбросить все кэшированные кредиты.
n00b
5

Редактировать: я решил редактировать после многих лет оставления.


Файл SAM SAM Windows заблокирован от копирования / чтения в отличие /etc/shadow от систем Linux. Вместо этого, чтобы обойти эти инструменты будут извлекать хеши из памяти.

Есть способы обойти это, что я расскажу ниже:

Mimikatz

Запустите мимикац с sekurlsa::logonpasswords.

fgdump

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

hashdump

Встроен в метр извлекает хеши из памяти.

реестр

Также возможно извлечь из реестра (если у вас есть SYSTEMдоступ):

  1. reg save hklm\sam %tmp%/sam.reg и reg save hklm\system %tmp%/system.reg
  2. Скопируйте файлы и запустите: samdump2 system sam

Резервные копии

Файл SAM также можно сохранить в резервной папке: C:\Windows\Repair\SAM

Я должен также упомянуть, что инструментам как минимум потребуются Administratorпривилегии; и большинство не получит все хэши, пока не будет получен SYSTEMдоступ.


источник
Может быть, я неправильно понял, но чем инструменты похожи Mimikatzили fgdumpболее переносимы, чем C & A, или отличаются от них? Насколько я могу судить, они все сторонние инструменты, которые не поставляются в комплекте с Windows и должны быть загружены отдельно. Кроме того, для моего собственного любопытства, каков вариант использования утилит для хэширования, когда существуют такие инструменты, как Ophcrack?
Хашим
Можно ли использовать mimikatz для взлома локальных хэшей в отключенной системе через загрузочный диск, или он предназначен только для работы во включенной системе?
Хашим
1

Метод Obscuresec преодолевает ваши трудности локально на любом компьютере с Windows PowerShell 1.0. Оставляет некоторые цели, которые я знаю, но эй, хорошая работа! (спасибо Крис).

Примечание. Для выполнения такой операции всегда требуются права администратора.

Вы могли бы использовать

http://gallery.technet.microsoft.com/scriptcenter/Get-PasswordFile-4bee091d

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

https://github.com/obscuresec/PowerShell/blob/master/Get-PasswordFile

Рекомендуемое чтение:

Для захвата удаленных систем ульев SAM и SYSTEM используйте вышеупомянутое в сочетании с

Марко Ваз
источник
1

Хотелось бы указать дополнительный метод, который здесь не описан, так как в Red Teaming / Penetration Testing много времени недоступны, наиболее очевидные способы недоступны (отрицаются, контролируются Blue Team и т. Д.), И приятно знать все доступные методы.

Один из способов обхода доступа к файлам, с которыми система имеет ручки (не может копировать / удалять как обычно), vssshadow.exeописан выше.

Второй - esentutil.exe.

Точная команда для получения копии файла с дескриптором:

esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit

Это относится к SAM, SYSTEM, SECURITY, NTDS.DIT ​​и т. Д.

PS В esentutl.pyпакете Impacket есть: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

PSS esentutl PoC изображение

dtrizna
источник