Cómo escanear puertos (más rápido que con Nmap) con Masscan
Masscan es el escáner de puertos de red más rápido. Puedes escanear todo Internet en menos de 6 minutos con una velocidad de transmisión de datos de 25 millones por segundo. ¿Es más rápido que flash?
Este escáner de puertos más rápido proporciona una salida como Nmap, pero Masscan funciona como unicornscan y Zenmap internamente (escaneo asíncrono). Es más rápido debido a la flexibilidad que permite rangos arbitrarios y rangos de puertos.
Masscan utiliza su propio conjunto TCP/IP personalizado. Cualquier cosa que no sea un simple escaneo de puertos puede causar un conflicto con el conjunto TCP/IP local.
Discutiremos más adelante las diferencias entre masscan y nmap, ahora veamos cómo instalar y usar masscan en nuestro sistema.
Instalación de Masscan
Masscan viene preinstalado con la versión completa de Kali Linux. Podemos verificar los usos básicos simplemente ingresando el siguiente comando:
masscan
Si nuestro sistema no tiene Masscan entonces necesitamos instalarlo. Antes de instalarlo, necesitamos instalar sus dependencias usando el siguiente comando:
sudo apt-get install clang git gcc make libpcap-dev
Luego podemos instalarlo aplicando el siguiente comando:
sudo apt-get install masscan
Las dependencias no requieren instalarlo, estas dependencias ayudan a que Masscan funcione perfectamente. También podemos instalarlo desde su repositorio de GitHub. Los siguientes comandos serán útiles para instalarlo desde el repositorio de Git.
git clone https://github.com/robertdavidgraham/masscan
cd masscan
sudo make
Usos de Masscan
Masscan se usa para escanear una red, si queremos escanear un solo puerto, podemos hacerlo aplicando el siguiente comando:
sudo masscan 172.217.167.46 -p443
Esto buscará un solo puerto 443.
También podemos usar esta herramienta para escanear varios puertos separados por comas (,). El ejemplo es el siguiente:
sudo masscan 172.217.167.46 -p443,80,4444
Para escanear un rango de puertos podemos usar el siguiente comando:
sudo masscan 172.217.167.46 -p12-443
El comando anterior buscará el puerto 12 al puerto 443 en nuestra dirección IP dada.
Entonces, en caso de que necesitemos encontrar todos los puertos, podemos usar el siguiente comando;
Hay un número limitado de puertos, es decir, 65535. El comando anterior verificará todos los puertos.
A la velocidad del rayo
Dijimos que masscan es el escáner más rápido, pero después de usar los comandos anteriores no sentimos que sea más rápido.
El motivo son los escaneos masivos a una velocidad de 100 paquetes/seg, que es lento. Para aumentarlo, necesitamos usar el indicador --rate
con él.
sudo masscan 172.217.167.46 -p0-65535 --rate 25000000
Usando el comando anterior podemos lograr la velocidad más rápida (25 millones de paquetes/seg).
Una cosa más, no podemos alcanzar la velocidad máxima en sistemas Mac, Windows o Linux virtual. Masscan funciona mejor en los principales sistemas Linux en donde se encuentra instalado. En otros sistemas solo podemos obtener 300,000 paquetes/seg. Eso es realmente rápido pero con el sistema Linux podemos obtener la máxima velocidad.
Para escanear más rápido debemos tener una muy buena conexión a Internet. Por lo general, Masscan puede alcanzar la velocidad más alta, pero nuestra conexión a Internet no puede enviar 25 millones de paquetes por segundo. Aunque la velocidad que obtuvimos fue más rápida que cualquier otro escáner de puertos.
Para ver el efecto más rápido, debemos elegir una red más grande para escanear. En redes pequeñas o en una sola IP, no podemos ver la velocidad más rápida ante nuestros ojos. Porque escanear redes pequeñas es un trabajo de algunos segundos, por lo que no podemos sentir la velocidad. Hablemos de eso.
Masscan puede escanear todo Internet en 6 minutos según su autor Robert Graham. Si queremos escanear todo Internet en busca de un puerto específico (puerto 443, por ejemplo), podemos usar el siguiente comando:
sudo masscan 0.0.0.0/0 -p443 --rate 250000000 --exclude 255.255.255.255
Este comando escaneará todo Internet en busca de puertos 443 y nos mostrará el resultado lo más rápido posible. Aquí hemos detenido el escaneo. Podemos ver la captura de pantalla.
Así es como podemos encontrar un puerto específico o vulnerable en todo Internet.
Algunos usos más
Para guardar el resultado de salida en un archivo, podemos usar el siguiente comando:
sudo masscan 172.217.167.46 -p0-65535 > example.txt
No solo en formato txt, también podemos guardar los resultados en formatos XML (-oX
), Grepable (-oG
) y JSON (-oJ
). Nos gusta el formato Grepable porque podemos usar la salida en otras herramientas.
También podemos escanear una red en busca de los puertos principales. Así que si le damos ‐‐top-ports 100
. Escaneará los 100 puertos más comunes descubiertos según Nmap. Podemos elegir nuestros números de puertos principales, un ejemplo de esto es el siguiente (Busca los 100 puertos principales):
sudo masscan 172.217.167.46 --top-ports 100 --rate 100000
Hay una función de pausa en Masscan. Sí, podemos pausar el proceso de escaneo y reanudarlo cuando lo necesitemos. Escanear en una red grande lo encontramos útil. Durante el proceso de escaneo, podemos presionar CTRL+C y luego de unos segundos se pausará y guardará un archivo paused.conf. Este archivo tiene todas las configuraciones y progresos del escaneo. Podemos reanudar el proceso de escaneo nuevamente usando el siguiente comando:
sudo masscan --resume paused.conf
Nmap vs. Masscan
En este artículo hemos aprendido que Masscan tiene muy buenas características, los resultados se parecen a Nmap pero hay muchas diferencias entre ellos. Entre las diferencias, podemos destacar las siguientes:
- Nmap usa escaneo en modo síncrono, que es muy lento pero preciso, pero Masscan usa escaneo en modo asíncrono, que es muy rápido pero no tan preciso.
- Masscan no verifica si el host está activo o no, siempre trata al host como si estuviera en línea, pero Nmap siempre verifica si el host está activo o inactivo.
- Masscan nunca convierte los nombres de dominio en direcciones IP. Necesitamos encontrar manualmente la dirección IP y proporcionarla a Masscan. No obstante, Nmap funciona bien con IP y nombres de dominio.
- Siempre necesitamos especificar puertos en Masscan.
También hay algunas similitudes en Nmap y Masscan. Masscan tiene algunas configuraciones/indicadores compatibles con nmap. Para verificarlos podemos usar el comando masscan -nmap
.
Interfaz de usuario web de Masscan
El equipo de Offensive Security ha creado una interfaz web para Masscan. Usando ese proceso, podemos usar Masscan en una interfaz gráfica de usuario fácil basada en web. Si quieres ver cómo funciona, aquí está la guía completa de Offensive security.