¿Puede su nombre de usuario de Windows o Linux estar expuesto a sitios web?

7

Por ejemplo:

  • El acceso a un sitio web con javascript habilitado puede exponer información como el navegador, las fuentes y la hora local. ¿Puede, en teoría, exponer su nombre de usuario de Windows o Linux?

  • ¿Guardar un archivo o adjuntar un archivo (como lo hacen normalmente los correos electrónicos) expondrá su nombre de usuario de Windows o Linux, accediendo a su árbol de directorios?

¿El nombre de usuario que utilizamos para iniciar sesión en los sistemas operativos puede estar expuesto a los sitios web de alguna manera?

    
pregunta Strapakowsky 31.05.2013 - 09:30
fuente

1 respuesta

7

El nombre de usuario no suele estar expuesto a sitios web. Quizás se puede hacer con Java de alguna manera, pero no por el navegador por defecto. Tenga en cuenta que me refiero a Java de Oracle, no ¡Javascript!

Algunos sitios web utilizan la autenticación de Active Directory. Si visita uno con Internet Explorer que se ejecuta en el mismo dominio de Windows en el que se encuentra su computadora, iniciará sesión automáticamente. Esto utiliza algún tipo de autenticación de nivel HTTP y transmite su dominio, nombre de usuario y el nombre de host de la computadora. Su contraseña no se transmite; el navegador solo responde a un desafío del servidor y prueba su identidad de esa manera.

Internet Explorer solo envía esta información (nombre de usuario, dominio y nombre de host) después de que el servidor envió un desafío, así como el dominio, y el dominio coincide con el dominio del cliente. Por ejemplo, si el servidor anuncia que está ejecutando el dominio Contoso y el usuario también ha iniciado sesión en el dominio Contoso , entonces Internet Explorer continuará con la autenticación y proporcionará un nombre de usuario, dominio, nombre de host y respuesta de desafío, donde el desafío La respuesta es un sustituto de contraseña.

Si el dominio no coincide, por ejemplo, el servidor anuncia que pertenece a Contoso2 , se le solicitarán al usuario las credenciales (nombre de usuario y contraseña). Si los usuarios ingresan estas credenciales, el nombre de usuario, por supuesto, se enviará al servidor, junto con su nombre de host. La contraseña todavía está confirmada por un desafío, esto nunca se envía. Tenga en cuenta que incluso si ingresa un nombre de usuario y contraseña en blanco, su nombre de host seguirá siendo expuesto. La única salida segura es el botón de cancelar.

La única forma de recuperar el nombre de usuario automáticamente, por lo que he podido encontrar, es saber el dominio en el que el usuario ha iniciado sesión y hacer que el usuario use Internet Explorer. Supongo que el nombre de dominio suele ser adivinable, por lo que podría ser posible realizar phishing dirigido de alto perfil. Nuevamente, nunca puede recuperar la contraseña del usuario automáticamente, simplemente el nombre de usuario y el nombre de host, por lo que no estoy seguro de cuán útil es esto. Tal vez para hacer un ataque de phishing dirigido aún más personal.

Otro método para obtener el nombre de usuario es mediante este control ActiveX:

<script type="text/javascript">
alert(new ActiveXObject("WScript.Network").UserName);
</script>

Probando esto en Internet Explorer 9, da dos advertencias. En primer lugar, una advertencia en la parte inferior de la pantalla que pregunta si quiero activar los componentes ActiveX en la página, y una segunda advertencia me pregunta si estoy realmente seguro porque podría ser perjudicial. Con algo de ingeniería social, puede activar el nombre de usuario de esta manera ... pero probablemente haya formas más fáciles.

Otros navegadores, como Firefox, siempre solicitan un nombre de usuario y una contraseña cuando visitan dichos sitios web. Creo que estos datos se envían sin cifrar, pero no he buscado eso. Lo mejor es utilizar siempre la seguridad de la capa de transporte (por ejemplo, https) al realizar cualquier tipo de autenticación. Pero este tipo de autenticación no es automática, por lo que probablemente no sea relevante para su pregunta.

Actualización: algo que olvidé mencionar que pregunté era si el nombre de usuario puede estar expuesto al seleccionar archivos con el elemento input type=file . En resumen: no. Los navegadores más antiguos pueden hacer esto , pero en versiones recientes de Chrome, Firefox e IE9 I ' Lo he probado y ninguno de ellos expone el camino completo. En Firefox, puede observar el mozFullPath propiedad , pero esto devuelve una cadena vacía cuando Javascript intenta acceder a ella. Solo el código con privilegios especiales (me imagino como complementos) puede usar esto. También la especificación de la API del archivo HTML5 menciona la palabra "ruta" solo una vez, para indicar que no debe estar expuesta.

Descargo de responsabilidad: gran parte de las cosas de Active Directory se probó simplemente, puede haber errores. Tengo dos dominios aquí para que sea más fácil ver el comportamiento con Wireshark cuando inicias sesión en el dominio propio o en el otro. Utilicé IE9 para el cliente y Windows Server 2008 para el servidor. También usé otro servidor de prueba (php) basado en esta secuencia de comandos: enlace

    
respondido por el Luc 31.05.2013 - 10:03
fuente

Lea otras preguntas en las etiquetas