En teoría, sí, el estándar webrtc permite que un sitio web determine su dirección IP local, por lo que puede crear una conexión directa para usted a otro navegador web, permitiendo conexiones directas entre navegadores para configurar la transmisión de video por ejemplo.
Este sitio web tiene una prueba de concepto que le muestra su dirección IP interna y externa:
enlace
Una vez que el sitio web tiene ambas direcciones IP internas, puede usar javascript para intentar configurar una conexión a través de las ip internas de pc1 a pc2, si esto tiene éxito, sabe que estas 2 PC están en la misma red local.
observación: Chrome en iOS, Internet Explorer y Safari aún no implementan WebRTC, consulte enlace para obtener más información.
Actualización 23/08/2018:
Otro posible vector de ataque ha llamado mi atención últimamente:
DNS reencuadernación, desde wikipedia:
En este ataque, una página web maliciosa hace que los visitantes ejecuten una secuencia de comandos del lado del cliente que ataca a las máquinas en cualquier otro lugar de la red. En
En teoría, la política del mismo origen evita que esto suceda:
Los scripts del lado del cliente solo tienen permiso para acceder al contenido en el mismo
host que sirvió el guión. La comparación de nombres de dominio es un elemento esencial.
parte de la aplicación de esta política, por lo que la reconexión de DNS evita esto
Protección al abusar del Sistema de Nombres de Dominio (DNS).
Este ataque se puede usar para violar una red privada al hacer que el navegador web de la víctima acceda a las máquinas en direcciones IP privadas y
Devuelve los resultados al atacante. También se puede emplear para utilizar el
máquina víctima de spam, ataques de denegación de servicio distribuidos o
Otras actividades maliciosas.
Esto funciona al tener un sitio web / servidor de DNS malintencionado que establece un ttl muy bajo para sus solicitudes de DNS y luego tener javascript ejecutando scripts en la dirección del sitio web original.
La mitad del tiempo el dns responderá con la ip externa correcta, por lo que el sitio web se cargará, pero después de unos minutos cuando el javascript se activa e intenta acceder al sitio nuevamente, el dns responderá con una dirección IP local (por ejemplo, 192.168. 0.1, esto puede cambiar cada pocos minutos) y el navegador ejecutará el javascript y se conectará a los dispositivos en la red local.