Cómo ejecutar Nmap sin root o Sudo

Nmap

Nmap, abreviatura de Network Mapper, es una de las herramientas de escaneo de red y portmapper más utilizadas. Si bien es posible ejecutar algunas de las funciones básicas de Nmap como un usuario normal / sin privilegios, el uso de la mayoría de sus funciones avanzadas requiere privilegios de root o sudo.

Por ejemplo, algunas funciones avanzadas de escaneo de puertos como NULL, Stealth SYN Scan y muchas otras solo pueden funcionar con privilegios de root porque Nmap necesita acceder a datos de paquetes sin procesar para brindarle resultados adecuados / utilizables.

Siempre que intente ejecutar estas funciones avanzadas sin privilegios de sudo, la herramienta le mostrará el mensaje «requiere privilegios de root».

Nmap requiere raíz

Desafortunadamente, tener que usar sudo para ejecutar Nmap puede ser problemático, especialmente si no está en el grupo sudo.

Afortunadamente, puede usar las capacidades para ejecutar Nmap sin privilegios de root o sudo.

¿Qué son las capacidades?

Las capacidades de Linux son atributos del kernel de Linux que permiten que los programas y procesos utilicen privilegios que de otro modo estarían reservados para el usuario root.

En esencia, las capacidades de Linux comparten poderes o privilegios de usuario raíz, lo que hace posible que los procesos sin privilegios se ejecuten como privilegiados, lo que significa que no se someten a verificaciones de permisos.

Existen numerosas capacidades de Linux. Usted puede aprenda más sobre las capacidades de Linux en las páginas del manual.

La esencia de esta guía es mostrarle cómo usar tres capacidades: CAP_NET_RAW, CAP_NET_ADMIN y CAP_NET_BIND_SERVICE para otorgar a Nmap los privilegios que necesita para ejecutarse sin verificar los permisos de usuario raíz.

Nota: tenga cuidado al configurar capacidades elevadas, ya que un usuario malintencionado puede explotar el motor de secuencias de comandos de Nmap para obtener acceso a los privilegios completos de sudo y utilizar secuencias de comandos para aprovechar las vulnerabilidades del host local. Por lo tanto, use estas configuraciones con cuidado o restrinja el acceso de Nmap a grupos específicos.

Las siguientes son las capacidades de Linux que otorgamos a Nmap para eliminar la necesidad de permisos de root y sudo.

  • CAP_NET_RAW: establecer esta capacidad permite que un proceso acceda y utilice sockets y datos de paquetes sin procesar.
  • CAP_NET_ADMIN: esta capacidad le da al proceso la capacidad de realizar varias actividades de red como administración de firewall IP, configuración de interfaz, establecer el tipo de servicio de TOS, cambiar tablas de enrutamiento, etc.
  • CAP_NET_BIND_SERVICE: Esta capacidad une un socket a puertos privilegiados de dominio de Internet.

Las capacidades de Linux se asignan en conjuntos de «efectivo», «heredable», «permitido» y «ambiente» para subprocesos y archivos, respectivamente. Para darle a Nmap las capacidades que necesita para ejecutarse sin privilegios de root o sudo, estamos usando eip, lo que permite a Nmap utilizar estas capacidades independientemente de qué usuario lo ejecute.

Paso 1: Instale libcap

Para configurar las capacidades de Linux, debe instalar el paquete libcap. Este paquete le permite utilizar el comando setcap. Usa el comando:

Instalar Libcap

Ahora que tenemos libcap instalado, podemos usar el setcap comando para modificar las capacidades de Linux.

Paso 2: configurar las capacidades de Nmap

Para configurar las capacidades de Nmap que le permitirán ejecutarse sin privilegios de usuario root, ejecute el comando:

Una vez que configure las capacidades, puede verificar que se hayan aplicado mediante el getcap mando.

Capacidades de obtención de Nmap

Nota: es imperativo especificar la ruta completa a la carpeta de instalación de Nmap.

Paso 3: Ejecute Nmap con la bandera de privilegios

Ahora que tenemos estas tres capacidades configuradas, podemos ejecutar Nmap sin privilegios de sudo usando la marca de privilegios para que Nmap sepa que tiene estas capacidades. Para hacer eso, ejecute:

Nmap Noroot

Nota: Tienes que usar el --privileged opción, de lo contrario Nmap no sabrá que tiene estos privilegios.

Si desea ahorrar el tiempo que lleva escribir el nmap --privilegedmarcar cada vez, puede establecer la variable de entorno NMAP_PRIVILEGED de forma permanente agregando la línea de exportación a:

  • ~ / .xsessionrc: esto funciona con la mayoría de entornos gráficos / de escritorio y es heredable por shells y terminales.
  • ~ / .profile: esto funciona para shells que requieren inicio de sesión
  • ~ / .bashrc: funciona para bash
  • ~ / .gnomerc: solo funciona para GNOME

Terminando

La mayoría de los métodos de exploración de puertos y descubrimiento de hosts de Nmap requieren privilegios de root o sudo. Como se discutió en el tutorial, puede anular esta funcionalidad y ejecutar Nmap sin ser root o en el grupo de sudoers. Vea algunos de los mejores escáneres de puertos de Linux que puede usar.