Nmap, сокращение от Network Mapper, является одним из наиболее часто используемых портов и инструменты сетевого сканирования . Хотя некоторые основные функции Nmap можно запускать от имени непривилегированного/обычного пользователя, для использования большинства расширенных функций требуются права root или sudo.
Например, некоторые расширенные функции сканирования портов, такие как NULL, Stealth SYN Scan и многие другие, могут работать только с правами root, поскольку Nmap необходим доступ к необработанным пакетным данным, чтобы дать вам адекватные/полезные результаты.
Каждый раз, когда вы пытаетесь запустить такие расширенные функции без привилегий sudo, инструмент выводит сообщение «требуются права root».
К сожалению, использование sudo для запуска Nmap может быть проблематичным, особенно если вы не состоите в группе sudo.
К счастью, вы можете использовать возможности для запуска Nmap без привилегий root или sudo.
Также читайте: Как использовать Chroot в Linux и исправить сломанную систему
Что такое возможности?
Возможности Linux — это атрибуты ядра Linux, которые позволяют программам и процессам использовать привилегии, в противном случае зарезервированные для пользователя root.
По сути, возможности Linux разделяют полномочия или привилегии пользователя root, что позволяет непривилегированным процессам запускаться как привилегированные, что означает, что они не проходят проверку разрешений.
Существует множество возможностей Linux. Вы можете Узнайте больше о возможностях Linux на страницах руководства.
Суть этого руководства — показать вам, как использовать три возможности: CAP_NET_RAW,
Contents
Что такое возможности?
RVICE, чтобы предоставить Nmap привилегии, необходимые для запуска без проверки прав пользователя root.Примечание. Будьте осторожны при настройке расширенных возможностей, так как злонамеренный пользователь может использовать механизм сценариев Nmap, чтобы получить доступ ко всем привилегиям sudo и использовать сценарии для использования уязвимостей локального хоста. Поэтому используйте эти настройки осторожно или ограничьте доступ Nmap к определенным группам.
Ниже приведены возможности Linux, которые мы предоставляем Nmap, чтобы устранить необходимость в разрешениях sudo и root.
- CAP_NET_RAW: установка этой возможности позволяет процессу получать доступ и использовать необработанные пакетные данные и сокеты.
- CAP_NET_ADMIN: эта возможность дает процессу возможность выполнять различные сетевые действия, такие как администрирование IP-брандмауэра, настройка интерфейса, установка типа службы TOS, изменение таблиц маршрутизации и т. д.
- CAP_NET_BIND_SERVICE: Эта возможность привязывает сокет к привилегированным портам домена Интернета.
Возможности Linux назначаются в наборах «эффективные», «наследуемые», «разрешенные» и «окружающие» для потоков и файлов соответственно. Чтобы предоставить Nmap возможности, необходимые для работы без привилегий root или sudo, мы используем eip
, что позволяет Nmap использовать эти возможности независимо от того, какой пользователь его запускает.
Шаг 1. Установите libcap
Чтобы настроить возможности Linux, вам необходимо установить пакет libcap. Этот пакет позволяет вам использовать команду setcap. Используйте команду:
sudo apt-get install libcap2-bin
Теперь, когда у нас установлена libcap, мы можем использовать команду setcap
для изменения возможностей Linux.
Шаг 2. Установите возможности Nmap
Чтобы настроить возможности Nmap, которые позволят ему работать без привилегий пользователя root, выполните команду:
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap)
После того как вы установили возможности, вы можете убедиться, что они применены, с помощью команды getcap
.
getcap $(which nmap)
Примечание: обязательно укажите полный путь к папке установки Nmap.
Шаг 3. Запустите Nmap с флагом привилегий
Теперь, когда у нас установлены эти три возможности, мы можем запускать Nmap без привилегий sudo, используя флаг привилегий, чтобы сообщить Nmap, что у него есть эти возможности. Для этого выполните:
nmap --privileged -sS 192.168.0.112
Примечание. Вам необходимо использовать опцию --privileged
, иначе Nmap не узнает, что у него есть эти привилегии.
Если вы хотите сэкономить время, необходимое для каждого ввода флага nmap --privileged
, вы можете навсегда установить переменную среды NMAP_PRIVILEGED, добавив строку экспорта в:
- ~/.xsessionrc: работает с большинством настольных/графических сред и наследуется оболочками и терминалами.
- ~/.profile: это работает для оболочек, требующих входа в систему.
- ~/.bashrc: работает для bash
- ~/.gnomerc: работает только для GNOME
Подведение итогов
Большинство мет