Nmap

Cómo ejecutar Nmap sin Root o Sudo

Nmap, abreviatura de Network Mapper, es una de las herramientas de mapeo de puertos y escaneo de red 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.

Cada vez que intente ejecutar funciones tan avanzadas sin privilegios de sudo, la herramienta le indicará 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 los poderes o privilegios del 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.

Hay numerosas capacidades de Linux. Puedes Obtenga más información sobre las capacidades de Linux en las páginas man.

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 root.

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 todos los privilegios de sudo y usar secuencias de comandos para explotar las vulnerabilidades del host local. Por lo tanto, use esta configuración con cuidado o restrinja el acceso de Nmap a grupos específicos.

Las siguientes son capacidades de Linux que otorgamos a Nmap para eliminar la necesidad de permisos de sudo y raíz.

  • CAP_NET_RAW: establecer esta capacidad permite que un proceso acceda y use 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 la administración del firewall de IP, la configuración de la interfaz, establecer el tipo de servicio de TOS, cambiar las tablas de enrutamiento, etc.
  • CAP_NET_BIND_SERVICE: Esta capacidad vincula 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 eiplo que permite que Nmap use estas capacidades independientemente de qué usuario lo ejecute.

Paso 1: Instalar libcap

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

sudo apt-get install libcap2-bin

Instalar Libcap

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

Paso 2: Configure las capacidades de Nmap

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

sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap)

Una vez que configure las capacidades, puede verificar que se han aplicado utilizando el getcap dominio.

Capacidades de obtención de Nmap

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

Paso 3: Ejecute Nmap con el indicador de privilegios

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

nmap --privileged -sS 192.168.0.112

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 configurar la variable ambiental NMAP_PRIVILEGED de forma permanente agregando la línea de exportación a:

  • ~/.xsessionrc: esto funciona con la mayoría de los entornos gráficos/de escritorio y es heredable por shells y terminales.
  • ~/.perfil: 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 escaneo de puertos y descubrimiento de host 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 sudoers. Echa un vistazo a algunos de los mejores escáneres de puertos de Linux que puedes usar.

Experto Geek - Tu Guía en Tendencias Tecnológicas