Повышение локальных привилегий

  • Автор темы Admin

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
7,248
Реакции
34
Всем привет! Хочу поделиться с вами на мой взгляд интересным исследованием. Данная статья будет полезна для специалистов по информационной безопасности разных направлений.
Итак, давайте, по порядку. Концепция повышение привилегий, которая будет рассматриваться здесь неновая и базируется на правах доступа пользователей к файлам и каталогам, т.е. разрешения на запись, удаления и пр. Интересен будет сам метод, с помощью которого мы будем повышаться.
Конечно же для того, чтобы наша эскалация от простого пользователя до системы получилась необходимы определенные условия:

  • Установленное программное обеспечение «Java»;
  • Права на полный доступ пользователям компьютерной системы к каталогу с установленной программой.
Что касается первого пункта, то из него нам интересен раздел в системном реестре с параметрами, который создает «Java» при инсталляции, но об этом позже.
По второму пункту, все не так однозначно, но все же иногда администраторы создают пользователю каталог с установленной программой прямо в корне диска «C:\» (например «Python», «CygWin» и т.п.), ну и туда же относится «Java», для того чтобы пользователь мог сам обновлять компоненты программы и т.п. В еще более редких случаях, администраторы дают разрешения пользователю на директорию установки по умолчанию («C:\Program Files\Java\jre< версия >»).
Не для кого не является секретом, что права доступа (чтение, запись, удаления) на каталог, созданный в корневой директории диска, имеют все пользователи компьютерной системы, хотя в свойствах файлов, содержащихся в каталогах эта информация отображается по-иному.

11a4c10ea5a58d55a6146.jpg


Но если мы посмотрим сторонними утилитами (например «AccessEnum» или «accesschk» входящими в состав «SysinternalsSuite»), то мы увидим реальную картину.

4a3e1f4dec4302123aeb2.jpg


Иногда, для поиска директорий, имеющих права на запись для пользователей, довольно-таки полезно использовать данные утилиты, так как некоторое программное обеспечение предоставляет полный доступ к своим файлам для всех пользователей операционной системы.
Теперь, когда мы разобрались с условиями, будем переходить к сути.
И так самым важным элементом для реализации повышения является запись в ветку реестра «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\» - центр специальных возможностей. «Java» создает в этой ветке раздел с именем «Oracle_JavaAccessBridge» с параметрами, представленными на рисунке ниже, тем самым регистрируя свои компоненты в центре специальных возможностей.

c0823901b683c8163758f.jpg


Обратите внимание на два параметра: «Profile» и «StartExe». Запись значения «<HCIModel><Accommodation type="mild vision"/><Accommodation type="severe vision"/><Accommodation type="mild cognitive"/><Accommodation type="severe cognitive"/></HCIModel>» в параметре «Profile» добавляет во вкладку «Панель управления\Специальные возможности\Центр специальных возможностей\Использование компьютера без дисплея» управляемый «check box», при активации которого будет выполнен запуск исполняемого файла, путь к которому прописан в параметре «StartExe».

d2d1415e2998690f79d2d.jpg


Так как файл «jabswitch.exe» находится в незащищенной директории мы можем его заменить на наш (например «cmd.exe»), переименовав его на «jabswitch». Давайте посмотрим, что происходит при активации «Enable Java Access Bridge».
В «Windows 7» запустим «procmon», поставим галочку в «check box» и нажмем «применить». Также включение и отключение «Java Access Bridge» можно осуществлять через реестр «HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Accessibility», добавив или удалив параметры «Configuration» и значения «oracle_javaaccessbridge».
Теперь посмотри список процессов.

e9fb2c7da7a23ba86d5b4.jpg


На данный момент процесс «jabswitch.exe» был исполнен от имени пользователя. Что же нам нужно сделать, что бы он запустился от системы? Необходимо отключить java bridge для того, чтобы наше исследование не закончилось раньше времени. Для начала, давайте отталкиваться, от специальных возможностей, как вы знаете, они доступны и могу работать для всех пользователей, в том числе и «Система». Например, когда вы еще не зашли в учетную запись, а «экранной клавиатурой» вы можете пользоваться.

449f715cbe280842b0585.jpg


Вспомните атаку с подменой файл «osk.exe» или «sethc.exe» на «cmd.exe» в каталоге «…\system32», или создание одноименных разделов для этих файлов в реестр «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options» и параметром «debugger» «c:\windows\system32\cmd.exe». В последствии все эти процессы работают от «Системы». Любопытно то, что наши «специальные возможности» будут работать от «Системы» не только перед входом в учетную запись, но и когда у нас появляется окно «UAC». Попробуйте запустить приложение «narrator.exe» - «экранный диктор». Теперь откройте любое приложения от имени «Администратора», когда появится окно «UAC» сдвиньте его мышью в сторону, вы увидите, что приложение «экранный диктор» также активно в контексте «Системы». Тоже самое с «экранной клавиатурой» и «экранной лупой».

26b3c88e31491b9f3143a.jpg


Итак, мы почти у цели! Давайте снова посмотрим, что у нас происходит на уровне процессов. Запустите «procmon», включите «экранную клавиатуру» или «экранный диктор» и запустите любое приложение от «Администратора» (вызовете окно «UAC»), также вы можете просто заблокировать экран «Win+l» или «ctrl+alt+del». Теперь вернемся обратно в пользовательское пространство и посмотрим какие процессы исполнялись.

15ad1daea2addb4f8240f.jpg


На иллюстрации видно, как системный процесс «atbroker.exe» (менеджер перехода между пространствами пользователей) также запускает «экранный диктор». Если совсем сухо и без дополнительных деталей, то при запуске одного из приложений «специальных возможностей» процесс «winlogon.exe» в ветке реестра «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\» создает раздел «Session1» или «Session2» (зависит от учетной записи пользователя ) и записывает в него параметр «Configuration» с названием раздела из «ATs», а при переходе из одного пространства в другое «atbroker.exe» считывает из раздела «Session<№>» значения и запускает приложение.
Давайте теперь активируем java bridge и повторим процедуру.

44dc0c53dde441bb74b01.jpg


Посмотрите на раздел «Session<№>».

2d2c5e3e637dce72df0e2.jpg


Ну вот, теперь остается заменить файл «jabswitch.exe» на наш.

1754a1b22d00088a4e424.jpg


Что же касается операционной системы «Windows 10», то здесь все еще проще. Вам будет достаточно включить java bridge и вызвать окно «UAC».

27352e11f539fc2fb9e80.jpg


https://vimeo.com/565330482

Давайте вернемся к разделу реестра «специальных возможностей», это тоже будет интересно. Если у вас есть права «Администратора» или вы имеете права вносить изменения в системный реестр, то с помощью ветки «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs\» можно реализовать автозагрузку своей любимой программы. Все что нужно, это создать свой раздел и записать в него параметр «StartEXE» = «путь к вашему файлу», а в ветке реестра «HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion» создать раздел «Accessibility» и параметр «Configuration» и указать имя раздела из реестра «специальных возможностей».

9d9cae2634adb1363fdea.jpg


f06df985e21ff2ffc3a2f.jpg


И тогда после входа в учетную запись наша программа исполнится, а как только пользователь вызовет окно «UAC» или заблокирует экран программа запустится с привилегиями «Системы».
Ну вот и все!
Конечно же это не «Zero Day», но все же надеюсь моя статья и исследование были интересными.
Помните, когда у вас на компьютерной системе права обычного пользователя и вы видите, что в корне диска (или в другом не защищенном месте) установлена «Java», смело повышайте свои привилегии!

Автор: petrpetrov
 

Members, viewing this thread

Сейчас на форуме нет ни одного пользователя.