Nmap: encuentre direcciones IP gratuitas del rango

14

¿Hay alguna manera de escanear en busca de IP gratis en la red? Yo uso nmap -sP 192.168.1.0/24, pero esto en realidad muestra Los servidores activos.

HTF
fuente
10
no responde al ping no significa necesariamente no utilizado.
Grant
1
Desea un escáner IPAM, no nmap.
TheCleaner
2
El escaneo de descubrimiento de host de @Grant Nmap (a veces llamado "escaneo de ping") envía muchas sondas diferentes, no solo solicitudes de eco ICMP. Para las direcciones en el mismo enlace de datos, utiliza solicitudes ARP, que son básicamente imposibles de ignorar.
bonsaiviking
1
También debe recordar que los hosts que no están encendidos también aparecerán como que no tienen una dirección IP.
Tero Kilkanen

Respuestas:

26

Usar Nmap de esta manera es una forma bastante precisa de hacer lo que solicitó, siempre que se cumplan algunas condiciones previas:

  1. Debe ejecutar el escaneo como root (o Administrador en Windows) para enviar solicitudes ARP, no conexiones TCP. De lo contrario, el escaneo puede informar una dirección como "inactiva" cuando simplemente está cortafuegos.
  2. Solo puede hacer esto desde un sistema en el mismo enlace de datos (capa 2) que el rango de direcciones que está escaneando. De lo contrario, Nmap necesitará usar sondas de capa de red que pueden ser bloqueadas por un firewall.

Para obtener las direcciones "disponibles", debe obtener la lista de direcciones que Nmap informa como "inactivas". Puede hacer esto con un simple comando awk:

sudo nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Resumen de las opciones de Nmap utilizadas:

  • Cuando utiliza la -vopción, Nmap imprimirá las direcciones que encuentre como "abajo" además de las que están "arriba".
  • En lugar de -sP, he sustituido la ortografía más nueva -sn, que todavía realiza el mismo escaneo, pero significa "omitir el escaneo de puertos" en lugar del engañoso "escaneo de Ping" (ya que la fase de descubrimiento del host no significa necesariamente un escaneo de eco ICMP o Ping )
  • La -nopción omite las búsquedas DNS inversas, lo que le da un poco de tiempo, ya que no le interesan los nombres sino solo las direcciones IP.
  • La -oGopción le dice a Nmap que envíe un formato grepable , que es más fácil de procesar para awk. El argumento " -" le dice que envíe esta salida a stdout.

El comando awk busca "Estado: abajo" e imprime el segundo campo, que contiene la dirección IP.

Por supuesto, si tiene acceso a las configuraciones en ejecución del conmutador o los contratos de arrendamiento del servidor DHCP, podría obtener esta respuesta con mucha más autoridad sin hacer un análisis que podría activar las alarmas de seguridad.

bonsaiviking
fuente
1
Marcar completamente esto para uso futuro y ni siquiera es mi pregunta :)
MartinC
1

No estoy seguro sobre n-map, pero uno podría suponer razonablemente que si escribe un script de ping que envía 1 ping a cada dirección, cualquier host que regrese con "destino inalcanzable" está desocupado, y cualquier cosa que regrese "solicite tiempo de espera" está ocupado pero no responde al ping. La diferencia entre las dos respuestas es que "destino inalcanzable" no recibió una respuesta a su solicitud ARP. "Tiempo de espera de solicitud" significa que algo respondió a la solicitud ARP, pero no el paquete ICMP.

MartinC
fuente
Cuando se ejecuta con privilegios de root, Nmap simplemente hace la solicitud ARP e informa las direcciones que responden.
bonsaiviking
0

Aquí está lo mismo en PowerShell ...

((nmap -v -sn -n 10.208.2.0/24 -oG - ) -match "Status\:\sDown") | foreach {($_).Split(" ")[1]}
gsarnold
fuente
0

Aquí hay otro inspirado por Anders Larsson

para ip en 172.18.5. {129..254}; do {ping -c 1 -W 1 $ ip; } &> / dev / null || echo $ ip y hecho | ordenar

Lo que significa: "Intente hacer ping a todos los Ips en el rango. Si el" ping "falla, imprima esa IP"

Si lo haces

nmap -v -sn -n 192.168.1.0/24 -oG - | awk '/Status: Down/{print $2}'

Funciona rápido, pero noté que algunos hosts informados como "Abajo" son en realidad "Arriba"

Radu Gabriel
fuente