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 nmap
comando para realizar varias tareas de red.
Instalación de Nmap
Nmap es un programa multiplataforma que se puede instalar en todos 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 en lugar de 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 su descarga desde la página de descargas 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, ejecuta:
sudo apt update
sudo apt install nmap
Instalación de Nmap en CentOS y Fedora
En CentOS y otros derivados de Red Hat ejecute:
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 a través de Homebrew:
brew install nmap
Instalación de Nmap en Windows
La versión de Windows de Nmap tiene algunas limitaciones y, por lo general, es un poco más lenta que la versión de 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 generalmente se usa 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 nmap
comando es la siguiente:
nmap [Options] [Target...]
El ejemplo más básico del uso de Nmap es escanear un solo objetivo como un usuario estándar sin especificar ninguna opción:
nmap scanme.nmap.org
Cuando se invoca como un usuario no raíz que no tiene privilegios de paquetes sin procesar, nmap
ejecuta un análisis de conexión TCP. El ( -sT
) está activado de forma predeterminada en el modo sin privilegios.
El resultado se verá así, incluida la 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.
-sS
está activado de forma predeterminada cuando nmap
se invoca como un usuario con privilegios administrativos:
sudo nmap 192.168.10.121
Para obtener resultados más detallados, use aumentar la verbosidad con -v
o -vv
:
sudo nmap -vv 192.168.10.121
Para realizar un escaneo UDP, invoque el comando con la -sU
opción ( ) 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 -6
opción:
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.
-
, --
).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.1
, 192.168.11.1
y 192.168.12.1
:
nmap 192.168.10-12.1
Otro carácter que puede usar 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
Puedes combinar todas las formas:
nmap 10.8-10.10,11,12.0/28 192.168.1-2.100,101
Para asegurarse de que especificó los hosts correctos antes de escanear, use la opción de escaneo de lista ( -sL
), que solo enumera los objetivos 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 --exclude
opción:
nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12
Especificación y exploración de puertos
De forma predeterminada, Nmap realiza un escaneo 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, utilice la -p-
opción:
nmap -p- 192.168.10.121
Cada puerto puede estar en uno de los siguientes estados:
- abierto: el programa que se ejecuta en el puerto responde a la solicitud.
- cerrado: no se ejecuta ningún programa en el puerto y el host responde a las solicitudes.
- filtrado: el host no responde a la solicitud.
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 del 1 al 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 utilizando 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 un descubrimiento de host, invoque el nmap
comando con la -sn
opción:
sudo nmap -sn 192.168.10.0/24
La -sn
opción le dice a Nmap que solo descubra hosts en línea y que no haga un escaneo de puertos. Esto es útil cuando desea determinar rápidamente cuál de los hosts especificados está en funcionamiento.
Deshabilitar la resolución de nombres DNS
El comportamiento predeterminado de Nmap es realizar una resolución DNS inversa para cada host descubierto, lo que aumenta el tiempo de exploración.
Al escanear redes grandes, es una buena idea deshabilitar la resolución de DNS inverso y acelerar los escaneos. Para hacer eso, invoque el comando con la -n
opción:
sudo nmap -n 192.168.10.0/16
Sistema operativo, servicio y detección de versión
Nmap puede detectar el sistema operativo del host remoto usando huellas dactilares de pila TCP/IP. Para ejecutar la detección del sistema operativo, invoque el comando con la -O
opción:
sudo nmap -O scanme.nmap.org
Si Nmap puede detectar el sistema operativo host, imprimirá algo como lo siguiente:
...
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
Normalmente, los servicios del sistema escuchan en puertos estándar que son bien conocidos y están reservados para ellos. Por ejemplo, si el puerto 22 que corresponde al servicio SSH está abierto, supondrá que se ejecuta un servidor SSH en el host. Sin embargo, no puede estar absolutamente seguro porque las personas pueden ejecutar servicios en cualquier puerto 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 -sV
opción:
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 SO, versiones y ejecutar traceroute en un solo comando usando la -A
opción:
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 su uso posterior, puede guardar la salida en un archivo.
Nmap proporciona varios tipos de salida. Para guardar la salida en formato normal, use la -oN
opción 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 ello, utilice la -oX
opción:
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 grep
, awk
y cut
. La salida grepable se especifica con la -oG
opción:
sudo nmap -sU -p 1-1024 192.168.10.121 -oG output
Motor de secuencias de comandos Nmap
Una de las características más poderosas de Nmap es su motor de secuencias de comandos. Nmap se envía con cientos de scripts , y también puede escribir sus propios scripts en el idioma 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
Conclusión
Nmap es una herramienta de código abierto que utilizan principalmente los administradores de red para descubrir hosts y escanear puertos.
Tenga en cuenta que en algunos países no es legal escanear redes sin autorización.
Si tiene alguna pregunta o comentario, por favor deje un comentario a continuación.
0 Comentarios