Comment trouver les autres machines connectées au réseau local


27

Comment puis-je voir une liste de toutes les machines disponibles sur le réseau local dont je fais partie.

Réponses:


28

Que savez-vous du LAN en question? Je suppose que vous ne savez rien du tout branché sur le câble ou connecté au wifi.

  1. Essayez de demander une adresse IP avec DHCP. En avez-vous un? Ensuite, vous savez déjà quelques choses: l'IP de la passerelle, l'IP du serveur DHCP, le masque de sous-réseau et peut-être les serveurs DNS.
  2. Si vous n'en obtenez pas, il n'y a pas de serveur DHCP ou le réseau est filtré par MAC.
  3. Dans tous les cas, commencez à capturer des paquets avec Wireshark . Si vous êtes sans fil ou connecté à un concentrateur, c'est facile. Si vous êtes connecté à un commutateur, vous pouvez essayer l'inondation MAC pour le remettre en "mode concentrateur", mais un commutateur plus intelligent désactivera simplement votre port. Si vous voulez l'essayer, ettercap peut le faire pour vous. (Ou macchanger et un script shell :))
  4. En regardant les paquets, vous pouvez trouver des adresses IP, mais surtout, vous pouvez deviner les paramètres réseau. Si vous soupçonnez que le filtrage MAC change votre adresse MAC en l'une des observées après son départ (n'envoie rien pendant un certain temps).
  5. Lorsque vous avez une bonne idée de la configuration du réseau (masque de réseau, passerelle, etc.), utilisez nmap pour analyser. Nmap peut faire beaucoup plus que -sPsi certains hôtes ne répondent pas au ping (consultez la documentation ). Il est important que nmap ne fonctionne que si vos paramètres et itinéraires réseau sont corrects.
  6. Vous pouvez éventuellement trouver encore plus d'hôtes avec l' analyse inactive de nmap .

Certains administrateurs système (la plupart?) N'aiment pas certaines des méthodes ci-dessus, alors assurez-vous que cela est autorisé (par exemple, c'est votre réseau). Notez également que votre propre pare-feu peut empêcher certaines de ces méthodes (même d'obtenir une adresse IP avec DHCP), vérifiez d'abord vos règles.

Nmap

Voici comment effectuer une découverte d'hôte de base avec nmap . Comme je l'ai dit, votre configuration réseau doit être correcte lorsque vous essayez cela. Disons que vous êtes 192.168.0.50 vous êtes sur un sous-réseau / 24. Votre adresse MAC est quelque chose qui est autorisé à se connecter, etc. J'aime faire tourner Wharkhark pour voir ce que je fais.

D'abord, j'aime essayer l'analyse de la liste, qui essaie uniquement de résoudre les enregistrements PTR dans DNS pour les adresses IP spécifiées. Il n'envoie rien aux hôtes donc il n'y a aucune garantie qu'il est vraiment connecté ou allumé mais il y a de bonnes chances. Ce mode a évidemment besoin d'un serveur DNS prêt à vous parler.

nmap -vvv -sn -sL 192.168.1.0/16

Cela peut ne rien trouver ou vous indiquer que chaque IP est en hausse.

Ensuite, je vais généralement pour l'analyse ARP. Il envoie des requêtes ARP (vous les voyez comme "Who has <target IP>? Tell <your IP>"dans wirehark). C'est assez fiable car personne ne filtre ou ne simule ARP. Le principal inconvénient est qu'il ne fonctionne que sur votre sous-réseau.

nmap -vvv -sn -PR 192.168.1.0/24

Si vous souhaitez analyser quelque chose derrière des routeurs ou des pare-feu, utilisez les analyses SYN et ACK. SYN démarre une connexion TCP et vous obtenez un RST ou un SYNACK en réponse. Quoi qu'il en soit, l'hôte est en place. Vous pouvez faire interdire la communication ICMP ou quelque chose comme ça s'il y a un pare-feu. La plupart du temps, si un pare-feu a filtré vos paquets, vous n'obtiendrez rien. Certains types de pare-feu filtrent uniquement les paquets TCP SYN et laissent passer tous les autres paquets TCP. C'est pourquoi l'analyse ACK est utile. Vous obtiendrez RST en réponse si l'hôte est actif. Puisque vous ne savez pas quel pare-feu est en place, essayez les deux.

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

Ensuite, bien sûr, vous pouvez utiliser les analyses basées sur ICMP avec -PE -PP -PM.

Une autre méthode intéressante est -PO avec un numéro de protocole inexistant. Souvent, seuls TCP et UDP sont pris en compte sur les pare-feu et personne ne teste ce qui se passe lorsque vous essayez un protocole inconnu. Vous obtenez un protocole ICMP inaccessible si l'hôte est actif.

nmap -vvv -sn -PO160 10.1.2.0/24

Vous pouvez également demander à nmap d'ignorer la découverte d'hôte (-Pn) et d'effectuer une analyse de port sur chaque hôte. C'est très lent, mais vous pourriez trouver d'autres hôtes que la découverte d'hôte a ratés pour une raison quelconque.


Cela ressemble à une excellente réponse, et maintenant je vais devoir vous demander de me nourrir en cuillère en incluant les commandes à exécuter pour chaque tâche. Je suis spécifiquement intéressé par la façon d'utiliser Nmap pour répondre à ma question (ne me faites pas lire les documents :)
tshepang

5
@Tshepang: J'ai ajouté quelques exemples de nmap mais j'espère que vous envisagez de lire la documentation. Nmap est l'un des meilleurs outils réseau et la documentation est bien écrite, ça vaut vraiment le temps.
stribika

9

J'aime la ip neighcommande fournie avec IpRoute2.

ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE

Cependant, je pense que cela ne fonctionne qu'avec des arpnœuds -able.


Que fait-il exactement? Fr me, il ne répertorie que quelques entrées.
tshepang

Je pense qu'il envoie simplement un arp à l'adresse IP de diffusion et répertorie ce qui répond. Honnêtement, je ne sais pas comment cela fonctionne.
xenoterracide

1
man ipmontre ce que fait le voisin ou le voisin.
slm

9

Installez nmap et exécutez nmap -sP <mynetwork>.


Je comprends Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds.
tshepang

1
@Tshepang - Je l'ai fait nmap -sP 192.168.0.*et il a renvoyé une liste de sortie du formulaire:Nmap scan report for justin-desktop2 (192.168.0.61) Host is up (0.00056s latency).
Justin Ethier

@justin J'utilise la version 5.00 et elle montre maintenant un certain nombre de machines sur mon réseau, avec le formulaire Host 192.168.2.23 is up (0.0088s latency)..
tshepang

3
Avec quoi devrais-je remplacer <mynetwork>?
tshepang

@tshepang Le numéro de réseau, avec la partie hôte mise à zéro et un masque CIDR. Comme ceci: 192.169.1.0/24
Keith

0

Pour les deux réponses: AUCUN nmap requis / AUCUN sudo requis .

Réponse 1

$ arp

Réponse 2

S'appuyant sur les xénoterracides, répondez avec ip neighet 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))

Télécharger via

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.