Páginas

19 julio, 2018

Solución al problema de licencias de conexiones RDP entre Windows Server 2016 y Windows Mobile (RDM), Windows CE o versiones antiguas RDP 5.x / 6.x

Actualmente RDP (Remote Desktop Protocol) está en versión 10.x,versiones más actualizadas que incluyen importantes mejoras de seguridad. Como pueden ser: mayor longitud de clave generada por el servidor de licencias RDS 4096 bits con un algoritmo de seguridad SHA256, soportando SSL/TLS y NLA (Network Level Authentication).

Versiones iguales o inferiores a RDP 6.x no soportan las características anteriores. El límite de longitud para las claves es de 2048 bits con algoritmo de seguridad SHA1 (Secure Hash Algorithm 1).

Esta clave se genera en base al método de activación de licencias del administrador de licencias de Escritorio remoto. Si el método empleado es "Web Browser" (Explorador Web) las claves de licencias, se pueden generar un requisitos más bajos que si lo activásemos con otro método, con una longitud de 2048 bits SHA1.

Si aún no tenemos activado el servidor de administración de licencias de Escritorio remoto y queremos tener la compatiblidad entre vesriones más antiguas y actuales para establecer conexiones RDP. Selecionaremos la opción de activar por el método de conexión Web Browser.

En caso de que ya tengamos activado el servidor de licencias procederemos del siguiente modo.

En el servidor Windows Server 2016 que recibirá la conexión RDP desde el dispotivo Windows Mobile o Windows CE comprobamos que NLA esté desactivado.

Figura 1: Desactivar NLA (Autenticación a nivel de red) en Windows Server 2016.

Añadir un rol de instalación de Servicios de Escritorio remoto para VDI (Virtual Desktop Infraestructure).

Figura 2: Añadir rol de instalación de RDS.

En este paso podría ser "Implementación estándar" o "Inicio rápidio".

Figura 3: Implementación estándar para el rol RDS.

Para este escenario será implementación de escritorio basada en sesión.

Figura 4: Implementación de escritorio basada en sesión.

Una vez agregados los servicios RDS. Creamos una colección y no dirigimos a ella.

Figura 5: Colección de host de sesión de Escritorio remoto.

Dentro de las tareas de colección de RDS configuramos las opciones de seguridad para conexiones RDP.
  • Nivel de seguridad de protocolo de Escritorio remoto (RDP).
  • Nivel de cifrado: Bajo.
  • Deshabilitamos NLA.
Figura 6: Configuración de opciones de seguridad para conexiones RDP.

Como comentaba al principio, si elegimos un método de conexión basada en Explorador Web. No es necesario realizar ninguna otra acción y las conexión RDP entre Windows Mobile o Windows CE y Windows Server 2012/2016 estarán funcionales.

De igual modo, seleccionamos el método de conexión por Explorador Web o Web Browser y aceptamos.

Figura 7: Selección del método de conexión "Web Browser". 

Eliminamos los tipos de claves REG_BINARY correspondientes a las claves de certificado X509 del método anterior de licencias RDS. En el registro del servidor de administrador de licencias de Escritorio remoto.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM
  • Certificate
  • X509 Certificate
  • X509 Certificate ID 
  • X509 Certificate2

Figura 8: Eliminación de claves de licencias generadas por el administrador de licencias de Escritorio remoto.

¿Por qué eliminar estas claves de certificados del registro? 

Entre versiones de RDP actuales la longitud de clave de certificados es de 4096 bits con un algoritmo de seguridad SHA256, estas claves se generan en la primera instancia de conexión entre un acuerdo entre el nivel de seguridad compatible entre las dos máquinas que establecen la conexión RDP.

El equipo del usuario que mantiene la conexión con el servidor al que se conecta establece la longitud y algoritmo de esta clave, si el equipo que se conecta usa una versión de protocolo reciente no habrá problemas, pero si el equipo cliente se trata de un sistema Windows Mobile o similar este no podrá conectarse debido a que el servidor administrador de licencias no puede generar claves de una longitud y algoritmo inferior a los requisitos mínimos que establece el método de conexión (figura 7), por ese motivo el método de conexión Web Browser tiene unos requisitos menos restrictivos y puede generar claves de longitud más corta y cifrados de menor nivel.

Conexión establecida

Como equipo cliente para este ejemplo usaré un Windows XP SP1 que dispone de versión RDP v5.x (funcionaría igual para Windows Mobile, Windows CE o similares con versiones RDP v5.x o v6.x).

Vemos como la conexión RDP se estableció correctamente. En ese momento Windows XP SP1 estableció el acuerdo de certificados X509 de conexión. Si añadimos la desactivación de NLA y el nivel de cifrado más bajo sin SSL/TLS, la conexión es posible.

Figura 9: Conexión RDP establecida entre versioens RDP antiguas y Windows Server 2016.

Saludos!

11 julio, 2018

Ver las passwords Wifis almacenadas a las que nos hemos conectado

Cada vez que desde nuestro equipo Windows nos conectamos a una red inalámbrica WiFi y recordamos la password de indentificación de la red, esta se alamacena en el sistema.

Con el uso de la utilidad de comandos netsh (en la sección de wlan) podemos visualizar las redes que tenemos almacenadas y también la password de acceso que en su momento le indicáramos para autenticarnos en dicha red.

Visualizar los nombres de las redes alamacenadas por Windows en el equipo.
netsh wlan show profile
Establecemos el nombre de la red (SSID - Service Set Identifier) y el valor clear para key.
netsh wlan show profile name=SSID key=clear
Para este ejemplo se usó la red con SSID "prueba".

Figura 1: Netsh - Ver perfiles wlan y obtención de password wifi almacenada.

Otra opción sería usar el "Centro de redes y recursos compartidos" del "Panel control". Una opción con entorno gráfico de Windows 7 es que podíamos ver las redes almacenadas y editar su configuración, en Windows 10 solo podemos ver las redes almacenadas pero no editar su configuración sino estamos conectados en ese momento a esa red. Por lo que hacerlo de una forma gráfica solo nos servirá para ver la password almacenada de la Wifi actual en la que estemos conectados.

Seleccionamos la red Wifi en la que actualmente estemos conectados. Propiedades inalámbricas > Pestaña Seguridad > Mostrar carácteres (nos saltará el UAC por seguridad, para ejecutar esto con privilegios administrativos).

Figura 2: Ver password wifi conectada actualmente.


Saludos!

09 julio, 2018

Especificar servidores de licencias y modo de licencias CAL de servicios de Escritorio remoto (RDS)

Este ejemplo sería aplicable para un entorno en la que disponemos de varios Windows Server. Uno de ellos será el que tendrá el rol instalado de Administrador de licencias de Servicios de Escritorio remoto (RDS - Remote Desktop Services) en el que instalaremos licencias CAL (Client Access Licenses) ya sean por usuario o por dispositivo.

En este caso habrá 5 licencias CAL por usuario para RDS.

Figura 1: Administrador de licencias de Escritorio remoto.

En lo que se centrará esta entrada no será en como activar el servidor de licencias e instalar las licencias CAL para RDS. Sino en como especificamos al resto de servidores que, dependiendo de cada caso, también permitirán conexiones de Escritorio remoto, acepten estas conexiones según el número de licencias CAL disponibles.

Si solo aplicamos esto a la misma máquina que es el administrador de licencias no será necesario nada de esto. 

En caso de una máquina sea el administrador de licencias de Escritorio remoto y queramos que ciertos usuarios se conecten a otro servidor, habrá que especificar en ese otro servidor quien está suministrando las licencias RDS y de que modo se tratan las licencias (por usuario o por dispositivo). 

En el caso de que tengamos más de una máquina que admita conexiones por Escritorio remoto es recomendable emplear objetos de directivas de grupo GPO (Group Policy Object) de AD (Active Directory).

Por lo que mostraré como hacerlo mediante la instalación de roles RDS y como hacerlo por medio de una GPO.

Método 1: Instalación de roles RDS para VDI (Virtual Desktop Infrastructure)

Agregamos un rol para instalar servicios de Escritorio remoto para VDI.

Figura 2: Instalación de roles RDS para VDI.

Una vez tenemos instalado servicios de Escritorio remoto, en la sección de información general > Administrador de licencias > "Seleccionar el modo de licencias de Escritorio remoto".

Figura 3: Selección del modo de licencias de Escritorio remoto.

En la sección de "Administración de licencias de Escritorio remoto". Establecemos (en este caso) que el modo de licencias CAL será "Por usuario" y que el servidor que proporcionará las licencias será otro. Se podrían agregar varios en caso de haberlos y definir su preferencia, subiendo y bajando su posición en la lista.

Figura 4: Selección del servidor de licencias y el modo de licencias CAL (por usuario o por dispositivo).

Método 2: Creanción de una GPO de Active Directory

Previamente se debería crear una OU (Organizational Unit) en Active Directory e incluir dentro de esta los equipos a los que vincularemos la GPO (aunque esto dependerá de la organización jerárquica de cada sitio). 

Abrimos el "Administrador de directivas de grupo" (gpmc.msc) de cualquier controlador de dominio, preferiblemente el DC (Domain controller) primario. Creamos una nueva GPO ya vinculada para la la OU donde estarán las máquinas a las que nos conectaremos por Escritorio remoto.

Editamos la GPO y nos situaremos en el siguiente path jerárquico.
Configuración del equipo > Plantillas administrativas > Componentes de Windows > Servicios de Escritorio remoto > Host de sesión de Escritorio remoto > Licencias
Habilitaremos el estado de dos objetos de directiva.

Figura 5: GPO - Licencias CAL para RDS en host de sesión de Escritorio remoto.

Habilitamos: "Usar los servidores de licencias de Escritorio remoto especificados". Especificando el servidor/es administrador de licencias que se usará.

Figura 6: GPO - "Usar los servidores de licncias de Escritorio remoto especificados".

Habilitamos: "Establecer el modo de licencia de Escritorio remoto". Especificamos si se trata de licencias CAL por usuario o por dispositivo (en este caso sería por usuario).

Figura 7: GPO - Establecer el modo de licencia de Escritorio remoto.

Aceptamos y cerramos el editor de directivas de grupo. Finalmente podemos abrir una cmd de los servidores a los que les estaría afectando esta directiva y actualizar las políticas con un: gpupdate /force. Puede que nos solicité cerrar sesión y volver iniciarla. 

Para comprobamos la aplicación de directivas, desde un cmd con un gpresult /r o simplemente rsop (RSoP - Resultant Set of Policy).

Saludos!

04 julio, 2018

Exportar certificados digitales no exportables a PFX (PKCS #12) y restablecer la password de la clave privada con Jailbreak y Mimikatz

En el momento de importar un certificado digital, ya sea para el usuario actual (certmgmt.msc) como para el equipo (certlm.msc), tenemos la opción de establecer dicho certificado como exportable. Esto nos permite exportar el certificado (clave pública) con la clave privada en un mismo fichero en formato pfx.


Figura 1: Checkbox "Marcar clave como exportable" al importar un certificado digital.

Si no marcamos el check "Marcar esta clave como exportable" cuando se importar un certificado. En el momento de exportarlo del almacén de certificados del usuario actual: Botón derecho > todas las tareas > exportar...

Figura 2: Exportar certificado del administrador de certificados.
Vemos desmarcada la opción "Exportar la clave privada".

Figura 3: Intento de exportación de clave privada, opción deshabilitada, certificado no exportable.

Para poder exportar un certificado ya instalado en el almacén de certificados del usuario actual, el cual no podemos exportar junto con la clave privada. Podemos usar dos opciones.

Usando Jailbreak

Jailbreak nos permitirá abrir una consola de Microsoft (MSC) del alamacen de certificados de Windows y poder realizar la exportación de la clave privada estableciendo una nueva password.

Una vez descargado Jailbreak abrimos una consola cmd con el mismo usuario donde tenemos instalado el certificado y nos situamos en el raíz, ejecutamos el proceso por lotes "jbcert32.bat". Este nos lanzará una ventana del alamacén de certificados de usuario (certmgr.msc).

Figura 4: Ejecución de jailbreak para exportar certificados no exportables.

Si quisiéramos ejecutar el almacén local de certificados a nivel de máquina certlm.msc, no el almacén de usuarios como el caso anterior. Ejecutaríamos lo siguiente.
64 bits
jailbreak64.exe %WINDIR%\system32\mmc.exe %WINDIR%\system32\certlm.msc -64

32 bits
jailbreak32.exe %WINDIR%\system32\mmc.exe %WINDIR%\system32\certlm.msc -32
Ahora vemos como al intentar exportar el certificado nos permite exportar la clave privada.

Figura 5: Opción habilitada para exportar clave privada.

Elegimos un formato .pfx (este almacenará tanto la clave pública como la clave privada), podemos también marca la opción de "Exportar todas las propiedades extendidas".

Figura 6: Opciones disponibles para exportar el certificado en formato .pfx.

Podemos establecer una nueva contraseña para la clave privada, este sería el modo de restablecer la clave privada. Al finalizar el asistentte tendremos exportado un certificado .pfx que contiene ambas claves y volver importarlo en otro usuario o equipo.

Figura 7: Establecer una nueva contraseña para la clave privada.

Usando Mimikatz

Otra opción para poder exportar certificados no exportables de forma sencilla es con la herramienta Mimikatz (ya comentada en el blog).

Una vez descargado Mimikatz abrimos una consola cmd y nos ubicamos en el raíz ejecutando "mimikatz.exe" (dependiendo la arquitectura del sistema operativo que tengamos win32 o x64).
crypto::capi
crypto::certificates /export
Esto buscará los certificados del alamacén del usuario actual y los exportará en codificación .der y formato .pfx. La contraseña por defecto que establece Mimikatz es "mimikatz" (sin comillas). 

Podremos cambiar la password importando el certificado y volviendo a exportarlo con la clave privada estacleciendo una nueva password (como se muestra en la figura 7).

Figura 8: Mimikatz - Exportar certificados no exportables.

Saludos!

Entradas Populares