¿Por qué no puedo ejecutar nmap con la opción -O incluso cuando uso sudo?

¿Por qué no puedo ejecutar nmap con la opción -O incluso cuando uso sudo?

Estoy intentando determinar qué puertos están en uso con mi máquina. Encontré en línea un artículo que enumeraba un método de la siguiente manera:

$ sudo nmap -sT -O localhost

Creí que esto me daría una lista de todos los puertos que escuchan paquetes TCP. Sin embargo, cuando ingreso este comando, obtengo el siguiente resultado:

Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:07 EDT
socket troubles in HostOsScan: Permission denied (13)

Si estoy ejecutando como Sudo, ¿cómo puedo carecer de permiso para ejecutar algo en mi máquina?

Intenté ejecutar solo:

$ sudo nmap -sT  localhost

y consiguió:

Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

¡Lo intenté nmapsin argumentos y nuevamente me negaron el permiso!

$ sudo nmap localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-03 11:05 EDT
Couldn't open a raw socket. Error: Permission denied (13)

Al mirar nmap's --helpla opción, veo que -Ohabilita la detección del sistema operativo. ¿Por qué no debería tener permiso para utilizar esta opción, especialmente con sudo? (Nota: actualmente estoy ejecutando Ubuntu 18.04 y 20.04)

(Nota: la respuesta aceptada resuelve mi problema de raíz: al mirar los puertos, pero la respuesta en la sección de comentarios explica por qué tenía problemas con nmap. Aparentemente, debido a que instalé con snap, también necesitaba ejecutar:

 $ sudo snap connect nmap:network-control

antes nmapfuncionaría correctamente

Respuesta1

Si está intentando determinar qué puertos están en uso con su máquina, no necesita escanear. Puedes enumerar los puertos directamente

netstat -nap
ss -nap

Si no eres root, omite la -pbandera. Las LISTENlíneas son las más importantes para usted y puede filtrarlas con awk. Por ejemplo

netstat -nap | awk 'NR==1 || /LISTEN/'

Respuesta2

Primero, "estoy intentando determinar qué puertos están en uso con mi máquina". luego suelte -O ya que no necesita saber cuál es su sistema operativo local.

Quizás necesite más información.

  1. ¿Qué sistema operativo estás ejecutando? Tal vez incluya qué kernel
  2. ¿Está ejecutando un firewall? ¿O Fail2ban o algún servicio de seguridad relacionado?
  3. ¿Puedes instalar una versión anterior? Mi instalación en Nmap v7.80 desde el repositorio de Ubuntu no mostró el mismo problema.
  4. ¿Estás en una máquina virtual, VPS o sistema alojado?
  5. ¿Es esta una instalación limpia con pocos o ningún programa instalado? Si es así, tienes un sistema silencioso, sin mucho ruido, sin mucho que detectar.
  6. ¿Probó otras opciones de Nmap de detección del sistema operativo? --osscan-limit --osscan-guess --max-os-triesENLACE

La falta de puertos TCP detectados dificulta la detección del sistema operativo. Las respuestas a la solicitud TCP es cómo funciona la detección del sistema operativo. Mejor explicado aquíhttps://nmap.org/book/osdetect-methods.html

información relacionada