Soy un desarrollador web que está tratando de manejar mejor la seguridad. Estoy tratando de encontrar una manera (en distribuciones basadas en Linux / Debian) para enumerar todas las computadoras en la misma LAN en la que está mi netbook. Intenté "arp -n" pero no creo que sea una lista completa, ya que mi iPhone está en el mismo enrutador wi-fi que mi netbook, y eso no apareció. ¿Hay alguna forma mejor de obtener una lista completa de máquinas que comparten la misma puerta de enlace?
networking
wireless-networking
security
CaptSaltyJack
fuente
fuente
Respuestas:
Obtén nmap . Es el programa que Trinity usó en The Matrix y puedes hacer un escaneo para encontrar todos los dispositivos que están conectados a la LAN en la que estás y más.
Aquí está la guía de referencia.
fuente
sudo apt-get install nmap
Esto es lo que uso, nmap y una dirección que usa la notación de bloque CIDR de la red que desea escanear. Primero debe instalar nmap ya que puede que no venga preinstalado con su distribución. En Ubuntu:
Luego, descubra su dirección de red utilizando ifconfig:
Salida ifconfig para la interfaz que quiero escanear:
Use inet addr y Mask para descubrir la dirección de red en notación CIDR, más sobre CIDR aquí . La dirección es:
Ejecute nmap usando el parámetro -sP, que escaneará no más allá de verificar si el host está en línea:
La salida de nmap se verá así:
Eso es todo, si necesita más ayuda con nmap, consulte la documentación oficial de nmap o ejecute:
fuente
nmap -sA 192.168.1.0/24
La opción nmap-sA
muestra resultados descriptivos similares con una mejor legibilidad, que incluye el nombre del dispositivo, IP, mac, etc., como con la opción-sP
.. Personalmente prefiero -sA sobre -sP por el bien de la legibilidad.arp -n
solo le muestra las máquinas en su LAN con las que su máquina ya ha hablado. Puede hacer que esa lista se llene mejor haciendo ping a las direcciones de multidifusión de transmisión y todos los hosts:La dirección de difusión "todos unos" (en binario). Tenga en cuenta que la mayoría de las pilas de IP traducirán esto a las direcciones de difusión de subred para todas las subredes a las que está conectado:
La dirección de difusión de subred para su subred actual. Asumiendo que estás en 192.168.1.0/24:
La dirección de multidifusión "todos los hosts". Este me gusta mucho porque es más probable que encuentre hosts configurados para otras subredes IP, que están conectados a la misma LAN Ethernet que usted:
Tenga en cuenta que este método, y los otros métodos que he visto mencionados en otras respuestas hasta ahora, solo buscan hosts accesibles por IP en la red actual. Probablemente eso sea todo lo que debe preocuparse, pero es posible que un atacante espíe o haga cosas malas en una red sin ser visible a través de IP.
fuente
ip neigh
yhosts
. NO se requiere nmap / NO se requiere sudo .Basándose en esto, puede construir un script Python:
Descargar vía
(o simplemente
arp
... no vi eso antes)fuente
ip neigh | awk '{ print $1 }' | xargs -n1 host
ip n
para abreviar. Quizás mejorip n | grep REACHABLE
.No encontré las respuestas existentes lo suficientemente satisfactorias, así que pensé en intentarlo. Después de todo, las preguntas frecuentes sugieren proporcionar contexto para los enlaces .
nmap
es genial, aunque un poco confuso de usar. Aquí hay algo que ejecuto para descubrir dispositivos de red locales que en su mayoría se pueden copiar y pegar.nmap -sP
(onmap -sn
) escanea haciendo ping . Hay otras opciones para 'descubrimiento de host', como connmap -sL
onmap -Pn
.Camino # 1.
Camino # 2. Sé que esto funciona, pero no puedo decir si este es el camino correcto.
Me encantaría saber si hay formas más efectivas. Hasta entonces, me atendré a esto.
fuente
Puede intentar hacer ping a toda una subred dada con un pequeño script de shell de Linux, por ejemplo
fuente
ip n
dije FAILED to all.Hunt es una herramienta de línea de comandos que es capaz de crear una lista de máquinas a medida que transmiten información a través de la red. Utiliza datos TCP, UDP, ICMP y ARP para crear una lista de direcciones MAC activas en una red. Es una herramienta pasiva que funciona escuchando en el cable.
fuente
Para una lista más compacta de dispositivos conectados:
Explicación.
nmap -sL 192.168.0.*
enumerará todas las IP en la subred y las marcará con el nombre:Como todos los registros interesantes comienzan con paréntesis
(
y dígitos1
, lo filtramos con| grep \(1
(se necesita una barra invertida para escapar del paréntesis)Quirk
Tenga en cuenta que si dos dispositivos tienen el mismo nombre,
nmap
se mostrará sólo el uno, que estaba conectado a un router últimafuente
Para escanear el estado de un rango de direcciones IP, esto es agradable y simple:
Dónde:
Nota:
-sn
se conocía como-sP
Lo hice en Mac OS X (que se basa en BSD). No estoy seguro de si la versión de Linux tiene alguna diferencia.
fuente
Puede usar fping
sudo apt-get install fping
(en sistemas operativos tipo Debian).fping es similar al ping, pero tiene un rendimiento mucho mejor al hacer ping a varios hosts. La bandera -r 1 le dice a fping que realice solo una ronda. La parte 2> 1 permite que grep filtre la salida.
Mostraría algo como:
También hay un indicador interesante para nmap que le permitiría ver al proveedor de MAC, si lo conoce. Use con sudo para ver las direcciones MAC.
Obtendría por ejemplo:
fuente
1. Solución alternativa si las transmisiones y
nmap
no están disponibles:2a. o simplemente pregunte a su servidor de nombres de dominio :
2b. sin awk
hace ping a todos los dispositivos de red que se pueden hacer ping en la subred 192.168.2.0/24 en paralelo (para reducir el tiempo de ejecución). Después
arp
debe mostrar todos los dispositivos, que respondieron.no comprueba las conexiones activas o actuales, pero enumera todas las conexiones que el servicio de dominio local mantiene una entrada, incluso las realmente antiguas.
Explicación más detallada:
seq 254
para crear todos los números de 1 a 254 (para todos los números de 100 a 150:seq 100 150
)xargs
llamaping
y reemplaza "IP" (-iIP
) con elseq
número de uence de stdin, por lo que 192.168.2.IP cambia a 192.168.2.1 para el primerseq
número,-P
especifica el número deping
procesos concurrentes quexargs
deben iniciarse, elijo la misma cantidad +1 como direcciones ( = 254) estoy interesado.ping
con la dirección IP modificada por xargs (192.168.2.IP
) y solo haciendo ping una vez (-c1
); debe usar el mismo identificador especificado para xargs sobre el-i
argumento en este casoIP
grep time=
Para eliminar todas las líneas que contienen información superflua, solo nos interesan las respuestas, que proporcionan un tiempo de ida y vuelta (= obtuve una respuesta)arp -a
para mostrar pares de nombres válidos (ip)Llamo a esto mi comando pingall y lo hice disponible a través de un alias en
~/.bashrc
:fuente