Report Weak Cipher Suites en RDP

Conjunto de cifrados débiles en protocolo RDP (Puerto 3389)

Para los que ejecutan a menudo el escaneo de vulnerabilidades sobre estaciones o servidores con sistema operativo Microsoft Windows se han topado usualmente con el mensaje de “Report Weak Cipher Suites” asociado al puerto 3389 (Remote Desktop o RDP).

Pues bien, la vulnerabilidad está asociada netamente a los parametros de cifrado o ciphers que por defecto viene con el sistema operativo. Estos parámetros inseguros son los siguientes:

  • DES 56/56
  • NULL
  • RC2 128/128
  • RC2 40/128
  • RC2 56/128
  • RC4 40/128
  • RC4 56/128
  • RC4 64/128
  • RC4 128/128
  • Triple DES 168

Para poder solucionar o remediar la vulnerabilidad solamente se requerirá la deshabilitación de los cifrados debiles y la habilitación de cifrados más fuertes, para ello existe dos formas de hacerlo, la primera seria ejecutar un script via PowerShell y la segunda seria con ayuda de la herramienta “IISCrypto”.

 
Remediación via PowerShell:

1. Abrir la aplicación "Windows Power Shell ISE".
2. Ejecutar el siguiente comando:

New-Item 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers' -Force | Out-Null
$insecureCiphers = @(
'DES 56/56',
'NULL',
'RC2 128/128',
'RC2 40/128',
'RC2 56/128',
'RC4 40/128',
'RC4 56/128',
'RC4 64/128',
'RC4 128/128',
'Triple DES 168'
)
Foreach ($insecureCipher in $insecureCiphers) {
  $key = (Get-Item HKLM:).OpenSubKey('SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers', $true).CreateSubKey($insecureCipher)
  $key.SetValue('Enabled', 0, 'DWord')
  $key.close()
  Write-Host "Weak cipher $insecureCipher has been disabled."
}

3. Luego de deshabilitar los cifrados inseguros, se deberá habilitar los cifrados seguros:

  • AES 128/128
  • AES 256/256

Para ello se debe de ejecutar el siguiente comando en “Windows Power Shell ISE”:

$secureCiphers = @(
'AES 128/128',
'AES 256/256'
)
Foreach ($secureCipher in $secureCiphers) {
$key = (Get-Item HKLM:).OpenSubKey('SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers', $true).CreateSubKey($secureCipher)
New-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\$secureCipher" -name 'Enabled' -value '0xffffffff' -PropertyType 'DWord' -Force | Out-Null
$key.close()
Write-Host "Strong cipher $secureCipher has been enabled."
}

4. Será necesario reiniciar el sistema operativo para que tome efecto los cambios efectuados.


 
Remediación via IISCrypto:

IIS Crypto, creada por Nartac Software, es una herramienta muy útil para gestionar y optimizar los protocolos y cifrados del sistema operativo. En mi experiencia, resulta especialmente práctica para ajustar la configuración de seguridad de forma rápida y confiable.

1. Se requiere descargar la aplicación IISCrypto, ello lo podran realizar ingresando a la web de Nartac https://www.nartac.com/, caso contrario, podrian descargar directamente de haciendo clic aquí.

2. Al abrir el programa nos mostrará lo siguiente:
1

3. Aquí solamente será necesario desmarcar todos los cifrados débiles y activar los cifrados mas fuertes mencionados al inicio tal como se muestra en la siguiente imagen:

4. Por último, marcaremos el check de “Reboot” y le daremos clic en “Apply”. Esto mandará a reiniciar el equipo para que tome efecto los cambios realizados: