Cómo usar el comando nmap

Cómo usar el comando nmap

Nmap es una poderosa herramienta de escaneo de red para auditorías de seguridad y pruebas de penetración. Es una de las herramientas esenciales que utilizan los administradores de red para solucionar problemas de conectividad de red y escaneo de puertos .

Nmap también puede detectar la dirección Mac, el tipo de sistema operativo , la versión del servicio y mucho más.

Este artículo explica los conceptos básicos de cómo usar el comando  nmap para realizar varias tareas de red.

Instalación de Nmap

Nmap es un programa multiplataforma que se puede instalar en los principales sistemas operativos. Inicialmente se lanzó como una herramienta solo para Linux, y luego se trasladó a otros sistemas como BSD, Windows y macOS.

Si prefiere una GUI sobre la línea de comandos, Nmap también tiene una interfaz gráfica de usuario llamada Zenmap .

Los paquetes binarios oficiales están disponibles para descargar desde la página de descarga de Nmap .

El procedimiento de instalación es sencillo y varía según su sistema operativo.

Instalación de Nmap en Ubuntu y Debian

Nmap está disponible en los repositorios predeterminados de Ubuntu y Debian. Para instalarlo, ejecute:

sudo apt updatesudo apt install nmap

Instalación de Nmap en CentOS y Fedora

En CentOS y otros derivados de Red Hat se ejecutan:

sudo dnf install nmap

Instalación de Nmap en macOS

Los usuarios de macOS pueden instalar Nmap descargando el paquete de instalación «.dmg» del sitio de Nmap o vía Homebrew:

brew install nmap

Instalación de Nmap en Windows

La versión para Windows de Nmap tiene algunas limitaciones y, en general, es un poco más lenta que la versión UNIX.

La opción más sencilla para instalar Nmap en Windows es descargar y ejecutar el archivo exe de autoinstalación.

Puede ejecutar Nmap en Windows desde la línea de comandos o iniciando el programa Zenmap. Para obtener más información sobre cómo usar Nmap en Windows, consulte las instrucciones de uso posteriores a la instalación .

Usando Nmap

Nmap se usa generalmente para auditar la seguridad de la red, el mapeo de la red, identificar puertos abiertos y buscar dispositivos en línea.

La sintaxis simplificada del comando nmap es la siguiente:

nmap [Options] [Target...]

El ejemplo más básico de uso de Nmap es escanear un solo objetivo como usuario estándar sin especificar ninguna opción:

nmap scanme.nmap.org

Cuando se invoca como un usuario no root que no tiene privilegios de paquetes sin procesar, nmap ejecuta un escaneo de conexión TCP. El ( -sT) está activado de forma predeterminada en el modo sin privilegios.

La salida tendrá un aspecto similar a esto, incluida información básica sobre el escaneo y una lista de puertos TCP abiertos y filtrados.

Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
110/tcp  open     pop3
143/tcp  open     imap
443/tcp  open     https
587/tcp  open     submission
993/tcp  open     imaps
995/tcp  open     pop3s
1025/tcp open     NFS-or-IIS
1080/tcp open     socks
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds

La opción de exploración más popular es la exploración TCP SYN ( -sS) que es más rápida que la opción de conexión y funciona con todas las pilas TCP compatibles.

-sSse activa de forma predeterminada cuando nmapse invoca como un usuario con privilegios administrativos:

sudo nmap 192.168.10.121

Para obtener una salida más detallada, use el aumento de la verbosidad con -v-vv:

sudo nmap -vv 192.168.10.121

Para realizar un escaneo UDP, invoque el comando con la opción -sU  ( ) como usuario root:

sudo nmap -sU 192.168.10.121

Para obtener una lista completa de los métodos de escaneo de puertos, visite la página de documentación de Nmap .

Nmap también admite direcciones IPv6. Para especificar un host IPv6 use la opción -6:

sudo nmap -6 fd12:3456:789a:1::1

Especificación de hosts de destino #

Nmap trata todos los argumentos que no son opciones como hosts de destino. Los argumentos se consideran opciones si comienzan con un guion simple o doble ( ---).

La opción más simple es pasar una o más direcciones de destino o nombres de dominio:

nmap 192.168.10.121 host.to.scan

Puede usar la notación CIDR para especificar un rango de red:

nmap 192.168.10.0/24

Para especificar un rango de octetos, use el carácter de guión. Por ejemplo, para escanear 192.168.10.1192.168.11.1192.168.12.1:

nmap 192.168.10-12.1

Otro carácter que puede utilizar para especificar los objetivos es la coma. El siguiente comando apunta a los mismos hosts que el anterior:

nmap 192.168.10,11,12.1

Puede combinar todas las formas:

nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101

Para asegurarse de haber especificado los hosts correctos antes de escanear, use la opción de lista de escaneo ( -sL), que solo enumera los destinos sin ejecutar un escaneo:

nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101

Si desea excluir objetivos que están incluidos en el rango que especificó, use la opción --exclude:

nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12

Especificación y escaneo de puertos

De forma predeterminada, Nmap realiza un análisis rápido de los 1000 puertos más populares. Estos puertos no son los primeros 1000 puertos consecutivos, sino los 1000 puertos más utilizados que van del 1 al 65389.

Para buscar todos los puertos del 1 al 65535, use la opción: -p-

nmap -p- 192.168.10.121

Cada puerto puede estar en uno de los siguientes estados:

  • open: el programa que se ejecuta en el puerto responde a la solicitud.
  • closed : ningún programa se ejecuta en el puerto y el host responde a las solicitudes.
  • filtered: el host no responde a la solicitud.

Los puertos y rangos de puertos se especifican con la opción -p.

Por ejemplo, para escanear solo el puerto 443, usaría el siguiente comando:

nmap -p 443 192.168.10.121

Para especificar más de un puerto, separe los puertos de destino con una coma (,):

nmap -p 80,443 192.168.10.121

Los rangos de puertos se pueden especificar con el símbolo de guión. Por ejemplo, para escanear todos los puertos UDP que van de 1 a 1024, ejecutaría:

sudo nmap -sU -p 1-1024 192.168.10.121

Todo combinado:

nmap -p 1-1024,8080,9000 192.168.10.121

Los puertos también se pueden especificar mediante el nombre del puerto. Por ejemplo, para buscar el puerto 22, ssh, puede usar:

nmap -p ssh 192.168.10.121

Escaneo de ping

Para realizar un escaneo de ping o descubrimiento de host, invoque el comando nmap con la opción  -sn:

sudo nmap -sn 192.168.10.0/24

La opción  -sn le dice a Nmap que solo descubra hosts en línea y que no realice un escaneo de puertos. Esto es útil cuando desea determinar rápidamente cuáles de los hosts especificados están en funcionamiento.

Desactivación de la resolución de nombres DNS

El comportamiento predeterminado de Nmap es realizar una resolución de DNS inverso para cada host descubierto, lo que aumenta el tiempo de escaneo.

Al escanear redes grandes, es una buena idea desactivar la resolución de DNS inverso y acelerar los escaneos. Para hacer eso, invoque el comando con la opción  -n :

sudo nmap -n 192.168.10.0/16

Detección de SO, servicio y versión

Nmap puede detectar el sistema operativo del host remoto utilizando huellas digitales de pila TCP / IP. Para ejecutar la detección del sistema operativo, invoque el comando con la opción  -O:

sudo nmap -O scanme.nmap.org

Si Nmap puede detectar el sistema operativo host, imprimirá algo como a continuación:

...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds

Por lo general, los servicios del sistema escuchan en puertos estándar que son bien conocidos y reservados para ellos. Por ejemplo, si el puerto 22 que corresponde al servicio SSH está abierto, asumirá que se ejecuta un servidor SSH en el host. Sin embargo, no puede estar absolutamente seguro porque las personas pueden ejecutar servicios en los puertos que deseen.

Con detección de servicio y versión, Nmap le mostrará qué programa escucha en el puerto y la versión del programa.

Para buscar servicio y versión, use la opción  -sV:

sudo nmap -sV scanme.nmap.org
...
PORT      STATE    SERVICE      VERSION
19/tcp    filtered chargen
22/tcp    open     ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp    open     http         Apache httpd 2.4.7 ((Ubuntu))
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo   Nping echo
31337/tcp open     tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...

También puede buscar sistemas operativos, versiones y ejecutar traceroute en un comando usando la opción  -A:

sudo nmap -A 192.168.10.121

Salida Nmap

De forma predeterminada, Nmap imprime la información en la salida estándar (stdout).

Si escanea una red grande o necesita la información para un uso posterior, puede guardar la salida en un archivo.

Nmap proporciona varios tipos de salida. Para guardar la salida en formato normal, use la opción -oN seguida del nombre del archivo:

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt

La opción más popular es guardar la salida en formato XML. Para hacerlo, use la opción  -oX:

sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml

Otro formato útil es la salida grepable, que se puede analizar con las herramientas estándar de Unix como grepawkcut. La salida grepable se especifica con la opción -oG:

sudo nmap -sU -p 1-1024 192.168.10.121 -oG output

Motor de secuencias de comandos de Nmap

Una de las características más poderosas de Nmap es su motor de secuencias de comandos. Nmap viene con cientos de scrips y también puede escribir sus propios scrips en el lenguaje Lua.

Puede usar scripts para detectar malware y puertas traseras, realizar ataques de fuerza bruta y más.

Por ejemplo, para verificar si un host determinado está comprometido, puede usar:

nmap -sV --script http-malware-host scanme.nmap.org

Nmap es una herramienta de código abierto que utilizan principalmente los administradores de red para descubrir puertos host y escanear.

Tenga en cuenta que en algunos países, no es legal escanear redes sin autorización.

Si tienes alguna duda o pregunta, no dudes en contactarnos a través de un ticket de soporte con gusto te ayudaremos.