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.
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:
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.
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.
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
Scantype n not supported
. Görünüşe göre bayrak -sn
Nmap 4.x'te desteklenmiyor.
show mac-address-table
).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.
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.
İşte benim için çalışan bir çözüm:
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.
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 .
Diğerlerinin söylediği gibi, yönetilmeyen anahtarlarınız veya BootP / PXE'niz varsa, işletim sistemi olmayan makinelerin MAC'lerini almanın kolay bir yolu yoktur.
Çalışan makineleriniz pencereler çalıştırıyorsa, komut dosyası oluşturmak kolaydır (genellikle WMI aracılığıyla)
Burada bir sürü örnek var: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0 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.
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:
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