Comment découvrir l'adresse MAC des machines d'un réseau?
J'ai besoin de découvrir les machines disponibles uniquement avec seulement le BIOS installé (pas de système d'exploitation).
Et je dois trouver l'adresse MAC des machines qui fonctionnent.
Comment découvrir l'adresse MAC des machines d'un réseau?
J'ai besoin de découvrir les machines disponibles uniquement avec seulement le BIOS installé (pas de système d'exploitation).
Et je dois trouver l'adresse MAC des machines qui fonctionnent.
Réponses:
Vous devrez accéder aux informations disponibles sur vos commutateurs gérés. Si vous avez un réseau non géré, je ne vois pas de moyen de le faire.
Cela suppose que les ordinateurs cibles sont capables de Wake-on-LAN (WoL). Dans ce cas, un lien vers le serveur est établi (recherchez le voyant de lien flashy) et la carte réseau écoute les diffusions WoL. AFAIK, la carte ne répond à rien dans cet état. S'il n'y a pas de WoL, la carte est probablement éteinte (pas de LED de liaison) et cela ne fonctionnera pas du tout.
Si les machines ne sont pas sous tension, cela est impossible.
S'ils sont sous tension, je suppose que cela est également impossible, car vous avez besoin d'une pile réseau minimale pour répondre au moins à des choses comme les requêtes ARP, etc., qui ne fonctionne pas sans OS installé.
Ce qui pourrait fonctionner (je ne sais pas et je ne peux pas tester pour le moment) est que la carte réseau et le commutateur communiquent lorsque la carte réseau est branchée ou sous tension et le commutateur apprend l'adresse MAC de cette façon. Si tel est le cas, vous auriez besoin d'un commutateur gérable et recherchez-le pour les adresses mac connectées.
Vous pouvez utiliser Nmap pour effectuer une analyse ARP très rapide en utilisant la syntaxe suivante.
nmap -sn -PR -oX nmap.xml 192.168.1.0/24
Cela utilise le ping ARP (uniquement les demandes ARP, pas d'ICMP, UDP ou TCP, pas de numérisation de port) pour analyser la plage d'adresses IP spécifiée et enregistrer les réponses d'adresse IP / d'adresse MAC / de nom d'hôte dans un fichier XML (nmap.xml).
J'ai écrit un script PowerShell qui munes le fichier XML et crache un fichier CSV . Cela filtre également les hôtes en panne. Je trouve cela plus facile à utiliser dans Excel que le fichier XML. Voici le script si quelqu'un est intéressé.
# Define nmap input file
$NmapXMLFile = ".\nmap.xml"
# Initialize object array
$HostItems = @()
# Initialize index
$x = 0
# Load XML
[xml]$NmapXML = Get-Content $NmapXMLFile
# Loop through XML
ForEach ($HostNode in $NmapXML.nmaprun.host) {
# Check host status
If ($HostNode.status.state -eq "up") {
# Create host object
$HostObj = "" | Select-Object ID, Hostname, 'IP Address', 'MAC Address', Vendor
# Store ID and increment index
$HostObj.ID = $x += 1
# Store hostname
$HostObj.Hostname = $HostNode.hostnames.hostname.name
# Loop through addresses
foreach ($HostAddress in $HostNode.address) {
# Check IP address
If ($HostAddress.addrtype -eq "ipv4") {
# Store IP address
$HostObj.'IP Address' = $HostAddress.addr
}
# Check MAC address
If ($HostAddress.addrtype -eq "mac") {
# Store MAC address
$HostObj.'MAC Address' = $HostAddress.addr
# Store vendor
$HostObj.Vendor = $HostAddress.vendor
}
}
# Append host object to array
$HostItems += $HostObj
}
}
# Print host items
$HostItems
# Export host items to CSV
$HostItems | Export-CSV -NoType .\nmap.csv
Scantype n not supported
. Apparemment, le drapeau -sn
n'est pas pris en charge sur Nmap 4.x.
show mac-address-table
).À partir d'une machine Unix, en écoutant les ordinateurs sans système d'exploitation sur le même LAN, et si possible via un concentrateur (pas un commutateur), vous pouvez essayer
arp
cat /proc/net/arp
Vous pouvez également essayer wireshark
(à partir d'une machine sous OS). Encore une fois, il vaut mieux utiliser un concentrateur pour intercepter toutes les communications des machines du BIOS, y compris les diffusions.
Le problème fondamental ici est qu'il s'agit d'informations de couche 2, donc seuls les commutateurs les voient. Certains commutateurs fourniront une interface qui vous permet de jeter un œil à ces informations, mais s’ils ne le font pas, la seule façon de les obtenir est d’intercepter dans la couche physique, par exemple en installant un concentrateur entre les commutateurs.
Si vous utilisez des commutateurs gérés, ces informations sont probablement disponibles à partir du commutateur. Certains routeurs / commutateurs intégrés aux utilisateurs finaux (comme ceux qui conditionnent souvent les modems ADSL également) auront parfois une liste de clients DHCP qui inclut des adresses MAC.
Si vous utilisez des commutateurs non gérés et que vous voulez vraiment connaître ces informations, je vous recommande d' acheter un concentrateur et de remplacer temporairement le commutateur par celui-ci. Vous pouvez ensuite connecter un ordinateur exécutant Wirehark au concentrateur et capturer les paquets ARP pour enregistrer les adresses MAC. Alternativement, vous pouvez utiliser Echolot pour le faire pour vous - il suit sélectivement les paquets ARP et crée une base de données d'adresses MAC.
Voici une solution qui a fonctionné pour moi:
Une petite astuce très simple que vous pourriez faire en 2 secondes est de travailler avec le fait que tout système d'exploitation écrit une table avec l'adresse MAC et IP de tout appareil avec lequel il interagit. Ceci est connu comme ARP TABLE. La question est donc de savoir comment forcer une interaction avec tous les appareils? Vous pouvez simplement envoyer une requête ping à l'adresse IP de diffusion. Ce n'est pas parfait, car certains appareils ou pare-feu peuvent bloquer la requête ping ICMP, mais cela fonctionne dans de nombreux scénarios.
Les commandes sont (dans une adresse de diffusion ipv4 192.168.0.255):
ping 192.168.0.255
Sous Linux, utilisez:
ping -b 192.168.0.255
Attendez quelques secondes que les appareils répondent, puis procédez comme suit:
arp -a
Pour le ping IPV6, voir le commentaire de Giedrius Rekasius
Pas parfait, mais pas d'outils, pas de recherche, pas de perte de temps, fonctionne dans tous les principaux systèmes d'exploitation et est rapide.
ping6 -c2 -n ff02::1%wlan0
. Il suffit de mettre à jour le nom de l'interface réseau à utiliser, l'adresse IP à utiliser à cet effet est toujours ff02::1
quel que soit le réseau sur lequel vous vous trouvez.
Comme d'autres l'ont dit, si vous avez des commutateurs non gérés ou BootP / PXE, il n'y a pas de moyen facile d'obtenir les MAC des machines sans système d'exploitation.
Si vos machines en cours d'exécution exécutent des fenêtres, il est facile de créer un script (généralement via WMI)
Il y a un tas d'exemples ici: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0. 0
J'allais suggérer de changer la table d'adresses MAC, mais quelqu'un a déjà couvert celle-ci ci-dessus.
Si l' un des ordinateurs sont en cours d' exécution d' un système d' exploitation et ont une adresse IP, vous pouvez connecter dans le même réseau local, vous pouvez utiliser NMAP (ou une version GUI comme Zenmap) à partir http://nmap.org/ ... si vous exécutez ceci sur le même LAN, vous devriez obtenir les informations d'adresse MAC pour toutes les machines qui répondent.
Il serait utile de mieux comprendre pourquoi vous devez obtenir les adresses MAC, au cas où il existe un meilleur moyen d'obtenir le même résultat.
Vous pouvez collecter des informations ARP avec par exemple un arpalert fonctionnant en continu. Avec cela, vous aurez l'ensemble des adresses ARP vues après le démarrage.
Les machines hors tension ne vous enverront pas de réponses ARP.
Pour accélérer le processus, vous pouvez utiliser une analyse ping nmap (nmap -sP) sur votre réseau à partir du serveur sur lequel vous exécutez arpalert, afin de déclencher tous les hôtes possibles (en direct et en cours d'exécution) pour répondre à votre requête arp. En exécutant régulièrement le scan ping nmap plus tard, vous avez de meilleures chances d'attraper un hôte vivant peu de temps.
extrait de arpalert:
Si le MAC n'est pas dans la liste, arpalert lance un script utilisateur prédéfini avec l'adresse MAC et l'adresse IP comme paramètres.
extrait de nmap:
Nmap ("Network Mapper") est un utilitaire gratuit et open source (licence) pour l'exploration de réseau ou l'audit de sécurité
Regardez ici:
J'utilise: nmap -sP 192.168.1.1/24
(remplacez 192.168.1.1/24 par votre plage IP)
Il ne vous montrera que les machines qui fonctionnent et vous donnera quelque chose comme:
[root@x ~]# nmap -sP 192.168.1.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-22 14:20 EST
Nmap scan report for 192.168.1.1
Host is up (0.0019s latency).
MAC Address: ZZ:ZZ:54:2E:E9:B4 (Unknown)
Nmap scan report for 192.168.1.33
Host is up (0.035s latency).
MAC Address: ZZ:ZZ:FA:2D:D7:D8 (Intel Corporate)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: ZZ:ZZ:31:02:98:19 (Asustek Computer)
Nmap scan report for 192.168.1.34
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.88 seconds
Si aucun système d'exploitation n'est installé, vous pouvez utiliser un live cd linux, nmap est probablement disponible dans la plupart d'entre eux