Como encontrar o que outras máquinas estão conectadas à rede local

26

Como posso ver uma lista de todas as máquinas disponíveis na LAN da qual faço parte.

    
por Tshepang 25.02.2011 / 12:23

4 respostas

27

Quanto você sabe sobre a LAN em questão? Eu estou supondo que você não sabe nada apenas conectado no cabo ou conectado a wifi.

  1. Tente solicitar um endereço IP com o DHCP. Você consegue um? Então você já sabe algumas coisas: o IP do gateway, o IP do servidor DHCP, a máscara de sub-rede e talvez os servidores DNS.
  2. Se você não obtiver um, não há servidor DHCP ou a rede é filtrada por MAC.
  3. De qualquer forma, comece a capturar pacotes com wireshark . Se você estiver sem fio ou conectado a um hub, é fácil. Se você estiver conectado a um switch, tente MAC flooding para voltar ao "modo de hub", mas um switch mais inteligente apenas desabilite sua porta. Se você quiser experimentá-lo mesmo assim ettercap pode fazer isso por você. (Ou macchanger e um script de shell :))
  4. Olhando para os pacotes, você pode encontrar endereços IP, mas o mais importante, você pode adivinhar os parâmetros da rede. Se você suspeitar que a filtragem MAC altere seu endereço MAC para um dos observados depois que ele sair (não envia nada por um tempo).
  5. Quando você tiver uma boa idéia sobre a configuração da rede (máscara de rede, gateway, etc), use o nmap para verificar. O Nmap pode fazer muito mais do que -sP no caso de alguns hosts não responderem ao ping (confira documentação ). É importante que o nmap funcione somente se suas configurações de rede e rotas estiverem corretas.
  6. Você pode encontrar ainda mais hosts com a varredura ociosa do nmap.

Alguns (a maioria?) administradores de sistema não gostam de alguns dos métodos acima, portanto, certifique-se de que ele seja permitido (por exemplo, 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 primeiro suas regras.

Nmap

Veja como fazer a descoberta de host básica com o nmap . Como eu disse, sua configuração de rede deve estar correta quando você tentar isso. Digamos que você esteja em 192.168.0.50 você está em uma sub-rede / 24. Seu endereço MAC é algo que é permitido conectar, etc. Eu gosto de ter o wireshark rodando para ver o que estou fazendo.

Primeiro, gosto de tentar a varredura de lista, que tenta apenas resolver os registros PTR no DNS para os endereços IP especificados. Ele não envia nada para os anfitriões, então não há garantia de que esteja realmente conectado ou ligado, mas há uma boa chance. Este modo obviamente precisa de um servidor DNS que esteja disposto a falar com você.

nmap -vvv -sn -sL 192.168.1.0/16

Isso pode não encontrar nada ou pode dizer que todos os IPs estão ativos.

Então, eu geralmente faço o scan ARP. Ele envia solicitações ARP (você as vê como "Who has <target IP>? Tell <your IP>" em wireshark). Isso é bastante confiável, já que 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ê quiser digitalizar algo por trás de roteadores ou firewalls, use as varreduras SYN e ACK. O SYN inicia uma conexão TCP e você obtém um RST ou um SYNACK em resposta. De qualquer forma, o host está ativo. Você pode ter a comunicação ICMP proibida ou algo assim se houver um firewall. Na maioria das vezes, se um firewall filtrou 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 o ACK scan é útil. Você receberá o RST em resposta se o host estiver ativo. Como você não sabe o que é firewall, tente ambos.

nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24

Então, é claro, você pode usar as varreduras baseadas em ICMP com -PE -PP -PM.

Outro método interessante é o -PO com um número de protocolo inexistente. Muitas vezes, apenas TCP e UDP são considerados em firewalls e ninguém testa o que acontece quando você tenta algum 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 pular a descoberta de host (-Pn) e fazer um portscan em cada host. Isso é muito lento, mas você pode encontrar outros hosts que a descoberta do host perdeu por algum motivo.

    
por 25.02.2011 / 14:12
9

Eu gosto do comando ip neigh , 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 só funciona com nós arp -able.

    
por 25.02.2011 / 14:16
9

Instale o nmap e execute nmap -sP <mynetwork> .

    
por 25.02.2011 / 12:31
0

Para ambas as respostas: Nmap não é necessário / NÃO é exigido .

Resposta 1

$ arp

Resposta 2

Criando a resposta xenoterracides 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
    
por 03.04.2017 / 23:51

Tags