Làm thế nào để khám phá địa chỉ MAC của các máy trong mạng?


12

Làm cách nào để khám phá địa chỉ MAC của các máy trong mạng?

Tôi cần khám phá các máy có sẵn chỉ với BIOS được cài đặt (không có hệ điều hành).

Và tôi cần tìm địa chỉ MAC của các máy đang hoạt động.



Câu trả lời:


8

Bạn sẽ phải truy cập thông tin có sẵn trên các thiết bị chuyển mạch được quản lý của bạn. Nếu bạn có một mạng không được quản lý, tôi không thấy cách nào để làm điều đó.

Điều này giả định rằng các máy tính mục tiêu có khả năng Wake-on-LAN (WoL). Trong trường hợp này, một liên kết đến máy chủ được thiết lập (tìm đèn LED liên kết hào nhoáng) và card mạng đang nghe chương trình phát sóng WoL. AFAIK, thẻ không trả lời bất cứ điều gì trong trạng thái này. Nếu không có WoL, thẻ có thể bị tắt (không có đèn LED liên kết) và nó hoàn toàn không hoạt động.


7

Nếu các máy không được cấp nguồn, điều này là không thể.

Nếu chúng được cấp nguồn, tôi cũng đoán điều này là không thể, vì bạn cần một ngăn xếp mạng tối thiểu để trả lời ít nhất là những câu hỏi như truy vấn ARP, v.v., không hoạt động nếu không cài đặt HĐH.

Điều có thể hoạt động (tôi không biết và không thể kiểm tra ngay bây giờ) là NIC và công tắc giao tiếp khi NIC được cắm hoặc bật nguồn và công tắc học địa chỉ MAC theo cách này. Nếu đây là trường hợp bạn sẽ cần một công tắc có thể quản lý và truy vấn nó cho các địa chỉ mac được kết nối.


2
Bạn có thể lấy nó mà không cần ngăn xếp mạng nếu nó yêu cầu bootp hoặc pxe boot. Tôi phụ thuộc vào máy xem liệu điều này có hoạt động hay không, tôi nghĩ vậy.
Bart Silverstrim

6

Bạn có thể sử dụng Nmap để thực hiện quét ARP rất nhanh bằng cú pháp sau.

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

Điều này sử dụng ping ARP (chỉ yêu cầu ARP, không ICMP, UDP hoặc TCP, không quét cổng) để quét phạm vi địa chỉ IP được chỉ định và ghi lại địa chỉ IP / địa chỉ MAC / phản hồi tên máy chủ trong tệp XML (nmap.xml).

Tôi đã viết một tập lệnh PowerShell để trộn tệp XML và tạo ra một tệp CSV . Điều này cũng lọc ra các máy chủ xuống. Tôi thấy điều này dễ sử dụng trong Excel hơn tệp XML. Đây là kịch bản nếu có ai quan tâm.

# 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

Tôi đã thử lệnh ở trên, và đã nhận được lỗi Scantype n not supported. Rõ ràng cờ -snkhông được hỗ trợ trên Nmap 4.x.
Stefan Lasiewski

Từ Thay đổi nmap 5.30BETA1:
John Homer

2
Chuyển sang -Pn và -sn và là cú pháp ưa thích để bỏ qua quét ping và bỏ qua quét cổng, tương ứng. Trước đây, các tùy chọn -PN và -sP được khuyến nghị. Điều này thiết lập một cú pháp thường xuyên hơn cho một số tùy chọn vô hiệu hóa các giai đoạn quét: -n không đảo ngược DNS -Pn không phát hiện ra máy chủ -sn không quét cổng Chúng tôi cũng cảm thấy rằng tùy chọn -sP ("ping scan") cũ là sai lệch bởi vì các phiên bản hiện tại của Nmap có thể tiến xa hơn (bao gồm -sC và --traceroute) ngay cả khi quét cổng bị vô hiệu hóa. Chúng tôi sẽ duy trì hỗ trợ cho các tên tùy chọn trước đó trong tương lai gần.
John Homer

Vì vậy, dựa vào đó, bạn sẽ có thể sử dụng cú pháp '-sP' thay cho tham số '-sn' mới hơn. Thật không may, tôi không có phiên bản nmap4 để thử nghiệm.
John Homer

3
  1. Xem thông tin về công tắc / bộ định tuyến của bạn, nếu công tắc đủ cao.
    (Trong lệnh chuyển mạch của Cisco là show mac-address-table).
  2. Nếu máy có thẻ BIOS / Mạng PXE kích hoạt, hãy đọc thông tin từ nhật ký DHCP, vì họ sẽ cố gắng thuê DHCP. Nếu bạn không có DHCP, chỉ cần kết xuất tất cả lưu lượng phát với Wireshark và lọc lưu lượng DHCP. Tất cả các máy mới được cung cấp mà không có hệ điều hành sẽ hiển thị trong lưu lượng.

3

Từ máy Unix, nghe các máy tính không có hệ điều hành trên cùng một mạng LAN và nếu có thể thông qua Hub (không phải Switch), bạn có thể thử

arp
cat /proc/net/arp

Ngoài ra, bạn có thể muốn thử wireshark(từ máy OS-ed). Một lần nữa, tốt hơn là sử dụng Hub để bắt bất kỳ thông tin liên lạc nào từ các máy BIOS, bao gồm cả chương trình phát sóng.


1

Vấn đề cơ bản ở đây là đây là thông tin của Lớp 2, vì vậy chỉ có các công tắc mới nhìn thấy nó. Một số thiết bị chuyển mạch sẽ cung cấp giao diện cho phép bạn xem thông tin này, nhưng nếu chúng không phải là cách duy nhất để có được nó là chặn trong lớp vật lý, ví dụ như cài đặt một trung tâm giữa công tắc.

Nếu bạn đang sử dụng các công tắc được quản lý, thông tin này có khả năng có sẵn từ công tắc. Một số bộ định tuyến / bộ chuyển mạch tích hợp của người dùng cuối (chẳng hạn như loại thường gói modem ADSL) đôi khi sẽ có một danh sách máy khách DHCP bao gồm các địa chỉ MAC.

Nếu bạn đang sử dụng các công tắc không được quản lý và bạn thực sự muốn biết thông tin này, tôi khuyên bạn nên mua một trung tâm và tạm thời thay thế công tắc bằng nó. Sau đó, bạn có thể kết nối một máy tính chạy wireshark với hub và chụp các gói ARP để ghi lại địa chỉ MAC. Thay phiên, bạn có thể sử dụng Echolot để làm điều này cho bạn - nó theo dõi có chọn lọc các gói ARP và xây dựng cơ sở dữ liệu địa chỉ MAC.


Chỉnh sửa - chỉ đọc lại phần về chúng là BIOS mà thôi. Điều này đưa ra những thách thức xa hơn ngoài vấn đề chặn dữ liệu lớp 2 - khách hàng thậm chí có thể không gửi bất kỳ dữ liệu nào qua mạng. Nếu các máy khách có một bios thực hiện DHCP hoặc gửi các gói ARP ra, thì có thể thấy chúng từ công tắc. Tôi không chắc những phiên bản BIOS nào hỗ trợ điều này, tôi biết một số mặc dù vậy.
imoatama

1

Đây là một giải pháp hiệu quả với tôi:

  1. Cho phép khởi động mạng trong BIOS. (Ví dụ: đặt bộ điều hợp mạng của bạn thành "Đã bật với PXE")
  2. Khởi động máy.
  3. Máy sẽ cố gắng khởi động từ mạng, hiển thị cho bạn địa chỉ MAC trong quy trình.

1

Một mẹo nhỏ rất dễ dàng bạn có thể làm trong vòng 2 giây là làm việc với thực tế là bất kỳ hệ điều hành nào cũng ghi một bảng có địa chỉ mac và IP của bất kỳ thiết bị nào mà nó tương tác. Điều này được gọi là BẢNG ARP. Vì vậy, câu hỏi là làm thế nào để buộc một tương tác với tất cả các thiết bị? Bạn chỉ có thể ping địa chỉ IP quảng bá. Điều này không hoàn hảo, vì một số thiết bị hoặc tường lửa có thể chặn yêu cầu ping ICMP, nhưng nó hoạt động trong nhiều tình huống.

Các lệnh là (trong một địa chỉ quảng bá ipv4 192.168.0.255):

ping 192.168.0.255

Trong Linux sử dụng:

ping -b 192.168.0.255

Đợi vài giây để các thiết bị phản hồi, sau đó làm:

arp -a

Đối với ping IPV6, xem bình luận của Giedrius Rekasius

Không hoàn hảo, nhưng không có công cụ, không nghiên cứu, không lãng phí thời gian, hoạt động trong mọi hệ điều hành chính và nhanh chóng.


Tôi thấy việc thực hiện các lệnh như vậy qua IPv6 dễ dàng và đáng tin cậy hơn so với qua IPv4. Một lệnh ví dụ có thể trông như thế này ping6 -c2 -n ff02::1%wlan0. Bạn chỉ cần cập nhật tên của giao diện mạng sẽ sử dụng, địa chỉ IP được sử dụng cho mục đích đó luôn luôn ff02::1bất kể bạn đang sử dụng mạng nào.
kasperd

1

Quét mạng bằng Nmap và sau đó kiểm tra bảng ARP ( arp -atrong bản phân phối Linux).


0

Như những người khác đã nói, nếu bạn có các công tắc không được quản lý, hoặc BootP / PXE, không có cách nào dễ dàng để có được MAC của các máy không có HĐH.

Nếu các máy đang chạy của bạn đang chạy windows, thì kịch bản rất dễ (thường thông qua WMI)

Có một loạt các ví dụ ở đây: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0[.Type=SearchText&f[0[.Value=MAC+address&x=0&y= 0


0

Tôi sẽ đề nghị chuyển đổi bảng địa chỉ MAC, nhưng ai đó đã trình bày ở trên.

Nếu bất kỳ máy tính nào đang chạy HĐH và có địa chỉ IP, bạn có thể kết nối vào cùng một mạng LAN, bạn có thể sử dụng NMAP (hoặc phiên bản GUI như Zenmap) từ http://nmap.org/ ... nếu bạn chạy Điều này trên cùng một mạng LAN, bạn sẽ nhận được thông tin địa chỉ MAC cho bất kỳ máy nào phản hồi.

Sẽ hữu ích để hiểu thêm về lý do tại sao bạn cần lấy địa chỉ MAC, trong trường hợp có cách tốt hơn để đạt được kết quả tương tự.


0

Bạn có thể thu thập thông tin ARP với ví dụ arpalert chạy liên tục. Cùng với đó, bạn sẽ có tập hợp các địa chỉ ARP được nhìn thấy sau khi bắt đầu.

Tắt nguồn máy sẽ không gửi cho bạn trả lời ARP.

Để tăng tốc quá trình, bạn có thể sử dụng quét ping nmap (nmap -sP) trên mạng từ máy chủ bạn đang chạy arpalert, để kích hoạt tất cả các máy chủ có thể (trực tiếp và đang chạy) để trả lời truy vấn arp của bạn. Với việc chạy ping quét nmap thường xuyên sau đó, bạn có cơ hội tốt hơn để bắt được một máy chủ sống ngắn.

đoạn trích từ arpalert:

Nếu MAC không có trong danh sách, arpalert sẽ khởi chạy một tập lệnh người dùng được xác định trước với địa chỉ MAC và địa chỉ IP làm tham số.

đoạn trích từ nmap:

Nmap ("Network Mapper") là một tiện ích (giấy phép) miễn phí và nguồn mở để khám phá mạng hoặc kiểm toán bảo mật

Nhìn xung quanh đây:


0

Tôi sử dụng: nmap -sP 192.168.1.1/24

(thay thế 192.168.1.1/24 bằng dải IP của bạn)

Nó sẽ chỉ cho bạn thấy các máy đang hoạt động và sẽ cung cấp cho bạn một cái gì đó như:

[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

Nếu bạn chưa cài đặt HĐH, bạn có thể sử dụng đĩa cd trực tiếp linux, nmap có thể có sẵn trong hầu hết chúng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.