Respostas:
Quanto você sabe sobre a LAN em questão? Suponho que você não saiba nada apenas conectado ao cabo ou conectado ao wifi.
-sP
no caso de alguns hosts não responderem ao ping (consulte a documentação ). É importante que o nmap funcione apenas se suas configurações e rotas de rede estiverem corretas.Alguns administradores de sistema (a maioria?) Não gostam de alguns dos métodos acima, portanto, verifique se é permitido (por exemplo, é a sua rede). Observe também que seu próprio firewall pode impedir alguns desses métodos (até mesmo obter um IP com DHCP), portanto verifique suas regras primeiro.
Nmap
Aqui está como fazer a descoberta básica de host com o nmap . Como eu disse, sua configuração de rede deve estar correta quando você tenta fazer isso. Digamos que você esteja 192.168.0.50 em uma sub-rede / 24. Seu endereço MAC é algo que tem permissão para se conectar, etc. Gosto de ter o wireshark em execução para ver o que estou fazendo.
Primeiro, gosto de tentar a verificação de lista, que apenas tenta resolver os registros PTR no DNS para os endereços IP especificados. Ele não envia nada aos hosts, portanto não há garantia de que esteja realmente conectado ou ativado, mas há uma boa chance. Esse modo obviamente precisa de um servidor DNS que esteja disposto a conversar com você.
nmap -vvv -sn -sL 192.168.1.0/16
Isso pode não encontrar nada ou pode indicar que todos os IPs estão ativos.
Então eu costumo fazer uma varredura ARP. Ele envia solicitações ARP (você as vê como "Who has <target IP>? Tell <your IP>"
no wireshark). Isso é bastante confiável, pois ninguém filtra ou falsifica o ARP. A principal desvantagem é que ele só funciona na sua sub-rede.
nmap -vvv -sn -PR 192.168.1.0/24
Se você deseja verificar algo atrás de roteadores ou firewalls, use as verificações SYN e ACK. O SYN inicia uma conexão TCP e você recebe um RST ou um SYNACK em resposta. De qualquer maneira, o host está ativo. Você pode proibir a comunicação ICMP ou algo assim, se houver um firewall. Na maioria das vezes, se um firewall filtrar seus pacotes, você não receberá nada. Alguns tipos de firewalls filtram apenas os pacotes TCP SYN e permitem a passagem de todos os outros pacotes TCP. É por isso que a verificação ACK é útil. Você receberá o RST em resposta se o host estiver ativo. Como você não sabe qual firewall está instalado, tente ambos.
nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24
É claro que você pode usar as varreduras baseadas em ICMP com -PE -PP -PM.
Um outro método interessante é -PO com um número de protocolo inexistente. Geralmente, apenas o TCP e o UDP são considerados nos firewalls e ninguém testa o que acontece quando você tenta um protocolo desconhecido. Você obtém um protocolo ICMP inacessível se o host estiver ativo.
nmap -vvv -sn -PO160 10.1.2.0/24
Você também pode dizer ao nmap para ignorar a descoberta de host (-Pn) e fazer uma varredura de porta em cada host. Isso é muito lento, mas você pode encontrar outros hosts que a descoberta do host perdeu por algum motivo.
Eu gosto do ip neigh
comando, que vem com o IpRoute2.
ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
No entanto, acho que funciona apenas com arp
nós -able.
man ip
mostra o que o vizinho faz.
Instale o nmap e execute nmap -sP <mynetwork>
.
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
.
nmap -sP 192.168.0.*
e ele retornou uma lista de saída do formulário:Nmap scan report for justin-desktop2 (192.168.0.61)
Host is up (0.00056s latency).
Host 192.168.2.23 is up (0.0088s latency).
.
Para ambas as respostas: NO nmap required / NO sudo requied .
$ arp
Com base nos xenoterrácidos, responda com ip neigh
e hosts
:
#!/usr/bin/env python
"""List all hosts with their IP adress of the current network."""
import os
out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
ip = line.split(' ')[0]
h = os.popen('host {}'.format(ip)).read()
hostname = h.split(' ')[-1]
print("{:>3}: {} ({})".format(i, hostname.strip(), ip))
Download via
wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py