Bir ağdaki makinelerin MAC adresini nasıl keşfedebilirim?


12

Bir ağdaki makinelerin MAC adresini nasıl bulabilirim?

Sadece BIOS yüklü olan işletim sistemlerini keşfetmem gerekiyor (işletim sistemi yok).

Ve makinelerin MAC adresini bulmam gerekiyor.



Yanıtlar:


8

Yönetilen anahtarlarınızda bulunan bilgilere erişmeniz gerekir. Yönetilmeyen bir ağınız varsa, bunu yapmanın bir yolunu görmüyorum.

Bu, hedef bilgisayarların LAN'da Uyandırma (WoL) özelliğine sahip olduğunu varsayar . Bu durumda, sunucuya bir bağlantı kurulur (yanıp sönen bağlantı ışığına bakın) ve ağ kartı WoL yayınlarını dinliyor. AFAIK, kart bu durumda hiçbir şeye cevap vermiyor. Herhangi bir WoL yoksa, kart büyük olasılıkla kapalıdır (bağlantı LED'i yoktur) ve hiç çalışmaz.


7

Makinelere güç verilmiyorsa, bu imkansızdır.

Güç verildiyse, en azından bir işletim sistemi yüklü olmadan çalışmayan ARP sorguları vb. Gibi şeylere cevap vermek için minimal bir ağ yığınına ihtiyacınız olduğu için bu da imkansızdır.

Ne işe yarayabilir (bilmiyorum ve şu anda test edemiyorum) NIC takıldığında veya açıldığında NIC ve anahtarın iletişim kurması ve anahtarın MAC adresini bu şekilde öğrenmesidir. Bu durumda, yönetilebilir bir anahtara ihtiyacınız ve bağlı mac adreslerini sorgulamanız gerekir.


2
Sen belki o bootp ya pxe çizme soran eğer bir ağ yığını olmadan olsun. Makinenin bunun işe yarayıp yaramayacağına bağlı olduğunu düşünüyorum.
Bart Silverstrim

6

Aşağıdaki sözdizimini kullanarak çok hızlı bir ARP taraması yapmak için Nmap kullanabilirsiniz .

nmap -sn -PR -oX nmap.xml 192.168.1.0/24

Bu, belirtilen IP adresi aralığını taramak ve bir XML dosyasına (nmap.xml) IP adresi / MAC adresi / Ana Bilgisayar Adı yanıtlarını kaydetmek için ARP ping kullanır (yalnızca ARP istekleri, ICMP, UDP veya TCP yok, bağlantı noktası tarama yok).

XML dosyasını mühimmat eden ve bir CSV dosyası veren bir PowerShell betiği yazdım . Bu, aşağı ana bilgisayarları da filtreler. Bunu Excel'de kullanmak XML dosyasından daha kolay buluyorum. Eğer ilgilenen varsa işte senaryo.

# 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

Yukarıdaki komutu denedim ve hatayı aldım Scantype n not supported. Görünüşe göre bayrak -snNmap 4.x'te desteklenmiyor.
Stefan Lasiewski

Nmap 5.30BETA1 DeğişimLog:
John Homer

2
Sırasıyla ping taramasını atlamak ve bağlantı noktası taramasını atlamak için tercih edilen sözdizimi olarak -Pn ve -sn olarak değiştirilir. Önceden -PN ve -sP seçenekleri öneriliyordu. Bu, taramanın aşamalarını devre dışı bırakan bazı seçenekler için daha düzenli bir sözdizimi oluşturur: -n ters DNS yok -Pn ana bilgisayar keşfi yok -sn bağlantı noktası taraması yok Eski -sP ("ping tarama") seçeneğinin biraz yanıltıcı olduğunu da hissettik çünkü mevcut Nmap sürümleri, bağlantı noktası taramaları devre dışı olsa bile çok daha ileri gidebilir (-sC ve --traceroute dahil). Öngörülebilir gelecek için önceki seçenek adları için destek tutacağız.
John Homer

Yani buna dayanarak, sen gerektiğini yeni '-sn' parametresi yerine '-sP' sözdizimi kullanabilecektir. Ne yazık ki, test etmek için nmap4'ün bir sürümü yok.
John Homer

3
  1. Anahtar yeterince gelişmişse anahtarınız / yönlendiricinizdeki bilgileri görüntüleyin.
    (Cisco anahtarlarında komut show mac-address-table).
  2. Makinelerde PXE etkinleştirilmiş BIOS / Ağ kartı varsa, DHCP kirası almaya çalışacakları için DHCP günlüklerindeki bilgileri okuyun. DHCP'niz yoksa, tüm yayın trafiğini Wireshark ile boşaltın ve DHCP trafiğini filtreleyin. İşletim sistemi olmayan yeni çalışan tüm makineler trafikte gösterilecek.

3

Unix makinesinden, aynı LAN üzerindeki işletim sistemi olmayan bilgisayarları dinlerken ve mümkünse Hub (Anahtar değil) aracılığıyla deneyebilirsiniz

arp
cat /proc/net/arp

Ayrıca denemek isteyebilirsiniz wireshark(bir OS-ed makinesinden). Yine, yayınlar da dahil olmak üzere BIOS makinelerinden herhangi bir iletişimi yakalamak için bir Hub kullanmak daha iyidir.


1

Buradaki temel sorun, bunun Katman 2 bilgisi olmasıdır, bu nedenle yalnızca anahtarlar bunu görür. Bazı anahtarlar, bu bilgilere göz atmanızı sağlayan bir arabirim sağlar, ancak bunu elde etmenin tek yolu yoksa, örneğin anahtar arasına bir hub takarak fiziksel katmana müdahale etmektir.

Yönetilen anahtarlar kullanıyorsanız, bu bilgilere büyük olasılıkla anahtardan erişilebilir. Bazı son kullanıcı tümleşik yönlendiricileri / anahtarları (genellikle ADSL modemlerini de paketleyen tür gibi) bazen MAC adreslerini içeren bir DHCP istemci listesine sahip olabilir.

Yönetilmeyen anahtarlar kullanıyorsanız ve bu bilgileri gerçekten bilmek istiyorsanız, bir hub satın almanızı ve anahtarı geçici olarak onunla değiştirmenizi öneririm . Daha sonra hub'a wireshark çalıştıran bir bilgisayarı bağlayabilir ve MAC adreslerini kaydetmek için ARP paketlerini yakalayabilirsiniz. Alternatif olarak bunu sizin için yapmak için Echolot kullanabilirsiniz - ARP paketlerini seçerek izler ve bir MAC adresi veritabanı oluşturur.


Düzenle - yalnızca BIOS olmaları hakkındaki bölümü tekrar okuyunuz. Bu, katman 2 verisini yakalama sorununun ötesinde başka zorluklar da sunar - istemciler ağ üzerinden herhangi bir veri bile gönderemeyebilir. İstemcilerin DHCP yapan veya ARP paketlerini gönderen bir bios'ları varsa, bunları anahtardan görmek mümkün olmalıdır. Hangi BIOS sürümlerinin bunu desteklediğinden emin değilim, bazılarının bunu yaptığını biliyorum.
imoatama

1

İşte benim için çalışan bir çözüm:

  1. BIOS'ta ağ önyüklemesini etkinleştirin. (Örneğin, ağ bağdaştırıcınızı "PXE ile etkin" olarak ayarlayın)
  2. Makineyi başlatın.
  3. Makine ağdaki önyüklemeyi deneyecek ve işlemdeki MAC adresini gösterecektir.

1

2 saniye içinde yapabileceğiniz çok kolay bir numara, herhangi bir işletim sisteminin etkileşime girdiği herhangi bir cihazın mac ve IP adresiyle bir tablo yazması gerçeğiyle çalışmaktır. Bu ARP TABLO olarak bilinir. Yani soru, tüm cihazlarla etkileşimi nasıl zorlayacağımızdır? Yayın IP adresine basitçe ping atabilirsiniz. Bu mükemmel değildir, çünkü bazı cihazlar veya güvenlik duvarı ICMP ping isteğini engelleyebilir, ancak birçok senaryoda çalışır.

Komutlar (bir ipv4 192.168.0.255 yayın adresinde):

ping 192.168.0.255

Linux kullanımında:

ping -b 192.168.0.255

Cihazların yanıt vermesi için birkaç saniye bekleyin, ardından şunları yapın:

arp -a

IPV6 ping için bkz. Giedrius Rekasius yorumu

Mükemmel değil, ancak hiçbir araç, araştırma yok, zaman kaybı yok, her büyük işletim sisteminde çalışır ve hızlıdır.


Bu tür pingleri IPv6 üzerinden IPv4'ten daha kolay ve güvenilir buluyorum. Örnek bir komut şöyle görünebilir ping6 -c2 -n ff02::1%wlan0. Kullanılacak olan yalnızca ağ arayüzünün adını güncellemeniz gerekir, bu amaç için kullanılacak IP adresi ff02::1, hangi ağda olduğunuzdan bağımsız olarak her zaman olur .
kasperd

1

Ağı Nmap ile tarayın ve ardından ARP tablosunu kontrol edin ( arp -aLinux dağıtımlarında).



0

MAC adres tablosunu değiştirmeyi önerecektim, ama biri zaten bunu yukarıda kapladı.

Bilgisayarların Varsa edilir bir IP adreslerini bir işletim sistemi çalıştıran ve varsa, aynı LAN içine bağlanabilir, aralarından NMAP (veya Zenmap gibi bir GUI sürümü) de kullanabilir http://nmap.org/ koşarsan ... bunu aynı LAN'da yanıtlayan makineler için MAC adres bilgilerini almalısınız.

Aynı sonucu elde etmenin daha iyi bir yolu olması durumunda neden MAC adreslerini almanız gerektiğiyle ilgili daha fazla bilgi edinmek yararlı olacaktır.


0

ARP bilgilerini örneğin sürekli çalışan bir arpalert ile toplayabilirsiniz. Bununla, başlangıçtan sonra görülen ARP adresleri kümesine sahip olacaksınız.

Kapatılan makineler size ARP yanıtları göndermez.

İşlemi hızlandırmak için, arp sorgunuzu yanıtlamak üzere tüm olası (canlı ve çalışan) ana bilgisayarları tetiklemek için arpalert çalıştırdığınız sunucudan ağınızda bir nmap ping taraması (nmap -sP) kullanabilirsiniz. Daha sonra düzenli olarak nmap ping taraması yaparak, kısa süre yaşayan bir ana bilgisayarı yakalama şansınız daha yüksektir.

arpalert'ten snippet:

MAC listede yoksa, arpalert önceden tanımlanmış bir kullanıcı komut dosyasını MAC adresi ve IP adresi ile parametre olarak başlatır.

nmap'tan snippet:

Nmap ("Network Mapper") ağ arama veya güvenlik denetimi için ücretsiz ve açık kaynaklı (lisans) bir yardımcı programdır

Buraya bakın:


0

Kullanıyorum: nmap -sP 192.168.1.1/24

(192.168.1.1/24'ü IP aralığınızla değiştirin)

Size yalnızca hazır olan makineleri gösterecek ve size şöyle bir şey verecektir:

[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

Yüklü bir işletim sisteminiz yoksa linux live cd kullanabilirsiniz, nmap muhtemelen çoğunda kullanılabilir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.