¿Cómo descubro la dirección MAC de las máquinas en una red?
Necesito descubrir las máquinas que están disponibles solo con BIOS instalado (sin sistema operativo).
Y necesito encontrar la dirección MAC de las máquinas que están funcionando.
¿Cómo descubro la dirección MAC de las máquinas en una red?
Necesito descubrir las máquinas que están disponibles solo con BIOS instalado (sin sistema operativo).
Y necesito encontrar la dirección MAC de las máquinas que están funcionando.
Respuestas:
Tendrá que acceder a la información disponible en sus conmutadores administrados. Si tiene una red no administrada, no veo una manera de hacerlo.
Esto supone que las computadoras de destino son capaces de Wake-on-LAN (WoL). En este caso, se establece un enlace al servidor (busque el LED de enlace llamativo) y la tarjeta de red está escuchando transmisiones de WoL. AFAIK, la tarjeta no responde a nada en este estado. Si no hay ningún WoL, la tarjeta probablemente esté apagada (sin LED de enlace) y no funcionará en absoluto.
Si las máquinas no están encendidas, esto es imposible.
Si están encendidos, supongo que esto también es imposible, ya que necesita una pila de red mínima para al menos responder cosas como consultas ARP, etc., que no funciona sin un sistema operativo instalado.
Lo que podría funcionar (no lo sé y no puedo probar en este momento) es que la NIC y el conmutador se comunican cuando la NIC está enchufada o encendida y el conmutador aprende la dirección MAC de esta manera. Si este es el caso, necesitaría un conmutador manejable y consultarlo para obtener direcciones MAC conectadas.
Puede usar Nmap para hacer un escaneo ARP muy rápido utilizando la siguiente sintaxis.
nmap -sn -PR -oX nmap.xml 192.168.1.0/24
Esto utiliza ping ARP (solo solicitudes ARP, sin ICMP, UDP o TCP, sin escaneo de puertos) para escanear el rango de direcciones IP especificado y registrar las respuestas de dirección IP / dirección MAC / nombre de host en un archivo XML (nmap.xml).
Escribí un script de PowerShell que modifica el archivo XML y escupe un archivo CSV . Esto también filtra los hosts inactivos. Encuentro esto más fácil de usar en Excel que el archivo XML. Aquí está el guión si alguien está interesado.
# 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
. Aparentemente, la bandera -sn
no es compatible con Nmap 4.x.
show mac-address-table
).Desde una máquina Unix, escuchando las computadoras sin SO en la misma LAN, y si es posible a través de un Hub (no un Switch), puede intentar
arp
cat /proc/net/arp
También es posible que desee probar wireshark
(desde una máquina con sistema operativo). Nuevamente, es mejor usar un Hub para capturar cualquier comunicación de las máquinas BIOS, incluidas las transmisiones.
El problema básico aquí es que esta es información de Capa 2, por lo que solo los conmutadores la ven. Algunos conmutadores proporcionarán una interfaz que le permite echar un vistazo a esta información, pero si no lo hacen, la única forma de obtenerla es interceptar en la capa física, por ejemplo, instalando un concentrador entre el conmutador.
Si usa conmutadores administrados, es probable que esta información esté disponible en el conmutador. Algunos enrutadores / conmutadores integrados por el usuario final (como los que a menudo también incluyen módems ADSL) a veces tienen una lista de clientes DHCP que incluye direcciones MAC.
Si está utilizando conmutadores no administrados y realmente desea conocer esta información, le recomiendo que compre un concentrador y reemplace temporalmente el conmutador con él. Luego, puede conectar una computadora que ejecute wireshark al concentrador y capturar paquetes ARP para registrar direcciones MAC. Alternativamente, puede usar Echolot para hacer esto por usted: rastrea selectivamente los paquetes ARP y crea una base de datos de direcciones MAC.
Aquí hay una solución que funcionó para mí:
Un pequeño truco muy fácil que puedes hacer en 2 segundos es trabajar con el hecho de que cualquier sistema operativo escribe una tabla con la dirección MAC e IP de cualquier dispositivo con el que interactúa. Esto se conoce como ARP TABLE. ¿Entonces la pregunta es cómo forzar una interacción con todos los dispositivos? Simplemente puede hacer ping a la dirección IP de transmisión. Esto no es perfecto, ya que algunos dispositivos o firewall pueden bloquear la solicitud de ping ICMP, pero funciona en muchos escenarios.
Los comandos son (en una dirección de difusión ipv4 192.168.0.255):
ping 192.168.0.255
En uso de Linux:
ping -b 192.168.0.255
Espere unos segundos para que los dispositivos respondan, luego haga lo siguiente:
arp -a
Para ping IPV6 ver el comentario de Giedrius Rekasius
No es perfecto, pero sin herramientas, sin investigación, sin pérdida de tiempo, funciona en todos los principales sistemas operativos y es rápido.
ping6 -c2 -n ff02::1%wlan0
. Solo es necesario actualizar el nombre de la interfaz de red que se utilizará, la dirección IP que se utilizará para ese propósito siempre es ff02::1
independiente de la red en la que se encuentre.
Como han dicho otros, si tiene conmutadores no administrados o BootP / PXE, no hay una manera fácil de obtener los MAC de las máquinas sin sistema operativo.
Si sus máquinas en ejecución ejecutan Windows, es fácil realizar un script (generalmente a través de WMI)
Aquí hay un montón de ejemplos: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0font>.Type=SearchText&f[0font>.Value=MAC+address&x=0&y= 0 0
Iba a sugerir cambiar la tabla de direcciones MAC, pero alguien ya ha cubierto esa de arriba.
Si alguna de las computadoras son ejecutando un sistema operativo y tiene una dirección IP, puede conectarse a la misma LAN, puede usar NMAP (o una versión GUI como Zenmap) desde http://nmap.org/ ... si ejecuta esto en la misma LAN, debe obtener información de la dirección MAC de cualquier máquina que responda.
Sería útil comprender más acerca de por qué necesita obtener las direcciones MAC, en caso de que haya una mejor manera de lograr el mismo resultado.
Puede recopilar información ARP con, por ejemplo, un arpalert que se ejecuta continuamente. Con eso, tendrá el conjunto de direcciones ARP vistas después del inicio.
Las máquinas apagadas no le enviarán respuestas ARP.
Para acelerar el proceso, puede usar un escaneo de ping nmap (nmap -sP) en su red desde el servidor en el que está ejecutando arpalert, para activar todos los hosts posibles (en vivo y en ejecución) para responder su consulta arp. Con la ejecución de escaneo de ping de nmap regularmente más tarde, tiene más posibilidades de atrapar a un host de corta vida.
fragmento de arpalert:
Si el MAC no está en la lista, arpalert lanza un script de usuario predefinido con la dirección MAC y la dirección IP como parámetros.
fragmento de nmap:
Nmap ("Network Mapper") es una utilidad gratuita y de código abierto (licencia) para exploración de red o auditoría de seguridad
Mira por aquí:
Yo uso: nmap -sP 192.168.1.1/24
(reemplace 192.168.1.1/24 con su rango de IP)
Le mostrará solo las máquinas que están funcionando y le dará algo como:
[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 no tiene un sistema operativo instalado, puede usar un Live CD de Linux, probablemente nmap esté disponible en la mayoría de ellos