Por vicisitudes de la vida me ha tocado enredar con el almacén de credenciales (
Windows Credential Manager) en
Microsoft Windows 7 - funciona igual en
Windows 8, Windows 10 o
Window Server 2012 -, todo gracias a ese preciado producto de
Microsoft que es
Outlook y su integración con
Active Directory. Para lo que quiero hacer,
Powershell es algo así como la herramienta definitiva ya que igual te vale para
administrar los sistemas eficientemente como para hacer
Pentesting con PowerShell en una red
Windows. En el artículo de hoy, el uso de
PowerShell podría decirse que su uso es para ambos fines, y que dependerá de cada uno el uso que se le quiera dar.
|
Figura 1: Obtener la contraseña de Lync con PowerShell |
Para simplificar aún más las cosas voy a hacer uso del
script Credman.ps1 del bello JimmyJoeBob Alooba que permite gestionar el almacén de credenciales de máquinas
Windows, y que en este caso vamos a utilizar con la cuenta del propio usuario de la máquina - sin ser administrador del equipo -.
Acceso a datos de Windows Credential Manager
El funcionamiento es sencillo. Tras descargarlo, hay que firmar el script digitalmente, ya que tenemos aplicada la política
AllSigned como forma de fortificación de ejecución de software en nuestros equipos
Windows. En un primer intento, tras ejecutarlo y lista mis credenciales, sin sacar una contraseña alguna por el momento.
|
Figura 2: Listando credenciales almacenadas en Windows Credential Manager de Windows |
Hay que comentar que en el almacén de credenciales de
Microsoft no solo se guarda información permanente - lo que marcamos como
"recordar contraseña" -, sino que también aparece información volátil y de sesión. Y aquí es donde entra en juego
Microsoft Lync 2013.
Las credenciales de MS Lync (Skype for Business)
Supongo que si digo que actualmente se llama
"Skype for Business" queda todo explicado sobre la idea de la herramienta. Una de las mejores posibilidades es la de integrarse en
Active Directory e integrarse con líneas de telefonía dentro de la estrategia de
Comunicaciones Unificadas que muchas empresas aplican. Además, se enlaza con
Microsoft Outlook para obtener contactos, almacenar conversaciones, etcétera.
Una vez que se ha instalado en el equipo
Microsoft Lync 2013 y se ha iniciado sesión, el comportamiento del script cambia. Si volvemos a lanzar exactamente el mismo
script podemos ver que salen mis contraseñas de
Microsoft Lync 2013 en texto claro.
|
Figura 3: Con Microsoft Lync con una sesión activa se muestran las credenciales |
Si alguien es capaz de acceder durante unos instantes a mi sesión de escritorio y lanzar el
script, en
PowerShell podría robar mis credenciales para conectarse al correo electrónico, recursos de red, tal vez
VPNs, etcétera. También podría hacer llamadas telefónicas a través de otra instancia de
Microsoft Lync utilizando mi identidad y cargar todas las llamadas a mi cuenta.
Las credenciales de la cuenta de
Microsoft Lync quedan ahí mientras que la sesión está abierta e incluso pasado un buen rato después de que se cierre la sesión se sigue mostrando Solo se borra automáticamente si se vuelve a abrir
Microsoft Lync con otra cuenta o si reiniciamos la sesión. La explicación de por qué están las credenciales ahí se debe a la integración del servicio con todos los servicios. En algún momento necesitará autenticarse en otros servicios y por eso recuerda la contraseña en la sesión, aunque tal vez debería guardarla cifrada en el
Windows Credential Manager.
|
Figura 4: En Windows Credential Manager se muestra que la cuenta tiene la contraseña guardada, pero no se ve. |
Una última prueba que queda por hacer es ver si la
GUI del administrador de credenciales también muestra la contraseña o no.
|
Figura 5: Edición de datos de la credencial |
Como se puede ver, parece que no. El interfaz gráfico sí que tiene alguna protección para no mostrar esa información sensible. Ni siquiera se muestra el campo con herramientas como
WinSpy. Este funcionamiento es similar a cómo
se guarda la cuenta de la sesión de Windows cuando se autentica en un equipo con un usuario de Windows Live.
La ventaja de este sistema tan sencillo de usar el script para listar las identidades frente a usar una herramienta más agresiva como
Mimikatz o los volcados de memoria - para el caso de
Microsoft Lync o cualquier otro sistema que almacene credenciales temporalmente sin cifrar - es que no es bloqueado por el sistema
antimalware del sistema ni necesitamos privilegios de administrador para acceder a los datos. Al fin y al cabo no es más que utilizar herramientas del propio sistema como
PowerShell con los permisos de usuario.
Autor: Jdeisusi