bnk exe что это

[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет

К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.

Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…

Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.

Ну, и зачем тебе права?

Программа может запрашивать права администратора условно в двух случаях:

С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:

Куда это лезет этот 7Zip?

И по результатам исследования выдаем права пользователю на нужный каталог или ветку реестра.

Сложнее, если случай клинический, и так просто выдать права не получится: например, программа требует сильного вмешательства в работу системы вроде установки драйверов. Тогда придется придумывать всякий колхоз, про который речь пойдет в последнем разделе статьи. Пока подробнее освещу второй случай — когда стоит флажок.

Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:

Если разработчик твердо решил требовать права администратора, даже если они не нужны, то обойти это можно малой кровью.

Нет, не будет тебе прав

В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.

Простейшим вариантом работы с этим механизмом будет использование переменных среды.

Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:

Запрос повышение прав.

Если же мы запустим редактор реестра из консоли, предварительно поменяв значение переменной среды __COMPAT_LAYER на:

То запроса UAC не будет, как и административных прав у приложения:

Бесправный редактор реестра.

Этим можно пользоваться, запуская программы батниками или добавляя контекстное меню через реестр. Подробнее читайте в материале How to Run Program without Admin Privileges and to Bypass UAC Prompt?

С конкретным примером такой неприятной программы можно столкнуться при загрузке классификаторов банков из 1С с сайта РБК по ссылке http://cbrates.rbc.ru/bnk/bnk.exe. Если обновление классификаторов отдается на откуп самим пользователям и нет возможности поменять загрузку на bnk.zip (а современные 1С это поддерживают), то приходится придумывать костыли. Ведь bnk.exe — самораспаковывающийся архив, в котором зачем-то прописано «Требовать права администратора».

Поскольку ярлычками тут обойтись не выйдет, ведь 1С сама скачивает файл и запускает его, то придется применять тяжелую артиллерию — Microsoft Application Compatibility Toolkit.

Документация к ПО, как обычно, доступна на официальном сайте, загрузить можно как часть Windows Assessment and Deployment Kit. Сам процесс решения проблемы несложен.

Необходимо поставить утилиту, запустить Compatibility Administrator и создать Application Fix в новой или имеющейся базе данных:

Создаем исправление приложения.

Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).

Читайте также:  при какой температуре сушить вещи в сушилке

Далее необходимо в списке исправлений выбрать RunAsInvoker.

Выбираем нужный фикс.

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

Созданный фикс для bnk.exe.

После этого достаточно будет установить базу данных, щелкнув по ней правой кнопкой и выбрав Install. Теперь пользователи смогут сами грузить классификаторы банков.

Все становится хуже, если приложению действительно нужны права админа. Тогда добавление прав на системные объекты и исправления не помогают.

Ну ладно, держи права

Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.

Ну, посмотрим, что из этого выйдет.

Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.

)

Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.

Зато runas может быть полезен, когда сотрудник знает пароль администратора, но работает под ограниченной учетной записью (по идее так должен делать каждый системный администратор).

Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.

Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».

Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:

Затем сохранить пароль в зашифрованном виде в файл:

И теперь использовать этот файл для неинтерактивной работы:

К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:

Теперь при помощи этого ключа пароль можно зашифровать:

В свое время я использовал для решения подобных задач свой любимый AutoIt, где компилировал скрипт с командой RunAs и радовался… До тех пор, пока не узнал, что AutoIt (особенно старых версий) декомпилируется на раз-два.

Другим интересным вариантом может быть применение назначенных заданий — если создать назначенное задание от админского аккаунта, пользователю для работы будет достаточно его запуска. К сожалению, для интерактивной работы с приложением это решение не подходит.

На свете существует несколько сторонних решений, призванных решить задачу. Остановлюсь на парочке из них.

Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.

Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).

Основное окно программы.

Помимо непосредственно создания ярлыка (и да, запрос UAC тоже можно подавлять), есть и дополнительные функции вроде калькулятора, терминала и удобных настроек политик безопасности. Со всеми возможностями программы читателю предлагается разобраться самостоятельно.

Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.

Читайте также:  что делать если кошка прячет котят в неположенном месте

На первый взгляд все выглядит безопасно, но, к сожалению, код программ закрыт, и насколько можно доверять разработчику — вопрос.

Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.

В целом, решение проверено годами и поколениями отечественных системных администраторов. Но добавлю и альтернативу из-за рубежа.

RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.

Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.

Основное окно программы.

Программа богато документирована на официальном сайте.

У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.

Мне остается только добавить, что это ПО бесплатно только для личного использования.

Но учтите, что из программы, запущенной под административными правами, можно натворить бед. Например, запустить привилегированную командную консоль через диалог Файл — Открыть.

Запускаем cmd.exe прямо из редактора реестра.

Немного защититься помогут политики запрета контекстного меню и прочих диспетчеров задач, часть из которых может настроить AdmiLink. Но в любом случае следует быть осторожным.

А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.

Источник

Пляски с повышением привилегий в Windows. Часть 1: 1С

Всем моим коллегам известно, что криворукие программисты с нетрадиционной ориентацией очень часто добавляют ненужной работы системным администраторам. Порой случается, что не сразу и понятно на какой бы кривой козе объехать тот или иной баг. Сейчас речь пойдет об 1С.

У этой чудо-программы обновление справочника банков реализовано весьма странным образом. Сначала с сайта «РосБизнесКонсалтинг» во временную папку профиля пользователя (который запустил экземпляр приложения 1С), куда-нибудь в «AppData\Local\Temp\xx\tempBik\», скачивается самораспаковывающийся MZP-архив под названием «bnk.exe». Затем этот EXE-шник тупо запускается самой 1С-кой. При этом в атрибутах этого файла зачем-то прописано, что он должен запускаться обязательно с повышением привилегий. Таким образом, обычный непривилегированный пользователь не может обновить справочник банков. Ему для этого необходимо либо выдать права локального администратора, либо сообщить пароль оного для повышения привилегий.

Надо ли объяснять, что ни того, ни другого нормальному одмину делать не захочется? Что делать? Ставить Microsoft Application Compatibility Toolkit и создавать в нём отдельное правило для этого самого «bnk.exe».

Запускаем версию, подходящую под нужную нам архитектуру с из-под администратора с повышением привилегий. Выбираем либо новую, либо уже имеющуюся базу данных. Говорим «Создать новый»→»Application Fix»

Имя-описание придумываем сами. В поле «Program file location» натравливаем утилиту на файл «bnk.exe», скачанный с РБК по ссылке выше. Где (в какой папке) он будет лежать, не играет никакой роли. Об этом подробнее расскажу чуть ниже.

В качестве применяемых фиксов указываем (ставим галку) «Run as Invoker». Поскольку саму утилиту мы запустили с повышенными привилегиями из-под админа, то и bnk.exe потом будет запущен с такими же правами.

Читайте также:  чем является в предложении слово так

На последующих двух шагах мы ничего не выбираем (не ставим нигде никакие галки). Типа, можно слегка обезопасить открытую нами огромную дыру, выставив ограничения на размер файла или на его контрольную сумму. Но поскольку он каждый раз скачивается с сайта и каждый раз будет отличаться как по размеру, так и по содержимому, то такой подход, увы, не применим.

Затем сохраняем где-нибудь нашу базу данных (это обязательно).

После сохранения говорим «Install».

И делаем logoff→logon для требуемого пользователя, поскольку новые правила применяются в момент входа в систему.

Теперь оно работает. Но! Это даже не дыра, это огромная пропасть в безопасности. Любой пользователь теперь может загрузить на сервер произвольный исполняемый файл, поместить его в любую папку, переименовать его в «bnk.exe» и запустить с правами суперпользователя.

А что делать? Другим способом решить поставленную в начале псто задачу за разумное время не получится. Всем сисадминским сообществом дружно шлём лучи поноса 1С-у, Борису и РосБизнесКолсантингу.

Источник

Загрузка классификатора банков офф-лайн

На ПК, где есть сеть Интернет

1. Скачать файл на компьютере, где есть доступ к сети Интернет, по адресу http://cbrates.rbc.ru/bnk/bnk.exe

2. Запустить bnk.exe на компьютере, где есть доступ к сети Интернет, чтобы выгрузить файлы bnkdel.txt, bnkseek.txt, bnkseek_swift.txt, reg.txt

На ПК, где нет сети Интернет, а есть доступ к 1с

3. В обработке указать путь к файлам

4. Далее выбрать регионы для загрузки

5. Загрузить классификатор

Скачать файлы

Специальные предложения

Обновление 13.06.18 10:15

См. также

Загрузка данных из Excel (из табличного документа) в часто используемые объекты: в справочники, документы, их табличные части, в планы видов расчетов, регистры расчета, регистры сведений Промо

Это перепиленная вдоль и поперек версия всем известной обработки «Загрузка из табличного документа» с диска ИТС. Добавлена возможность грузить в документы, виды расчетов, регистры расчета.

25.06.2014 10048 16 Дмитрий74Чел 4

Оптимизация размера изображений из присоединенных файлов УТ 11.4

У нас часто возникала ситуация, когда необходимо настроить обмен с сайтом или с внешней системой, но выгружаемые изображения слишком сильно увеличивали объем сообщений обмена, обмен происходил медленно. Да и для самой базы, операции с не оптимизированными изображениями требуют большего количество ресурсов и места на диске. Потому мы собрали свои наработки в одно расширение.

10.07.2020 8948 6 Neti 4

Модуль обмена с QIWI

Компании, которые используют систему моментальных платежей QIWI, ценят ее за удобство по скорости выплат и для платежей по запросу. Но такие переводы сложны для учета, а при большом объеме проводимых операций отнимают много времени и превращаются в дополнительную головную боль. Мы сотрудничали с компаниями, которые отправляют большое количество платеже на QIWI, и часто слышали боль бухгалтеров о том, как им сложно работать с такими переводами. Поэтому мы автоматизировали выплаты через QIWI в 1С и создали модуль интеграции 1С c API QIWI Wallet и QIWI TopUp.

25.05.2020 8362 0 Neti 10

Пакетное пробитие чеков на Онлайн-кассе при оплатах от физических лиц на расчетный счет

Автоматизация процесса пробития чеков онлайн при поступлениях на расчетный счет от физических лиц. Помогает сократить трудозатраты таким организациям, как МФЦ, Управляющие компании и т.д. Подходит для 1С:Бухгалтерия 3.0 любой версии (базовая, ПРОФ, КОРП). Не изменяет конфигурацию. Конфигурация остается на поддержке (типовая).

Источник

Сказочный портал