Nmap: encontre IPs livres do intervalo

12

Existe uma maneira de procurar por IPs gratuitos na rede? Eu uso nmap -sP 192.168.1.0/24 , mas isso realmente mostra hosts que estão ativos.

    
por HTF 04.04.2014 / 15:32

4 respostas

20

Usar o Nmap como essa é uma maneira bastante precisa de fazer o que você pediu, desde que algumas pré-condições sejam verdadeiras:

  1. Você deve executar a verificação como raiz (ou Administrador no Windows) para enviar solicitações ARP, não conexões TCP. Caso contrário, a verificação pode relatar um endereço como "inativo" quando ele é simplesmente um firewall.
  2. Você só pode fazer isso de um sistema no mesmo link de dados (camada 2) que o intervalo de endereços que está digitalizando. Caso contrário, o Nmap precisará usar testes de camada de rede que podem ser bloqueados por um firewall.

Para obter os endereços "disponíveis", você precisa obter a lista de endereços que o Nmap informa como "inativos". Você pode fazer isso com um simples comando awk:

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

Resumo das opções do Nmap usadas:

  • Quando você usa a opção -v , o Nmap imprimirá os endereços que encontrar como "abaixo" além dos que estão "acima".
  • Em vez de -sP , substituí a ortografia mais recente -sn , que ainda realiza a mesma varredura, mas significa "ignorar a varredura de porta" em vez da "varredura de ping" enganosa (já que a fase de descoberta do host não significa necessariamente um eco de varredura ou Ping ICMP).
  • A opção -n ignora as pesquisas reversas de DNS, o que lhe dá um pouco de tempo, pois você não está interessado em nomes, mas apenas em endereços IP.
  • A opção -oG diz ao Nmap para exibir o formato grepable , que é mais fácil para o awk para processar. O argumento " - " diz para enviar esta saída para stdout.

O comando awk então procura por "Status: Down" e imprime o segundo campo, contendo o endereço IP.

É claro que, se você tiver acesso às configurações de execução do switch ou às concessões do servidor DHCP, poderá obter essa resposta com muito mais autoridade, sem realizar uma verificação que possa disparar os alarmes de segurança.

    
por 04.04.2014 / 15:56
1

Não tenho certeza sobre o n-map, mas seria razoável supor que, se você escrever um script de ping que envie 1 ping para cada endereço, todos os hosts que retornarem com o "destino inacessível" estiverem desocupados e qualquer coisa que retorne " time out "está ocupado, mas não está respondendo ao ping. A diferença entre as duas respostas é que "destination unreachable" não recebeu uma resposta à sua solicitação ARP. "Solicitar tempo limite" significa que algo respondeu à solicitação ARP, mas não ao pacote ICMP.

    
por 04.04.2014 / 15:40
0

Aqui está outro inspirado por Anders Larsson

for ip in 172.18.5.{129..254}; do { ping -c 1 -W 1 $ip ; } &> /dev/null || echo $ip & done | sort

O que significa: "Tente pingar todos os Ips no intervalo. Se o" ping "falhar, imprima esse IP"

Se você fizer

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

Funciona rápido, mas notei que alguns hosts informados como "Abaixo" são na verdade "Para cima"

    
por 05.04.2018 / 19:15
-1

Aqui está a mesma coisa no PowerShell ....

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

Tags