Un rápido escáner de puertos escrito en Go con un enfoque en la fiabilidad y la simplicidad. Diseñado para ser utilizado en combinación con otras herramientas para el descubrimiento de superficie de ataque en bug bounties y pentests.
Naabu es una herramienta de escaneo que permite enumerar los puertos válidos para los hosts de una manera rápida y fiable. Es una herramienta realmente simple que hace escaneos rápidos SYN/CONNECT en el host/lista de hosts; y lista todos los puertos que devuelven una respuesta.

Características
- Escaneo rápido y sencillo basado en el sondeo SYN/CONNECT.
- Optimizado para facilitar el uso y reducir los recursos
- Manejo automático de hosts duplicados entre múltiples subdominios
- Integración de NMAP para el descubrimiento de servicios
- Soporte de entrada/salida para la integración en flujos de trabajo
- Soporte de múltiples formatos de salida (JSON, archivo, Stdout)
- Soporte de múltiples entradas, incluyendo la notación HOST/IP/CIDR.
Instrucciones de Instalación
Descarga el binary / docker listo para ejecutar o instala con GO
Antes de instalar naabu, asegúrate de instalar la biblioteca libpcap
en Linux con:
apt install -y libpcap-dev
GO111MODULE=on go get -v github.com/projectdiscovery/naabu/v2/cmd/naabu
Uso
naabu -h
Esto mostrará la ayuda de la herramienta. Aquí están todos los parámetros que soporta:
Usage of ./naabu:
-c int
General internal worker threads (default 25)
-config string
Config file
-debug
Enable debugging information
-exclude-cdn
Skip full port scans for CDNs (only checks for 80,443)
-exclude-file string
Specifies a newline-delimited file with targets to be excluded from the scan (ip, cidr)
-exclude-hosts string
Specifies a comma-separated list of targets to be excluded from the scan (ip, cidr)
-exclude-ports string
Ports to exclude from enumeration
-host string
Host to find ports for
-iL string
File containing list of hosts to enumerate ports
-interface string
Network Interface to use for port scan
-interface-list
List available interfaces and public ip
-json
Write output in JSON lines Format
-nmap
Invoke nmap scan on targets (nmap must be installed)
-nmap-cli string
Nmap command line (invoked as COMMAND + TARGETS)
-no-color
Don't Use colors in output
-o string
File to write output to (optional)
-p string
Ports to scan (80, 80,443, 100-200, (-p - for full port scan)
-ping
Use ping probes for verification of host
-ports-file string
File containing ports to enumerate for on hosts
-rate int
Rate of port scan probe requests (default 1000)
-retries int
Number of retries for the port scan probe (default 3)
-s string
Scan Type (s - SYN, c - CONNECT) (default "s")
-scan-all-ips
Scan all the ips
-silent
Show found ports only in output
-source-ip string
Source Ip
-stats
Display stats of the running scan
-timeout int
Millisecond to wait before timing out (default 1000)
-top-ports string
Top Ports to scan (default top 100)
-v Show Verbose output
-verify
Validate the ports again with TCP verification
-version
Show version of naabu
-warm-up-time int
Time in seconds between scan phases (default 2)
Naabu en Acción
Para ejecutar la herramienta en un objetivo, basta con utilizar el siguiente comando.
naabu -host hackerone.com
Esto ejecutará la herramienta contra hackerone.com (uno de los TOP Sitios Web Vulnerables para Pentesting). Hay una serie de opciones de configuración que puedes pasar junto con este comando. El parámetro -v
puede utilizarse para mostrar información detallada (verbose).
naabu -host hackerone.com
__
___ ___ ___ _/ / __ __
/ _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.3
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[INF] Running SYN scan with root privileges
[INF] Found 4 ports on host hackerone.com (104.16.100.52)
hackerone.com:80
hackerone.com:443
hackerone.com:8443
hackerone.com:8080
Los puertos a escanear en el host pueden ser especificados a través del parámetro -p
. Toma los puertos con formato nmap y ejecuta la enumeración en ellos.
naabu -p 80,443,21-23 -host hackerone.com
Por defecto, el Naabu comprueba los 100 mejores puertos de nmap. Soporta las siguientes listas de puertos incorporadas
-top-ports 100
=> Escanea los 100 mejores puertos de nmap-top-ports 1000
=> Escanea los 1000 mejores puertos de nmap-p -
=> Escanea todos los puertos desde 1-65535.
También puedes especificar puertos específicos que te gustaría excluir del escaneo.
naabu -p - -exclude-ports 80,443
El parámetro -o
puede utilizarse para especificar un archivo de salida.
naabu -host hackerone.com -o salida.txt
Para ejecutar el naabu en una lista de hosts, se puede utilizar la opción -iL
.
naabu -iL hosts.txt
También puedes obtener la salida en formato json utilizando el parámetro -json
. Este parámetro guarda la salida en el formato de líneas JSON.
naabu -host hackerone.com -json
{"host":"hackerone.com","ip":"104.16.99.52","port":8443}
{"host":"hackerone.com","ip":"104.16.99.52","port":80}
{"host":"hackerone.com","ip":"104.16.99.52","port":443}
{"host":"hackerone.com","ip":"104.16.99.52","port":8080}
Los puertos descubiertos pueden ser canalizados a otras herramientas también. Por ejemplo, puedes canalizar los puertos descubiertos por naabu a naabu
, que encontrará servidores http en ejecución en el host.
echo hackerone.com | naabu -silent | naabu -silent
http://hackerone.com:8443
http://hackerone.com:443
http://hackerone.com:8080
http://hackerone.com:80
Si quieres una segunda capa de validación de los puertos encontrados, puedes instruir a la herramienta para que haga una conexión TCP para cada puerto y verifique si la conexión tuvo éxito. Este método es muy lento, pero es realmente fiable. Esto es similar a usar nmap como una segunda capa de validación
naabu -host hackerone.com -verify
La velocidad puede ser controlada cambiando el valor del parámetro rate
que representa el número de paquetes por segundo. Aumentarlo mientras se procesan los hosts puede conducir a un aumento de las tasas (rates) de falsos positivos. Así que se recomienda mantenerlo en una cantidad razonable.
Archivo de Configuración
Se ha añadido soporte para el archivo de configuración, que permite que cada una de los parámetros se defina en el archivo de configuración, por lo que no tiene que escribirlas cada vez, es opcional y no se utiliza en la ejecución por defecto, la ubicación por defecto del archivo de configuración es $HOME/.config/naabu/naabu.conf
, el archivo de configuración personalizado puede ser proporcionado utilizando el parámetro config
.
Ejemplo de archivo de configuración:
# Number of retries
# retries: 1
# Packets rate
# rate: 100
# Timeout is the seconds to wait for ports to respond
# timeout: 5
# Hosts are the host to find ports for
# host:
# - 10.10.10.10
# Ports is the ports to use for enumeration
# ports:
# - 80
# - 100
# ExcludePorts is the list of ports to exclude from enumeration
# exclude-ports:
# - 20
# - 30
# Verify is used to check if the ports found were valid using CONNECT method
# verify: false
# Ips or cidr to be excluded from the scan
# exclude-ips:
# - 1.1.1.1
# - 2.2.2.2
# Top ports list
# top-ports: 100
# Attempts to run as root
# privileged: true
# Drop root privileges
# unprivileged: true
# Excludes ip of knows CDN ranges
# exclude-cdn: true
# SourceIP to use in TCP packets
# source-ip: 10.10.10.10
# Interface to use for TCP packets
# interface: eth0
# WarmUpTime between scan phases
# warm-up-time: 2
# nmap command to invoke after scanninginvoke after scanning
# nmap: nmap -sV
Integración de Nmap
Se ha integrado el soporte de nmap con el parámetro nmap
, en el archivo de configuración puedes definir cualquier comando nmap que desees ejecutar en el resultado de naabu, asegúrate de tener nmap
instalado para utilizar esta característica.
Para hacer uso del parámetro nmap, asegúrate de eliminar los comentarios del archivo de configuración en $HOME/.config/naabu/naabu.conf
También se ha añadido el parámetro nmap-cli
que te permite ejecutar comandos nmap
directamente en los resultados de naabu sin hacer uso del archivo de configuración.
echo hackerone.com | naabu -nmap-cli 'nmap -sV -oX naabu-output'
__
___ ___ ___ _/ / __ __
/ _ \/ _ \/ _ \/ _ \/ // /
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.0
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[INF] Running TCP/ICMP/SYN scan with root privileges
[INF] Found 4 ports on host hackerone.com (104.16.99.52)
hackerone.com:443
hackerone.com:80
hackerone.com:8443
hackerone.com:8080
[INF] Running nmap command: nmap -sV -p 80,8443,8080,443 104.16.99.52
Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-23 05:02 UTC
Nmap scan report for 104.16.99.52
Host is up (0.0021s latency).
PORT STATE SERVICE VERSION
80/tcp open http cloudflare
443/tcp open ssl/https cloudflare
8080/tcp open http-proxy cloudflare
8443/tcp open ssl/https-alt cloudflare
Exclusión de CDN
Naabu también admite la exclusión de las IPs de CDN que se escanean por puerto. Si se utiliza, sólo se escanean los puertos 80
y 443
para esas IPs. Esta característica puede ser activada usando el parámetro exclude-cdn
.
Actualmente las IPs de cloudflare, akamai, incapsula y sucuri están soportadas para las exclusiones.
Notas
- Naabu está diseñado para escanear puertos en múltiples hosts / escaneo masivo de puertos.
- Por defecto, naabu está configurado asumiendo que se está ejecutando desde un VPS.
- Se sugiere ajustar los parámetros / tasa (rate) si se ejecuta naabu desde el sistema local.
naabu (este enlace se abre en una nueva ventana) por projectdiscovery (este enlace se abre en una nueva ventana)
A fast port scanner written in go with a focus on reliability and simplicity. Designed to be used in combination with other tools for attack surface discovery in bug bounties and pentests