Blog. Just Blog

Как определить уровень UAC своего процесса

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Образ мышления: Assembler | Автор: ManHunter
Как известно, контроль учетных записей (UAC) является основополагающим компонентом общей концепции безопасности Microsoft. UAC помогает уменьшить воздействие вредоносных программ и защищать данные от несанкционированного доступа. Если для работы ваших приложений понадобится доступ к защищенным объектам, то система выдаст соответствующее предупреждение с запросом о предоставлении таких прав. Особенно это актуально для системы Win10 и выше, где Проводник всегда запускается в контексте безопасности обычного пользователя и, соответственно, все запущенные в нем процессы также будут иметь обычные права. Для повышения прав приложения можно запускать от имени Администратора.

Для того, чтобы определить, как именно было запущено ваше приложение, то есть в нормальном режиме или от имени Администратора, есть специальные функции. Но сперва, как обычно, не известные FASM константы.
  1. TOKEN_QUERY_SOURCE = 0x0010
  2. TOKEN_QUERY        = 8h
  3. TokenElevationType = 18
  4.  
  5. TokenElevationTypeDefault = 1
  6. TokenElevationTypeFull    = 2
  7. TokenElevationTypeLimited = 3
Теперь осталось открыть токен текущего процесса при помощи функции OpenProcessToken и затем через функцию GetTokenInformation получить из него информацию об уровне доступа:
  1.         invoke  GetCurrentProcess
  2.         invoke  OpenProcessToken,eax,TOKEN_QUERY,hToken
  3.         invoke  GetTokenInformation,[hToken],TokenElevationType,tet,4,dSize
На выходе получим одно из возможных значений: TokenElevationTypeDefault - UAC совсем отключен или процесс запущен от обычного пользователя, не являющегося Администратором. TokenElevationTypeFull - родительский процесс имеет права обычного пользователя, но дочерний процесс был запущен от имени Администратора. TokenElevationTypeLimited - как родительский процесс, так и запущенный, оба имеют права обычного пользователя.

В приложении программа с исходным текстом, которая выводит состояние прав запущенного процесса.

Пример программы с исходным текстом (FASM)Пример программы с исходным текстом (FASM)

Is.UAC.elevated.Demo.zip (1,563 bytes)


Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 309 | Комментариев: 6

Комментарии

Отзывы посетителей сайта о статье
ManHunter (08.08.2022 в 23:55):
Я имею в виду легальные способы, типа какой-то условной invoke SetUACMode,FALSE. А всякие сплойты, понятно дело, есть и будут.
pawel97 (08.08.2022 в 23:51):
ManHunter, на win7 да, как описали. А вот на win8 и выше или через политику, или реестр EnableLUA с 1 на 0. Потому что там через системные отключится только надоедалка, в остальном uac останется работать. На разных журналах хакерах были статейки про обход uac, через всякие windows update, так что насчёт невозможности программно отключить тоже вопросы
NetZR0ver (08.08.2022 в 17:00):
Да, именно так. Вопрос был про "программное отключение". О.К. Спасибо)
Просто у меня две "оси": Linux - для сёрфинга, и Windows 7 - в автономном режиме. И постоянно выскакивающее окошко UAC уже давно задолбало.
ManHunter (08.08.2022 в 16:51):
Конечно можно. Зайти под админом, Пуск - Настройки - Панель управления - Параметры управления учетными записями, а там выкрутить бегунок на минималку. Если вопрос был про программное отключение, то ответ нет, иначе любая малвара отключала бы UAC самостоятельно и никакой пользы от ограничений не было.
NetZR0ver (08.08.2022 в 16:14):
День добрый. Можно ли вообще отключить этот самый надоедливый UAC?

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2022
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 2 (0.0043 сек.) / Память: 5 Mb
Наверх