Listen Sie alle MAC-Adressen und die zugehörigen IP-Adressen in meinem lokalen Netzwerk (LAN) auf.

84

Wie kann ich alle MAC-Adressen und die zugehörigen IP-Adressen der an mein lokales Netzwerk (LAN) angeschlossenen Computer auflisten?

Maythux
quelle
6
Es ist wichtig zu verstehen, dass es nicht möglich ist, die MAC- und IP-
Adresse
Warum setzen Sie !nach einem Fragezeichen? Es ist nicht notwendig und wird nur in Fällen verwendet, in denen die Frage angeschrien wird oder von hoher Bedeutung ist.
kiri
@ Minerz029 danke für die Klarstellung, dass
Maythux
1
sudo tail -f /var/log/messagesTrennen Sie das Gerät, dessen MAC-Adresse Sie suchen, vom Computer und schließen Sie es wieder an.
IceArdor

Antworten:

63

Sie können dazu das Dienstprogramm Nmap verwenden . Nmap ist ein kostenloses Netzwerkscanner-Dienstprogramm.

Versuchen Sie einfach:

sudo nmap -sn 192.168.1.0/24

Bitte ersetzen Sie Ihre Netzwerkkennung und Subnetzmaske.

So finden Sie eine Netzwerk-ID und eine Subnetzmaske

Befehl verwenden ip a:

bash~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c4:85:08:94:ee:9a brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0
    inet6 fe80::c685:8ff:fe94:ee9a/64 scope link valid_lft forever preferred_lft forever

Hier bei Punkt 2 habe ich das wlan0Gerät. Er sagt inet 192.168.3.66/24 brd 192.168.3.255 scope global wlan0, IP - Adresse: 192.168.3.66, Subnet - Mask: 24. Die Netzwerk-ID ist 192.168.3.0, ersetzen Sie einfach die letzte Nummer durch 0.

Oder wie der Mensch nmapsagt:

sudo nmap -sn 192.168.1.0/24

Hier ist ein kleines Zitat aus der Manpage nmap (1) :

-sn (No port scan)

Diese Option weist Nmap an, nach der Hosterkennung keinen Port-Scan durchzuführen und nur die verfügbaren Hosts auszudrucken, die auf den Scan geantwortet haben. Dies wird häufig als "Ping-Scan" bezeichnet. Sie können jedoch auch die Ausführung von Traceroute- und NSE-Hostskripten anfordern.

Dies ist standardmäßig einen Schritt aufdringlicher als der Listenscan und kann häufig für dieselben Zwecke verwendet werden. Es ermöglicht die leichte Aufklärung eines Zielnetzwerks, ohne viel Aufmerksamkeit auf sich zu ziehen.

Zu wissen, wie viele Hosts verfügbar sind, ist für Angreifer wertvoller als die Liste, die durch den Listenscan jeder einzelnen IP-Adresse und jedes einzelnen Hostnamens bereitgestellt wird.

Systemadministratoren finden diese Option häufig ebenfalls nützlich. Es kann leicht verwendet werden, um verfügbare Maschinen in einem Netzwerk zu zählen oder die Serververfügbarkeit zu überwachen. Dies wird oft als Ping-Sweep bezeichnet und ist zuverlässiger als das Pingen der Broadcast-Adresse, da viele Hosts auf Broadcast-Anfragen nicht antworten.

Die standardmäßige Hosterkennung -snbesteht aus einer ICMP-Echoanforderung, TCP SYN an Port 443, TCP ACK an Port 80 und einer ICMP-Zeitstempelanforderung.

Bei Ausführung durch einen nicht privilegierten Benutzer werden nur SYN-Pakete (unter Verwendung eines connectAufrufs) an die Ports 80 und 443 auf dem Ziel gesendet .

Wenn ein privilegierter Benutzer versucht, Ziele in einem lokalen Ethernet-Netzwerk zu scannen, werden ARP-Anforderungen verwendet, sofern nichts --send-ipanderes angegeben wurde. Die -snOption kann mit jedem der Discovery-Sondentypen ( -P*mit Ausnahme der Optionen -Pn) kombiniert werden, um die Flexibilität zu erhöhen.

Wenn eine dieser Optionen für Sondentyp und Portnummer verwendet wird, werden die Standard-Sondentypen überschrieben. Wenn zwischen dem Quellhost, auf dem Nmap ausgeführt wird, und dem Zielnetzwerk strenge Firewalls vorhanden sind, wird die Verwendung dieser erweiterten Techniken empfohlen. Andernfalls könnten Hosts übersehen werden, wenn die Firewall Tests oder deren Antworten verwirft.

In früheren Versionen von Nmap -snwar bekannt als -sP.

c0rp
quelle
Es funktioniert nicht
Maythux
4
Dies muss angepasst werden, damit 192.168.1.0/24es in den IP-Adressbereich des Benutzers geändert wird.
kiri
@ minerz029 Sicher, ich habe die IP
geändert
Ich weiß nicht, ob das der Grund ist, aber unter Linux verwende ich nmap -sP 192.168.1.0/24einen Ping-Scan.
Tiktak
2
Wissen Sie, warum Root-Rechte erforderlich sind, um MAC-Adressaten aus dem Netzwerk zu lesen?
Michael Aquilina
45

arpwird langsam zurückkehren Sie eine Liste der aktiven MAC - Adressen und IP - Adressen oder deren Host - Namen , wenn sie eine haben. Wenn Sie möchten, dass es schneller geht, können Sie verwenden, arp -nwelche DNS-Lookups überspringen sollen. Wenn Sie es in etwas analysieren müssen, arp -anwerden die Spalten mit fester Breite übersprungen.

$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.10.0.11               ether   00:04:ff:ff:ff:d0   C                     eth0
10.10.0.16               ether   00:04:ff:ff:ff:a6   C                     eth0
raspbmc.local            ether   00:1f:ff:ff:ff:9c   C                     eth0
10.10.0.19               ether   00:04:ff:ff:ff:c9   C                     eth0
10.10.0.12               ether   bc:f5:ff:ff:ff:93   C                     eth0
10.10.0.17               ether   00:04:ff:ff:ff:57   C                     eth0
10.10.0.1                ether   20:4e:ff:ff:ff:30   C                     eth0
HPF2257E.local           ether   a0:b3:ff:ff:ff:7e   C                     eth0
10.10.0.15               ether   00:04:ff:ff:ff:b9   C                     eth0
tim                      ether   00:22:ff:ff:ff:af   C                     eth0
10.10.0.13               ether   60:be:ff:ff:ff:e0   C                     eth0

Andernfalls sollte Ihr Router Ihnen eine Vorstellung von den aktiven Geräten geben können (die meisten tun dies).


Edit Per davidcls Kommentar ist diese Antwort nicht so perfekt, wie ich es mir erhofft hatte.

arpstützt sich auf vorherige Kontakte, um zu arbeiten. Meiner Meinung nach sind moderne Geräte auf Broadcast-Ebene jedoch alle so gesprächig (Sie sollten wirklich auf Wireshark achten - es ist eine Aufklärung), dass es unwahrscheinlich ist, dass ein Gerät im Netzwerk vorhanden ist, ohne zumindest auf eine Sendung zu antworten. (Um sicherzugehen, dass Sie mit 10.10.0.255 zuerst alle Geräte im Netzwerk anpingen können und dann wahrscheinlich mehr als 90% der Geräte erhalten.)

Um Ihnen eine Vorstellung davon zu geben, was ich meine, 10.10.0.16 oben ist unser PVR. Es gibt keine direkte Interaktion zwischen meinem PC und dem PVR und es werden keine Dienste auf dem PVR ausgeführt (auch kein UPNP / DLNA).

Nur um die Argumente schnell durchzuspielen ...

  • Aber was ist mit Hackern in meinem Netzwerk?! 1
    Sie können auch ICMP-Pings blockieren. Sie können alle Antworten auf jeden Scan-Typ blockieren.
  • Oh, aber sicher nmapist das immer noch die bestmögliche Lösung.
    Wenn man hier läuft, fehlen immer noch vier Geräte. Vier Geräte, die im Netzwerk aktiv sind. Entweder antworten sie nicht auf die Pings oder nmap wartet nicht lange genug, bis sie antworten ... Ich weiß nicht. nmapist ein großartiges Tool (besonders für das Port-Scannen, das Sie vielleicht als Nächstes durchführen möchten), aber es ist für dieses Problem immer noch etwas umständlich (und etwas langsam). Und nenn mich nicht Shirley.
Oli
quelle
1
Kann ich das Original anzeigen, wenn ich meine MAC-ID mit dem Mac-Wechsler ändere?
Donnerstag,
2
@BYEAskUbuntu Wenn Sie einen MAC-Wechsler verwenden, entspricht Ihr MAC Ihren Einstellungen. Für alle Netzwerkbenutzer ist die Herkunft im Allgemeinen unbekannt, daher kann dies nicht der Fall sein.
Ruslan
3
@ Ruslan Das ist nur paranoid, dass ich sie ausblende ... Ich bin sicher, dass es für eine Person ziemlich schwierig wäre, etwas mit ihnen zu tun, aber Sie wissen nie, wer Sie verfolgt.
Oli
9
Ich bin überrascht von dieser Antwort. "arp" zeigt keine Liste der aktiven MAC-Adressen im lokalen Netzwerk an. "arp" zeigt eine Liste von MAC-Adressen an, die Maschinen entsprechen, die mit der Maschine interagiert haben, auf der sie ausgeführt werden. Wenn in letzter Zeit keine Kommunikation zwischen dem lokalen Computer und einem anderen Computer im Netzwerk stattgefunden hat, wird dieser Computer nicht in der Liste "arp" angezeigt.
Davidcl
5
Ich habe gerade einen kurzen Test in meinem Netzwerk durchgeführt und arp zeigt nur etwa 25% der vorhandenen Geräte an. Wenn der Computer, auf dem arp ausgeführt wird, kein Paket von einem anderen Gerät erhalten hat, wird es nicht in der arp-Liste aufgeführt. Ich würde gerne mehr über die Geräte erfahren, die nmap in Ihrem Netzwerk nicht erkennt. Es gibt Möglichkeiten, sich vor nmap zu verstecken, aber ich habe festgestellt, dass der standardmäßige nmap-Scan ziemlich effektiv ist. Das heißt, es gibt keine ausfallsichere Antwort, denn wenn ein Gerät keinen Datenverkehr generiert und keine Anfragen beantwortet, ist es unsichtbar - aber die meisten Geräte beantworten eine Art von Anfrage.
Davidcl
37

Ich benutze arp-scandafür:

$ sudo arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.2.1     ec:1a:59:61:07:b2       (Unknown)
192.168.2.50    90:59:af:3d:6d:bc       (Unknown)
192.168.2.51    3c:97:0e:48:22:12       (Unknown)
192.168.2.52    00:18:31:87:8f:b0       Texas Instruments

4 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.282 seconds (199.69 hosts/sec). 4 responded
jcrigby
quelle
1
Wenn Sie die Netzwerkschnittstelle wie "Drahtlos" angeben sudo arp-scan -l -I wlan0
möchten
Ja, arp-scan ist in der Tat das "beste Werkzeug für den Job".
Mivk
Das funktioniert bei mir nicht ... Gerät reagiert aus irgendeinem Grund nicht.
Andrew Wagner
Um Arp-Scan zum Laufen zu bringen, musste ich brew install arp-scanin OSX El Capitan arbeiten.
Jamescampbell
17

Sie können verwenden arp-scan.

Installieren Sie mit diesem Befehl:

sudo apt-get install arp-scan

Um alle IP-Adressen und zugehörigen MAC-Adressen aufzulisten, verwenden Sie:

sudo arp-scan --interface=eth0 --localnet

Die Ausgabe sieht folgendermaßen aus:

Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 16777216 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.3 38:60:77:29:31:36   (Unknown)
192.168.1.8 4c:72:b9:7c:bb:7e   (Unknown)
192.168.1.110   00:15:17:5f:d2:80   Intel Corporate
192.168.1.111   00:ff:88:5f:fd:f0   (Unknown)
192.168.1.153   00:15:17:5f:d2:82   Intel Corporate
192.168.1.180   52:54:00:70:04:02   QEMU
192.168.1.199   52:54:00:fe:7f:78   QEMU
Peter Mortensen
quelle
1
Dies findet kein Gerät, das noch keine IP hat ...
Andrew Wagner
9

GUI

Sie können avahi-discoverInstallieren Sie avahi-discover ausprobieren .

  1. Installieren Sie es mit diesem Befehl (oder indem Sie auf den obigen Link klicken):

    sudo apt-get install avahi-discover
    
  2. Führen Sie Avahi Zeroconf Browser oder avahi-discovervon einem Terminal aus.
  3. Sie sollten ein Fenster mit einer Liste der Geräte in Ihrem lokalen Netzwerk sehen.
    Die MAC-Adresse ist die Zeichenfolge in eckigen Klammern.

Befehlszeile

Sie können diesen Befehl in einem Terminal verwenden:

avahi-browse -a -t -d local

Es ist standardmäßig installiert.

kiri
quelle
1
Funktioniert dies, um die MAC-Adresse eines Computers anzuzeigen, auf dem keine Dienste ausgeführt werden?
Eliah Kagan
3
In meinem Fall funktioniert dies nicht für jedes Gerät im Netzwerk. Es ist verdammt ordentlich, aber es zeigt keine dummen Kunden ohne Avahi / Upnp-Dienste.
Oli
5
  1. Scannen Sie zuerst das Netzwerk, um festzustellen, welche Hosts mit nmap -sn 1.2.3.4/24oder erreichbar / online sindfping -g 1.2.3.4/24

  2. Fragen Sie anschließend mit die MAC-Adresse ab, die der IP-Adresse entspricht arping. Pseudocode voraus:

    for i in $(cat list-of-reachable-hosts)
    do 
        arping $i
    done
    
  3. Cheatery: Konsultieren Sie den Arp-Cache Ihres lokalen Switches. das sollte dir einen schönen überblick geben ...

far4d
quelle
3

In Fällen, in denen das NetBIOS-Protokoll unterstützt wird, bevorzuge ich die Verwendung

nbtscan 192.168.1.1-192.168.1.255.

Silveri
quelle
5
Dies erkennt nur Clients, die das NetBIOS-Protokoll unterstützen (Windows und Linux + Samba).
Eric Carvalho
2

Ich war fasziniert von diesem Beitrag. Ich hatte das Bedürfnis danach.

Ich habe ein Shell-Skript geschrieben, das die arpAusgabe mithilfe von awkAnweisungen analysiert und eine HTML-Ausgabe generiert. Wenn Sie das Skript ausführen und die Ausgabe in eine HTML-Datei umleiten, verbleibt eine HTML-Datei mit der IP-Adresse, der vollständigen MAC-Adresse und einem Link zur IEEE OUI-Nachschlageseite. Dies hilft bei der Bestimmung des Kunden anhand des NIC-Herstellers.

printf "<html>\n<title>LAN IPs and their MACs</title>\n<body>\n"
arp -a | awk '{print $2,$4}' | awk -F'[().: ]' '{print $2"."$3"."$4"."$5,$6,$7":"$8":"$9":"$10":"$11":"$12,"<a href=\"http://standards.ieee.org/cgi-bin/ouisearch?"$7$8$9"\">IEEE OUI Lookup "$7"-"$8"-"$9"</a><br>"}'
printf "\n</body>\n</html>\n"

Es ist hilfreich, zuerst einen nmapScan in Ihrem LAN durchzuführen, damit Sie Einträge in der ARP-Tabelle haben. Hoffentlich ist die Formatierung übersetzt. Sie könnten dies auffrischen, um den Text in einem Tabellenformat zu haben.

user38537
quelle
2

Nach einiger Arbeit und Suche habe ich diesen Befehl entdeckt:

nmap -sP -PE -PA21,23,80,3389 192.168.1.*

nmap: Netzwerkerkundungstool und Sicherheits- / Port-Scanner

-sP(Port-Scan überspringen). Diese Option weist Nmap an, nach der Hosterkennung keinen Port-Scan durchzuführen und nur die verfügbaren Hosts auszudrucken, die auf den Scan geantwortet haben. Dies wird häufig als "Ping-Scan" bezeichnet. Sie können jedoch auch die Ausführung von Traceroute- und NSE-Hostskripten anfordern. Dies ist standardmäßig einen Schritt aufdringlicher als der Listenscan und kann häufig für dieselben Zwecke verwendet werden. Es ermöglicht die leichte Aufklärung eines Zielnetzwerks, ohne viel Aufmerksamkeit auf sich zu ziehen. Zu wissen, wie viele Hosts verfügbar sind, ist für Angreifer wertvoller als die Liste, die durch den Listenscan jeder einzelnen IP-Adresse und jedes einzelnen Hostnamens bereitgestellt wird.

-PE; -PP; -PM (ICMP-Ping-Typen). Zusätzlich zu den zuvor erläuterten ungewöhnlichen TCP-, UDP- und SCTP-Hosterkennungstypen kann Nmap die vom allgegenwärtigen Ping-Programm gesendeten Standardpakete senden. Nmap sendet ein ICMP-Paket vom Typ 8 (Echoanforderung) an die Ziel-IP-Adressen und erwartet von verfügbaren Hosts eine Antwort vom Typ 0 (Echoantwort). Leider blockieren viele Hosts und Firewalls diese Pakete jetzt, anstatt als Antwort zu fungieren benötigt von RFC 1122 [2]. Aus diesem Grund sind nur ICMP-Scans für unbekannte Ziele über das Internet selten zuverlässig genug. Für Systemadministratoren, die ein internes Netzwerk überwachen, kann dies jedoch ein praktischer und effizienter Ansatz sein. Verwenden Sie die Option -PE, um dieses Echoanforderungsverhalten zu aktivieren.

-A(Aggressive Scanoptionen). Diese Option aktiviert zusätzliche erweiterte und aggressive Optionen.

21,23,80,3389 Zu durchsuchende Ports

192.168.1.* IP-Bereich. Ersetzen Sie mit Ihrem

Maythux
quelle
1

Nachdem ich es leid war, nmap und die ARP-Kombination zu verwenden, habe ich dieses kleine Programm erstellt, das alle MAC-Adressen für einen bestimmten IP-Bereich abfragt: https://github.com/drkblog/findmacs

drk.com.ar
quelle
Wird sequentiell oder parallel abgefragt?
Peter Mortensen
0

Sie können verwenden arp.

Dies zeigt Ihnen die MAC und die IP's ..


quelle
Dies funktioniert nur für Geräte, mit denen eine Verbindung besteht (z. B. durch einen Ping).
Peter Mortensen