Nmap significa «Network Mapper«, es una de las mejores utilidades de código abierto disponibles en la actualidad para el descubrimiento de redes y la auditoría de seguridad.
Nmap envía paquetes y analiza la respuesta que obtiene para descubrir hosts y servicios en una red informática. Es uno de los escáneres de puertos más utilizados en la actualidad para ayudarle a encontrar puertos abiertos y detectar riesgos de seguridad en una red.
Este es el primer paso para que un atacante obtenga información sobre la red de objetivos e identifique una forma potencial de lanzar un ataque. Un atacante conocerá los servicios que se ejecutan en los puertos abiertos junto con su versión, lo que ayuda a determinar las vulnerabilidades de la versión correspondiente.
Se le conoce popularmente como la navaja suiza del administrador de sistemas debido a su capacidad para servir a múltiples propósitos: sondeo de redes informáticas, descubrimiento de hosts, escaneado de puertos, detección de vulnerabilidades, detección de sistemas operativos, detección de versiones, etc. Su utilidad multiplataforma.
Si no le gusta trabajar en la interfaz de línea de comandos, también está disponible en una GUI – Zenmap, la GUI oficial de Nmap Security Scanner.
Instalación
Demostraremos la instalación de Nmap en dos distribuciones de Linux de uso común – CentOS y Ubuntu. Está disponible como paquete en el repositorio de la mayoría de las distribuciones de Linux.
Instalación de Nmap en CentOS 6/7.x
- Para instalar el paquete Nmap en CentOS, ejecute el comando:
sudo yum install nmap
$sudo yum install nmap
Plugins cargados: fastestmirror, security
Configuración del proceso de instalación
Cargando velocidades de espejo desde el archivo de host en caché
* base: mirror.vcu.edu
* centos-sclo-rh: mirror.cc.columbia.edu
* centos-sclo-sclo: mirror.rackspace.com
* epel: reflector.westga.edu
* extras: centos5.zswap.net
* actualizaciones: mirror.jaleco.com
Resolviendo dependencias
-->
Ejecución de la comprobación de transacciones
--->
Se instalará el paquete nmap.x86_64 2:5.51-6.el6
-->
Resolución de dependencias finalizada
Dependencias resueltas
======================================================================================================================================================================================================================================================
Paquete Arch Versión Tamaño del repositorio
======================================================================================================================================================================================================================================================
Instalando:
nmap x86_64 2:5.51-6.el6 base 2.8 M
Resumen de la transacción
======================================================================================================================================================================================================================================================
Instalar 1 paquete(s)
Tamaño total de la descarga: 2,8 M
Tamaño instalado: 9.7 M
¿Está bien [sí/no]:
- El sistema le pedirá que confirme y complete la instalación. Escriba
y
y pulse Intro
¿Está bien [sí/no]: y
Descargando paquetes:
nmap-5.51-6.el6.x86_64.rpm | 2.8 MB 00:00
Ejecutando rpm_check_debug
Ejecutando Prueba de Transacción
Test de Transacción Exitoso
Ejecutando Transacción
Instalando : 2:nmap-5.51-6.el6.x86_64 1/1
Verificando : 2:nmap-5.51-6.el6.x86_64 1/1
Instalado:
nmap.x86_64 2:5.51-6.el6
¡Completando!
$
- Compruebe si se ha instalado correctamente y la versión instalada, ejecute el siguiente comando.
$nmap -version
Nmap versión 5.51 ( http://nmap.org )
Instalación de Nmap en CentOS 8.x
- Utilizaremos DNF para instalar.
$sudo dnf install nmap -y
Última comprobación de caducidad de metadatos: hace 0:58:54 el Vie 18 Sep 2020 07:04:54 PM UTC.
Dependencias resueltas.
======================================================================================================================================================================================================================================================
Paquete Arquitectura Versión Tamaño del repositorio
======================================================================================================================================================================================================================================================
Instalando:
nmap x86_64 2:7.70-5.el8 AppStream 5.8 M
Instalando dependencias:
nmap-ncat x86_64 2:7.70-5.el8 AppStream 237 k
Resumen de transacciones
======================================================================================================================================================================================================================================================
Instalar 2 paquetes
Tamaño total de la descarga: 6,1 M
Tamaño instalado: 25 M
Descarga de paquetes:
(1/2): nmap-ncat-7.70-5.el8.x86_64.rpm 669 kB/s | 237 kB 00:00
(2/2): nmap-7.70-5.el8.x86_64.rpm 9,2 MB/s | 5,8 MB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 8,0 MB/s | 6,1 MB 00:00
Ejecutando comprobación de transacción
Comprobación de transacción realizada con éxito.
Ejecutando prueba de transacción
Test de transacción realizado con éxito.
Ejecutando transacción
Preparando : 1/1
Instalando : nmap-ncat-2:7.70-5.el8.x86_64 1/2
Ejecutando scriptlet: nmap-ncat-2:7.70-5.el8.x86_64 1/2
Instalando : nmap-2:7.70-5.el8.x86_64 2/2
Ejecutando scriptlet: nmap-2:7.70-5.el8.x86_64 2/2
Verificando : nmap-2:7.70-5.el8.x86_64 1/2
Verificando : nmap-ncat-2:7.70-5.el8.x86_64 2/2
Instalado:
nmap-2:7.70-5.el8.x86_64 nmap-ncat-2:7.70-5.el8.x86_64
¡Completado!
$
Con la opción -y
, DNF/YUM instalará el paquete especificado sin pedir confirmación.
DNF(Dandified Yum) es el nuevo gestor de paquetes de RHEL/CentOS 8 que puede utilizarse para instalar paquetes. Es la versión de próxima generación de YUM( Yellowdog Updater Modified) y pretende ser un sustituto de YUM en los sistemas basados en RPM.
- Y, para verificar la instalación.
$nmap -version
Nmap versión 7.70 ( https://nmap.org )
Plataforma: x86_64-redhat-linux-gnu
Compilado con: liblua-5.3.3 openssl-1.1.1 libpcre-8.42 libpcap-1.9.0-PRE-GIT nmap-libdnet-1.12 ipv6
Compilado sin: libssh2 libz
Motores nsock disponibles: epoll poll select
Ubuntu
- Ejecute el siguiente comando para asegurarse de que todos los paquetes están actualizados en el servidor Ubuntu.
sudo apt-get update
- Ejecute el siguiente comando para instalar
$sudo apt-get install nmap -y
Lectura de las listas de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
El siguiente paquete se instaló automáticamente y ya no es necesario:
libnuma1
Utilice 'sudo apt autoremove' para eliminarlo.
Se instalarán los siguientes paquetes adicionales
libblas3 liblinear4 liblua5.3-0 lua-lpeg nmap-common
Paquetes sugeridos:
liblinear-tools liblinear-dev ncat ndiff zenmap
Se instalarán los siguientes paquetes NUEVOS
libblas3 liblinear4 liblua5.3-0 lua-lpeg nmap nmap-common
0 actualizados, 6 recién instalados, 0 a eliminar y 30 no actualizados.
Se necesitan 5669 kB de archivos.
Tras esta operación, se utilizarán 26,8 MB de espacio adicional en disco.
Obtener:1 http://us-west1.gce.archive.ubuntu.com/ubuntu focal/main amd64 libblas3 amd64 3.9.0-1build1 [142 kB]
Get:2 http://us-west1.gce.archive.ubuntu.com/ubuntu focal/universe amd64 liblinear4 amd64 2.3.0 dfsg-3build1 [41.7 kB]
Get:3 http://us-west1.gce.archive.ubuntu.com/ubuntu focal/main amd64 liblua5.3-0 amd64 5.3.3-1.1ubuntu2 [116 kB]
Get:4 http://us-west1.gce.archive.ubuntu.com/ubuntu focal/universe amd64 lua-lpeg amd64 1.0.2-1 [31.4 kB]
Get:5 http://us-west1.gce.archive.ubuntu.com/ubuntu focal/universe amd64 nmap-common all 7.80 dfsg1-2build1 [3676 kB]
Get:6 http://us-west1.gce.archive.ubuntu.com/ubuntu focal/universo amd64 nmap amd64 7.80 dfsg1-2build1 [1662 kB]
Fetched 5669 kB in 1s (7683 kB/s)
Seleccionando paquete libblas3:amd64 previamente no seleccionado.
(Leyendo base de datos ... 62831 archivos y directorios instalados actualmente)
Preparándose para desempaquetar .../0-libblas3_3.9.0-1build1_amd64.deb ...
Desempaquetando libblas3:amd64 (3.9.0-1build1) ...
Seleccionando el paquete liblinear4:amd64 no seleccionado previamente.
Preparando para desempaquetar .../1-liblinear4_2.3.0 dfsg-3build1_amd64.deb ...
Desempaquetando liblinear4:amd64 (2.3.0 dfsg-3build1) ...
Seleccionando el paquete no seleccionado previamente liblua5.3-0:amd64.
Preparándose para desempaquetar .../2-liblua5.3-0_5.3.3-1.1ubuntu2_amd64.deb ...
Desempaquetando liblua5.3-0:amd64 (5.3.3-1.1ubuntu2) ...
Seleccionando el paquete no seleccionado previamente lua-lpeg:amd64.
Preparándose para desempaquetar .../3-lua-lpeg_1.0.2-1_amd64.deb ...
Desempaquetando lua-lpeg:amd64 (1.0.2-1) ...
Seleccionando paquete no seleccionado previamente nmap-common.
Preparando para desempaquetar .../4-nmap-common_7.80 dfsg1-2build1_all.deb ...
Desempaquetando nmap-common (7.80 dfsg1-2build1) ...
Seleccionando el paquete nmap previamente no seleccionado.
Preparando para desempaquetar .../5-nmap_7.80 dfsg1-2build1_amd64.deb ...
Desempaquetando nmap (7.80 dfsg1-2build1) ...
Instalando lua-lpeg:amd64 (1.0.2-1) ...
Instalando libblas3:amd64 (3.9.0-1build1) ...
update-alternatives: usando /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 para proporcionar /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) en modo automático
Configurando nmap-common (7.80 dfsg1-2build1) ...
Instalando liblua5.3-0:amd64 (5.3.3-1.1ubuntu2) ...
Instalando liblinear4:amd64 (2.3.0 dfsg-3build1) ...
Configurando nmap (7.80 dfsg1-2build1) ...
Procesando triggers para man-db (2.9.1-1) ...
Procesando triggers para libc-bin (2.31-0ubuntu9) ...
- Y, ejecute
-version
para asegurarse de que está instalado.
$nmap -version
Nmap versión 7.80 ( https://nmap.org )
Plataforma: x86_64-pc-linux-gnu
Compilado con: liblua-5.3.3 openssl-1.1.1d nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compilado sin:
Motores nsock disponibles: epoll poll select
Ejemplo de uso de Nmap en tiempo real
Veremos algunos ejemplos que ilustran el uso del comando Nmap.
Escanear puertos abiertos
Sintaxis para nmap
nmap [Tipo(s) de escaneo] [Opciones] {especificación del objetivo}
La especificación del objetivo puede ser un nombre de host, una dirección IP, un nombre de dominio, una red, una subred, etc.
Escanear un dominio
nmap scanme.nmap.org
$nmap scanme.nmap.org
Iniciando Nmap 7.80 ( https://nmap.org ) en 2020-09-18 20:14 UTC
Informe de escaneo Nmap para scanme.nmap.org (45.33.32.156)
El host está activo (latencia de 0,025s).
Otras direcciones para scanme.nmap.org (no escaneadas): 2600:3c01::f03c:91ff:fe18:bb2f
No mostradas: 995 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp abierto ssh
25/tcp smtp filtrado
80/tcp abierto http
9929/tcp abierto nping-echo
31337/tcp abierto Elite
Nmap realizado: 1 dirección IP (1 host up) escaneada en 1,73 segundos
Sin banderas, Nmap escaneará, por defecto –
- Escaneará los 1000 puertos más utilizados (la lista de estos puertos puede modificarse en el archivonmap-services ).
- Nmapcon intentará una conexión TCP SYN a los puertos cuando se ejecute con un usuario privilegiado.
- Envía solicitudes de eco ICMP a los hosts objetivo para confirmar si está vivo o no.
- Realizará una búsqueda inversa DNS para obtener el nombre del host.
Podemos ver cuatro puertos abiertos, un puerto filtrado y 995 puertos cerrados en la salida mostrada arriba. Un puerto que no puede ser determinado por Nmap si está cerrado o abierto, lo que puede deberse a un cortafuegos, es filtrado.
En el ejemplo mostrado arriba, escaneamos scanme.nmap.com, que se ha autorizado a sí mismo para ser escaneado.
nmap -F scanme.nmap.org
También puede utilizar la opción de escaneo rápido -F
para escanear sólo los 100 puertos más utilizados de cada protocolo que se le pida escanear.
Escanear dirección IP
nmap 192.168.0.7
$nmap 192.168.0.7
Iniciando Nmap 7.80 ( https://nmap.org ) en 2020-09-18 20:12 UTC
Informe de escaneo Nmap para server-1.geekflare.com/es (192.168.0.7)
El host está activo (latencia de 0,034s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Nmap realizado: 1 dirección IP (1 host up) escaneada en 0,62 segundos
Escanear una subred
nmap 192.168.0.0/24
$nmap 192.168.0.0/24
Iniciando Nmap 7.80 ( https://nmap.org ) en 2020-09-18 20:15 UTC
Informe de escaneo Nmap para server-1.geekflare.com/es (192.168.0.7)
El host está activo (latencia de 0,044s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Informe de escaneado Nmap para server-2.geekflare.com/es (192.168.0.8)
El host está activo (latencia de 0,046s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Informe de escaneado Nmap para server-3.geekflare.com/es (192.168.0.9)
El host está activo (latencia de 0,043s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Informe de escaneado Nmap para server-4.geekflare.com/es (192.168.0.10)
El host está activo (latencia de 0,044s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Nmap realizado: 256 direcciones IP (4 hosts arriba) escaneadas en 4,67 segundos
Escaneando múltiples hosts
Escanear múltiples hosts es fácil
- Añada los nombres de host o las direcciones IP que desee escanear uno tras otro en una fila
nmap 192.168.0.1 192.168.0.3 192.168.0.4
- Utilice coma
El comando anterior también podría escribirse como sigue para evitar mencionar de nuevo la dirección IP
nmap 192.168.0.1,3,4
- Utilice guiones (-) para especificar el rango de direcciones IP como se muestra a continuación
nmap 192.168.0.1-20
El comando anterior escaneará los primeros veinte hosts de la subred.
- Utilice comodines para escanear toda la subred –
nmap 192.168.0.*
El comando anterior escaneará las 256 direcciones IP de la subred.
- Leer hosts de un archivo
Puede especificar todos los hosts que desea escanear en un archivo y utilizar el siguiente comando –
nmap -iL /tmp/archivo host
Ejemplo de archivo de hosts –
cat /tmp/archivohost
192.168.0.1,2,4
scanme.nmap.org
10.0.0-255.1-254
- Excluir hosts de la búsqueda
Si lo desea, puede excluir algunos hosts de una búsqueda en grupo.
nmap 192.168.0.* --exclude 192.168.0.2
nmap 192.168.0.1-40 --excluir 192.168.0.5,6,7
También puede excluir hosts de su búsqueda utilizando el indicador -excludefile
nmap 192.168.0.* --excludefile /tmp/hosts.txt
Selección de puertos de Nmap
Para escanear puertos específicos de un sistema, en lugar de los 1000 puertos más utilizados por defecto, puede utilizar el parámetro -p
.
nmap -p 22,80,443 192.168.0.2-50
$nmap -p 22,80,443 192.168.0.2-50
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 20:18 UTC
Informe de escaneo Nmap para server-1.geekflare.com/es (192.168.0.7)
El host está activo (latencia de 0,00018s).
PUERTO ESTADO SERVICIO
22/tcp abierto ssh
80/tcp cerrado http
443/tcp cerrado https
Informe de escaneado Nmap para server-2.geekflare.com/es (192.168.0.8)
El host está activo (latencia de 0,00094s).
PUERTO ESTADO SERVICIO
22/tcp abierto ssh
80/tcp cerrado http
443/tcp cerrado https
Informe de escaneado Nmap para server-3.geekflare.com/es (192.168.0.9)
El host está activo (latencia de 0,00092s).
PUERTO ESTADO SERVICIO
22/tcp abierto ssh
80/tcp cerrado http
443/tcp cerrado https
Informe de escaneado Nmap para server-4.geekflare.com/es (192.168.0.10)
El host está activo (latencia de 0,00089s).
PUERTO ESTADO SERVICIO
22/tcp abierto ssh
80/tcp cerrado http
443/tcp cerrado https
Nmap realizado: 49 direcciones IP (4 hosts arriba) escaneadas en 1,65 segundos
El comando anterior escaneará sólo los puertos 22, 80 y 443 en las direcciones IP mencionadas.
nmap -p 1-500 192.168.0.2
El comando anterior escaneará los puertos 1 a 500 en el host mencionado.
nmap -p- 192.168.0.2
El uso de -p-
escaneará los 65535 puertos.
Redirigir la salida a un archivo
Por defecto, Nmap imprime la salida en el terminal, pero cuando se escanea una red grande, es mejor guardar los resultados en un archivo para un mejor análisis. Puede guardar los resultados de sus escaneos en diferentes formatos de archivo.
Formato de salida normal [-oN]
El modo normal le dará la salida tal y como la ve en su pantalla.
nmap -oN /tmp/scanResult.txt 192.168.0.0/24
Formato de salida XML [-oX]
Podemos exportar los resultados en formato XML. Es uno de los formatos de archivo más utilizados, ya que la mayoría de los lenguajes de programación disponen de bibliotecas para el análisis sintáctico de XML.
nmap -oX /tmp/scanResult.xml 192.168.0.0/24
Formato de salida Grepable [-oG]
Obtenemos la salida en un formato muy fácil de utilizar con el comando grep. La salida podría alimentarse posteriormente a utilidades de línea de comandos como – awk, grep, sed para realizar operaciones adicionales según sea necesario.
nmap -oG /tmp/scanResult.txt 192.168.0.0/24
Salida de script kiddie [-oS]
Utiliza el «leet», sustituyendo las letras por sus representaciones numéricas visualmente parecidas. Este formato de salida no es útil para ningún caso en particular y se incluyó sólo como broma.
nmap -oS /tmp/scanResult scanme.nmap.org
$nmap -oS /tmp/scanResult scanme.nmap.org
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 20:34 UTC
Informe de escaneo Nmap para scanme.nmap.org (45.33.32.156)
El host está activo (latencia de 0,053s).
Otras direcciones para scanme.nmap.org (no escaneadas): 2600:3c01::f03c:91ff:fe18:bb2f
No mostradas: 995 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp abierto ssh
25/tcp smtp filtrado
80/tcp abierto http
9929/tcp abierto nping-echo
31337/tcp abierto Elite
Nmap realizado: 1 dirección IP (1 host up) escaneada en 2,12 segundos
$
$cat /tmp/scanResult
$tart|Ng Nmap 7.70 ( httpz://NmAp.oRg ) aT 2020-09-18 20:34 UTc
Nmap $can rEp0rt f0r Scanm3.nmap.0rg (45.33.32.156)
H0st iS up (0.053s lat3ncy).
Otras direcciones para $canm3.nmap.0Rg (no scanN3D): 2600:3c01::f03c:91ff:fE18:bb2f
No se muestra: 995 clOs3d p0rtS
P0rT $TAT3 S3RV|C3
22/TCp op3n Ssh
25/tCp f1ltEr3d $mtp
80/tCp op3n http
9929/tcp Open Nping-ech0
31337/tCP 0pen 3litE
Nmap d0n3: 1 Ip addRe$s (1 hO$t up) $CANN3d In 2.12 s3C0nDz
Varios tipos de escaneo Nmap
Escaneo de conexión TCP [-sT]
Esta es la forma básica de escaneo TCP y no implica sigilo. Intenta establecer una conexión completa con los puertos del rango especificado con un intercambio completo dehandshake de tres vías (SYN -> SYN/ACK -> ACK). Una conexión exitosa indica un puerto abierto.
Este es el tipo de escaneo por defecto que utiliza Nmap cuando lo ejecuta un usuario sin privilegios.
nmap -sT 192.168.0.1
$nmap -sT 192.168.0.7
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 19:52 UTC
Informe de escaneo Nmap para server-1.geekflare.com/es (192.168.0.7)
El host está activo (latencia de 0,00042s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Nmap realizado: 1 dirección IP (1 host up) escaneada en 0,09 segundos
Escaneo TCP SYN [-sS]
También conocido como escaneo semiabierto, es más sigiloso que el escaneo de conexión TCP ya que nunca establece una conexión completa. El escaneo TCP SYNes el tipo de escaneo por defecto cuando se ejecuta como usuario con privilegios, y los usuarios sin privilegios no tendrán permiso para ejecutar este escaneo ya que requiere privilegios para el socket raw / paquete raw.
nmap -sS 192.168.0.1
$sudo nmap -sS 192.168.0.7
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 19:51 UTC
Informe de escaneo Nmap para server-1.geekflare.com/es (192.168.0.7)
El host está activo (latencia de 0,00022s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Nmap realizado: 1 dirección IP (1 host up) escaneada en 1,50 segundos
$nmap -sS 192.168.0.1
Ha solicitado un tipo de escaneo que requiere privilegios de root.
¡RENUNCIE!
Como pudimos ver en el ejemplo anterior, no se pudo ejecutar un escaneo SYN con usuarios sin privilegios.
Escaneo UDP [-sU]
Si no se especifica ninguna bandera, por defecto, Nmap escanea los puertos TCP. Para escanear puertos UDP debemos utilizar la bandera -sU
, como se muestra a continuación.
$sudo nmap -sU 192.168.0.8
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 19:44 UTC
Informe de escaneo Nmap para server-2.geekflare.com/es (192.168.0.8)
El host está activo (latencia de 0,00036s).
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
5355/udp abierto|filtrado llmnr
Nmap realizado: 1 dirección IP (1 host up) escaneada en 999,27 segundos
Escaneo Ping [-sn]
Esto es muy útil cuando sólo necesita saber si el host está vivo o no y no necesita información sobre los puertos abiertos en los hosts.
A menudo se denomina «barrido ping». En versiones anteriores de Nmap, -sn se conocía como -sP.
nmap -sn 192.168.1.0/24
$nmap -sn 192.168.1.0/24
Iniciando Nmap 7.70 ( https://nmap.org ) a las 2020-09-18 19:39 UTC
Informe de escaneo Nmap para server-7.geekflare.com/es (192.168.1.2)
El host está activo (latencia de 0,033 s).
Informe de escaneado Nmap para server-10.geekflare.com/es (192.168.1.3)
El host está activo (latencia de 0,035 s).
Informe de escaneado Nmap para server-13.geekflare.com/es (192.168.1.4)
El host está activo (latencia de 0,10 s).
Nmap realizado: 256 direcciones IP (3 hosts up) escaneadas en 9,85 segundos
En el ejemplo anterior, podemos ver que, en la subred de destino especificada, de 256 direcciones IP escaneadas, sólo tres hosts están activos.
nmap -sn -n -v 192.168.0.0/24 -oG - | grep -iv down
–sn
–>
Ping scan.
–n
–>
Ignora la resolución DNS y acelera el escaneo.
–v
–>
Añade verbose para obtener más información del escaneo.
–oG
–>
Proporciona la salida en formato grepable.
– –>
Hyphen redirige la salida grepable a la salida estándar, que luego se canaliza a grep.
–iv
–>
Ignora las líneas que tengan la palabra ‘down’.
$nmap -sn -n -v 192.168.0.0/24 -oG - | grep -iv down
# Nmap 7.70 scan initiated Fri Sep 18 19:40:17 2020 as: nmap -sn -n -v -oG - 192.168.0.0/24
# Puertos escaneados TCP(0;) UDP(0;) SCTP(0;) PROTOCOLS(0;)
Host: 192.168.0.7 () Estado: Arriba
Host: 192.168.0.8 () Estado: Up
Host: 192.168.0.9 () Estado: Arriba
Host: 192.168.0.10 () Estado: Up
# Nmap done at Fri Sep 18 19:40:20 2020 -- 256 direcciones IP (4 hosts up) scanned in 2.91 seconds
Pudimos ver que sólo cuatro hosts están vivos de las 256 direcciones IP escaneadas en la subred.
Detección de versiones de SO y servicio
Escaneado del SO
Además del escaneado de puertos y el descubrimiento de hosts, Nmap también puede proporcionar información sobre el sistema operativo subyacente. Nmap cuenta con una de las mayores bases de datos de huellas dactilares de sistemas operativos y puede identificar sistemas operativos analizando su respuesta a sondas TCP/IP.
Puede habilitarse con la bandera -O
. A continuación se muestra el comando
nmap -O localhost
$sudo nmap -O localhost
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 19:32 UTC
Informe de escaneo de Nmap para localhost (127.0.0.1)
El host está activo (latencia de 0,000012s).
Otras direcciones para localhost (no escaneadas): ::1
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO
22/tcp ssh abierto
Tipo de dispositivo: propósito general
En ejecución: Linux 3.X
CPE del SO: cpe:/o:linux:linux_kernel:3
Detalles del SO: Linux 3.7 - 3.10
Distancia de red: 0 saltos
Detección de SO realizada. Por favor, informe de cualquier resultado incorrecto en https://nmap.org/submit/ .
Nmap realizado: 1 dirección IP (1 host up) escaneada en 3,89 segundos
Escaneado de versiones
Nmap también ayuda a escanear servicios en ejecución y su información de versión de los puertos abiertos. Esto es útil para escanear servicios que se ejecutan en versiones vulnerables y que podrían actualizarse para mitigar el riesgo.
Puede habilitarse con -sV
nmap -sV localhost
$sudo nmap -sV localhost
Iniciando Nmap 7.70 ( https://nmap.org ) a las 2020-09-18 19:35 UTC
Informe de escaneo Nmap para localhost (127.0.0.1)
El host está activo (latencia de 0,000010s).
Otras direcciones para localhost (no escaneadas): ::1
No se muestra: 999 puertos cerrados
PUERTO ESTADO SERVICIO VERSIÓN
22/tcp open ssh OpenSSH 8.0 (protocolo 2.0)
Detección de servicio realizada. Por favor, informe de cualquier resultado incorrecto en https://nmap.org/submit/ .
Nmap realizado: 1 dirección IP (1 host up) escaneada en 1,96 segundos
Escaneado agresivo
Nmap también realiza un escaneo agresivo y avanzado que permite la detección de SO -O
, escaneo de scripts -sC
, escaneo de versiones -sV
, y traceroute --traceroute
.
Podemos pasar el argumento -A
para realizar un escaneo agresivo.
$sudo nmap -A scanme.nmap.org
Iniciando Nmap 7.70 ( https://nmap.org ) a las 2020-09-18 20:26 UTC
Informe de escaneo Nmap para scanme.nmap.org (45.33.32.156)
El host está activo (latencia de 0,051s).
Otras direcciones para scanme.nmap.org (no escaneadas): 2600:3c01::f03c:91ff:fe18:bb2f
No mostradas: 995 puertos cerrados
PUERTO ESTADO SERVICIO VERSIÓN
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocolo 2.0)
| ssh-hostkey:
| 1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)
| 2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)
| 256 96:02:bb:5e:57:54:1c:4e:45:2f:56:4c:4a:24:b2:57 (ECDSA)
|_ 256 33:fa:91:0f:e0:e1:7b:1f:6d:05:a2:b0:f1:54:41:56 (ED25519)
25/tcp smtp filtrado
80/tcp http abierto Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: ¡Adelante, ScanMe!
9929/tcp open nping-echo Nping echo
31337/tcp open tcpwrapped
Suposiciones agresivas del SO: Linux 2.6.32 (94%), Linux 3.2 - 4.9 (94%), Linux 2.6.32 - 3.10 (94%), Linux 3.4 - 3.10 (93%), Linux 3.1 (92%), Linux 3.2 (92%), Linux 3.3 (92%), Synology DiskStation Manager 5.2-5644 (92%), Netgear RAIDiator 4.2.28 (92%), Cámara de red AXIS 210A o 211 (Linux 2.6.17) (92%)
No hay coincidencias exactas de SO para el host (condiciones de prueba no ideales).
Distancia de red: 7 saltos
Información de servicio: SO: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (utilizando el puerto 143/tcp)
HOP RTT DIRECCIÓN
1 48,15 ms 72.14.239.197
2 52.74 ms 209.85.253.9
3 49.54 ms 142.250.234.59
4 49.99 ms 108.170.242.251
5 50,70 ms 213.52.131.176
6 50.85 ms 173.230.159.71
7 53.40 ms scanme.nmap.org (45.33.32.156)
Detección de SO y servicio realizada. Por favor, informe de cualquier resultado incorrecto en https://nmap.org/submit/ .
Nmap realizado: 1 dirección IP (1 host up) escaneada en 259,05 segundos
$$sudo nmap -A scanme.nmap.org
Iniciando Nmap 7.70 ( https://nmap.org ) en 2020-09-18 20:33 UTC
Estadísticas: 0:00:00 transcurrido; 0 hosts completados (0 up), 0 en curso Script Pre-Scan
Tiempo de NSE: Alrededor del 0,00% realizado
Problemas legales con el escaneado de puertos
Siempre es aconsejable obtener autorización/permiso por escrito del propietario de la red de destino antes de iniciar cualquier escaneado.
Por ejemplo – http://scanme.nmap.org/ se ha autorizado a sí mismo a ser escaneado. Puede leerlo en detalle en el sitio web oficial.
¿Y ahora qué?
Consulte cómo instalar Nmap en Windows.