Linux pkexec что это

PolicyKit — создание собственных правил (продолжение)

Использование инструментов командной строки

Установленный в системе PolicyKit уже имеет некоторые встроенные инструменты командной строки. В дистрибутиве Fedora 21 их четыре.

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

pkttyagent — позволяет выполнить текстовую авторизацию таким приложениям, которые запускаются без пользовательского графического окружения, например, ssh.

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

И, конечно, нельзя не упомянуть команду man polkit.

PolicyKit — это служба

PolicyKit запускается и работает как служба операционной системы polkitd. Эта служба запускается от имени пользователя polkitd, который является обычным пользователем системы с ограниченными правами. Демон polkitd всегда стартует с правами суперпользователя и сразу после старта понижает права до обычного пользователя.

Каждый раз, когда приложение требует участия PolicyKit, демон polkitd запускается автоматически. Это обеспечивается средствами dbus-daemon или systemd. Поэтому пользователю никогда не приходится запускать polkitd вручную.

При каждом старте демона файлы .rules перечитываются заново. Поэтому изменения, внесенные в правила, начинают работать сразу, без перезапуска демона, сеанса пользователя или всей системы целиком.

Практика

Все примеры, приведенные ниже, проверены и работают. Их можно просто скопировать в файл правил. По крайней мере, это верно для Fedora 21.

При создании своих правил нужно иметь в виду, что, поскольку они являются программами, ошибки в синтаксисе недопустимы. Если ошибки все же имеются, то ничего фатального не произойдет, система не будет испорчена. Но правило работать не будет. Лучшее, что можно сделать в такой ситуации, это проверить, правильно ли указаны действие, группа пользователя и правило. Особенно это относится к названию действия. В разных дистрибутивах Linux, даже в разных версиях одного дистрибутива названия действий могут несколько отличаться от приведенных здесь. Также не лишним будет убедиться, что все нужные скобки и кавычки находятся на своих местах. В общем, как и всегда в программировании, здесь требуются внимательность и аккуратность.

Возможность подключение локальных дисков для обычного пользователя

В системе имеются два SATA жестких диска. На первом установлена операционная система, второй используется для хранения данных. Второй жесткий диск виден в файловом менеджере, но не смонтирован.

Проблема заключается в том, что каждый раз при попытке прочитать (подключить) второй SATA жесткий диск средствами файлового менеджера появляется окно агента PolicyKit с требованием ввести пароль суперпользователя. Между тем, любые USB накопители монтируются автоматически и никакой пароль при этом вводить не требуется.

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

Наиболее вероятным кандидатом для этого является правило org.freedesktop.udisks2.filesystem-mount-system. Видно, что правила по умолчанию требуют прав суперпользователя.

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

Для записи нового правила можно воспользоваться приведенным выше шаблоном. Результат будет выглядеть так:

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

Файл с данным правилом следует поместить в каталог /etc/polkit-1/rules.d. Желательно, чтобы он был прочитан и обработан службой polkitd раньше, чем файлы правил, которые уже имеются в дистрибутиве. Для этого можно присвоить ему имя, например, 30-udisk2.rules.

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

Читайте также:  Параметры запуска dota 2 linux

Предоставление обычному пользователю прав на обновление системы и установку/удаление программ

В дистрибутиве Fedora имеется программа с графическим интерфейсом, позволяющая обновлять операционную систему и устанавливать или удалять программы — Yum Extender. Эти действия являются системными и требуют прав суперпользователя. Поэтому запуск Yum Extender сопровождается предложением ввести соответствующий пароль. На персональном компьютере это выглядит архаизмом и создает лишние трудности. Тем более, что установка программного обеспечения в современных дистрибутивах Linux производится как правило из проверенных источников, репозиториев. В отличие от некоторых других систем. Поэтому есть смысл разрешить данный класс операций непривилегированному пользователю.

Ниже представлен фрагмент файла /usr/share/polkit-1/actions/dk.yumex.backend.policy. Для упрощения в нем удалена декларация.

Видно, что правила по умолчанию для запуска Yum Extender либо запрещают запуск программы, либо требуют прав суперпользователя. Для создания правила, позволяющего пользователю из группы red обновлять систему и устанавливать/удалять программы с помощью Yum Extender, снова можно воспользоваться тем же шаблоном. Результат будет таким:

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

Данный файл с правилом можно оформить как /etc/polkit-1/rules.d/31-yumex-backend.rules. Правило начинает работать немедленно.

Разрешение на управление виртуальными машинами с помощью virt-manager

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

Примечание. Обратите внимание: в последнем примере вместо метода match() использован оператор эквивалентности ==. В данном случае это просто разные способы сделать одно и то же. Оба варианта работают.

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

PolicyKit позволяет повысить удобство работы в операционной системе при сохранении достаточной степени ее защищенности от необдуманного или случайного вмешательства пользователя. Небольшую подстройку этой программной части вполне может выполнить практически любой. Самое главное здесь — соблюдать разумный баланс между теми самыми удобством и защищенностью.

Источник

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

Ettercap_curses и Ettercap-pkexec (графические оболочки Ettercap)

Описание Ettercap_curses и Ettercap-pkexec

Ettercap_curses

Ettercap_curses — это графический интерфейс Ettercap на основе Ncurses.

Интерфейс curses является очень простым и интуитивным. Он управляется с помощью меню. Каждый флаг или функция могут быть изменены/вызваны через верхнее меню. Все пользовательские сообщения печатаются внизу окна. Если вы хотите увидеть старые сообщения, вы можете пролистать буфер окна нажатием стрелок ВВЕРХ, ВНИЗ и кнопками Page up, Page down. Средняя часть используется для отображения информации или диалогов для пользователя.

Меню могут быть открыты нажатием соответствующих горячих клавиш. Горячие клавиши для меню представлены начальными буквами в верхнем регистре (к примеру ‘S’ для Sniffing (Сниффинга), ‘T’ для Targets (Целей)). Функции внутри меню могут быть вызваны нажатием горячих клавиш, которые изображы с правой стороны рядом с именем функции. Префикс горячих клавиш ‘C-‘ используется для объединения с клавишей CTRL (к примеру, ‘C-f’ означает CTRL+f).

Вы можете переключать фокус между объектами экрана нажатием кнопки TAB или кликая по ним мышкой (если вы запустили ettercap внутри xterm). События мыши поддерживаются только через xterm. Вы можете использовать мышь для выбора объектов, открытия меню, выбора функций, прокручивания ползунка для прокручивания окон и т.д.

При открытие нескольких окон в средней части, они будут перекрываться. Используйте кнопку TAB для переключения между ними. Используйте CTRL+Q для закрытия окна в фокусе.

Вы также можете использовать CTRL+Q для закрытия диалогового окна ввода, если вы хотите отменить запрошенный ввод (к примеру, вы выбрали неверную функцию и вы хотите вернуться назад).

Чтобы получить быструю помощь по сочетаниям клавиш вы можете использовать в конкретном окне клавишу SPACE (ПРОБЕЛ). Появится окно помощи со списком комбинаций, которые могут быть использованы. Если окно не появилось, значит сочетания клавиш недоступны.

Ettercap-pkexec

ettercap-pkexec — это графическая пусковая установка для ettercap на основе pkexec.

Этот лончер зависит от policykit-1 и пакетов меню, он просто оборачивает бинарники ettercap скриптами действия pkexec, которые обычно определены в /usr/share/polkit-/actions/org.pkexec.ettercap.policy, позволяя пользователям напрямую вызывать ettercap из рабочего стола или лончера меню с привилегиями рута.

Читайте также:  Asus a8v deluxe windows

Доступные команды точно такие же, какие вы можете найти на странице руководства ettercap: https://kali.tools/?p=830#man

Автор: Gianfranco Costamagna (LocutusOfBorg), Alberto Ornaghi (ALoR), Marco Valleri (NaGA)

Справка по Ettercap_curses и Ettercap-pkexec

Смотрите справку Ettercap, а также руководство ниже.

Руководство по Ettercap_curses и Ettercap-pkexec

Меню при запуске

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

После выбора метод (из файла, unified или bridged) первый экран больше не будет доступен. Для возврата к нему перезапустите ettercap.

Давайте проанализируем каждое меню на начальном экране:

File (Файл)

Open… (Открыть)

Открывает файл и анализирует его. Вся доступная для живого сниффинга функциональность на месте, за исключением отправки или перенаправления пакетов (атаки mitm и т.п…).

Dump to file… (Сбросить в файл)

Весь сниффленный трафик из живого захвата будет сброшен в этот файл. Фильтры, но не цели, влияют на этот файл, поскольку все пакеты полученные в pcap будут сохранены.

Единственный способ не сохранять конкретный пакет — это установить свойства фильтра pcap (смотри ниже).

Exit (Выход)

Выйти из ettercap возвратиться в командную строку.

Sniff

Unified sniffing… (Унифицированный сниффинг)

Выбрав эту функцию у вас попросят выбрать сетевой интерфейс для использования под сниффинг. В окне ввода предлагается первый поднятый и запущенный интерфейс. Для объяснения, что такое унифицированный сниффинг, смотрите документацию по ettercap.

ПОДСКАЗКА: если вы используете горячую клавишу ‘u’, следующий шаг будет пропущен и автоматически выбран интерфейс по умолчанию.

Bridged sniffing… (Сниффинг мостом)

После выбора, будут использоваться два интерфейса, вы войдёте в режим Мостового сниффинга (Bridged sniffing). Для объяснения, что такое мостовой сниффинг, обратитесь к документации по ettercap.

Set pcap filter… (Установить фильтр pcap)

Здесь вы можете вставить фильтр для процесса захвата в формате tcpdump.

ВАЖНО: если вы выполняете атаку mitm, помните, что если ettercap не видет пакет он НЕ переправляет его. Так что будьте уверены, что вы делаете, установив pcap фильтр.

Options (Опции)

Unoffensive (Безобидный)

Этот пункт включает/отключает флаг безобидности. Звёздочка ‘*’ означает, что опция включена. В противном случае опции отключена.

Promisc mode (Неразборчивый режим)

Включает/отключает неразборчивый режим для живого захвата на сетевом интерфейсе. Звёздочка означает то же, что и для Безобидности.

Set netmask (Установить маску)

Использовать указанную сетевую маску вместо ассоциированный с текущим интерфейсом. Эта опция полезна если у вас сетевая карта с ассоциированной сетевой маской класса B, а вы хотите просканировать (с arp скнированием) только C класс.

Меню сниффинга и спуфинга

Сразу после того, как вы выбрали оффлайн сниффинг или живой захват, верхнее меню изменяется и вы можете начать делать интересные вещи…

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

Start (Старт)

Start sniffing (Начать сниффинг)

Начинает процесс сниффинга, который зависит от того, что вы выбрали при запуске (живой или из файла)

Stop sniffing (Остановить сниффинг)

Остановить поток сниффинга.

Возвращает в ваш любимый шэлл 😉

Targets (Цели)

Current Targets (Текущие цели)

Показывает список хостов в каждой ЦЕЛИ. Вы можете выборочно удалить хосты выделяя их и нажимая ‘d’ или добавить новые хосты нажимая ‘a’. Для переключения между этими двумя списками используйте кнопки СТРЕЛОК.

Select TARGET(s) (Выбрать ЦЕЛЬ(И))

Позволяет вам выбрать Выбрать ЦЕЛЬ(И) как объяснено в документации по ettercap. Синтаксис такой же как и для описания их в командной строке.

Protocol… (Протокол)

Вы можете выбрать для сниффинга только TCP, только UDP или оба (ALL).

Reverse matching (Обратить соответствие)

Меняет на противоположное соответствующее пакета. Это эквивалентно НЕ перед указанием цели.

Wipe Targets (Стереть цели)

Восстанавливает для обоих ЦЕЛЕЙ до ANY/ANY/ANY (ЛЮБАЯ/ЛЮБАЯ/ЛЮБАЯ)

Hosts (Хостаы)

Hosts list (Список хостов)

Отображает список выявленных хостов посредством ARP сканирования из пассивных профилей. Этот список используется атаками MITM когда выбраны ЛЮБЫЕ цели, поэтому если вы хотите исключить хост из этой атаки, просто удалить его из этого списка.

Вы можете удалить хост из списка нажатием ‘d’, добавить к ЦЕЛИ1 нажатием ‘1’ или добавить к ЦЕЛИ2 нажатием ‘2’.

Scan for hosts (Сканировать хосты)

Выполнить ARP сканирование сетевой маски если ЦЕЛИ не выбраны. Если ЦЕЛИ были указаны, то будут просканированы только эти хосты.

Читайте также:  Windows 10 launch date

Load from file… (Загрузить из файла)

Загрузить список хостов из предварительного сохранённого командой «save to file» или созданного вручную файла.

Save to file… (Сохранить в файл)

Сохранить текущие хосты в файл.

View (Просмотр)

Connections (Подключения)

Отобразить список подключений. Для просмотра детальной информации о подключении нажмите ‘d’ или нажмите ‘k’ для его убийства. Для просмотра трафика определённого подключения выберите его и нажмите ENTER. Когда отобразиться двухпанельный интерфейс, вы можете перемещать фокус клавишами стрелок. Нажмите ‘j’ для переключения между объединённой и разделённой визуализацией. Нажмите ‘k’ для убийства подключения. Нажмите ‘y’ для интерактивной инъекции и ‘Y’ для инъекции файла. Помните, что это важно, которая панель сейчас в фокусе, поскольку инъекционные данные будут отправлены по этому адресу.

СОВЕТ: подключения, отмеченные звёздочкой, содержат информацию об аккаунте(аккаунтах).

Profiles (Профили)

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

Вы можете преобразовать список пассивных профилей в список хостов нажатием ‘c’. Для чистки удалённых хостов нажмите ‘l’. Для чистки локальных хостов нажмите ‘r’. Вы также можете сбросить содержимое профиля в файл нажав ‘d’; этот файл дампа может быть открыт с помощью etterlog.

СОВЕТ: профили, помеченные звёздочкой, содержат информацию об аккаунте(аккаунтах).

Statistics (Статистика)

Отображает некоторую статистику о процессе сниффинга.

Resolve IP addresses (Преобразовать IP адреса)

Включает DNS преобразование всех прослушиваемых IP адресов. ВНИМАНИЕ, это крайне замедляет ettercap. Между прочем, пассивное dns преобразование всегда активно. Оно перехватывает dns ответы и сохраняет их в кэше. Если ip адрес присутствует в этом кэше, он будут автоматически преобразован. Это бесплатное dns преобразование… 😉

Visualization method (Метод визуализации)

Смена метода визуализации перехваченных данных. Доступны методы: ascii, hex, ebcdic, text, html.

Visualization regex (Регулярные выражения визуализации)

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

Set the WiFi key (Установить WiFi ключ)

Установить WiFi ключ для использования в расшифровании зашифрованных WiFi пакетов. Информацию о формате ключа смотрите в ettercap.

Mitm (Человек-по-середине)

[…] Пункты меню отображаются для каждого типа атаки. Просто выберите желаемую атаку и заполните аргументы, которые она спросит. Вы можете активировать больше чем одну атаку за раз.

Stop mitm attack(s) (Остановить атаку(и) mitm).

Остановить все активные в настоящее время атаки mitm.

Filters (Фильтры)

Load a filter… (Загрузить фильтр)

Загрузить предварительно скомпилированный файл фильтра. Перед тем, как быть загруженным, файл должен быть скомпилирован с помощью etterfilter.

Stop filtering (Остановить фильтрацию)

Выгрузить фильтр и остановить фильтрацию подключений.

Logging (Запись)

Log all packets and infos… (Записывать все пакеты и информацию)

По переданному имени файла будут созданы для файла: filename.eci (для информации о хостах) и filename.ecp (для всех интересных пакетов). Это то же самое что и опция -L.

Log only infos… (Записывать только информацию)

Это использует для сниффинга только информации о хостах (то же самое что и опция -l).

Stop logging info (Остановить запись информации)

Да ладно… это говорящее название.

Log user messages… (Записать пользовательские сообщения)

Запишет все сообщения, которые появляются в нижнем окне (то же что и опция -m).

Compressed file (Сжать файл)

Звёздочка показывает будет ли файл для записи сжат.

Plugins (Плагины)

Manage the plugins (Управление плагинами)

Открывает окно управления плагинами. Вы можете выбрать плагин для активации его нажатием ‘enter’. Узнать уже активные плагины можно по символу [1] вместо символа [0]. Если вы выберите активный плагин, то он будет отключён.

Load a plugin… (Загрузить плагин)

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

Примеры запуска Ettercap_curses и Ettercap-pkexec

Для использования графического интерфейса ncurses вам нужно:

  • скомпилировать ettercap с поддержкой ncurses (очевидно)
  • запустить его с флагом -C

Достаточно указать флаг -C, но если вы хотите, то можете передать другие флаги, которые автоматически настроят интерфейс ncurses. Вы сможете переписать их используя меню для изменения опций.

Запуск ettercap с привилегиями рута и интерфейсом GTK2:

Установка Ettercap_curses и Ettercap-pkexec

Эти программы является частью пакета Ettercap — они поставляется вместе с ним. Для получения этих программ достаточно установить Ettercap. Инструкция по установке Ettercap: https://kali.tools/?p=830#install_ettercap

Скриншоты Ettercap_curses и Ettercap-pkexec

Ettercap_curses

Ettercap-pkexec

Инструкции по Ettercap_curses и Ettercap-pkexec

Ссылки на инструкции будут добавлены позже.

Источник

Оцените статью