Puerta trasera oculta en Windows

Hoy me gustaría comentaros un error en el procesamiento del Microsoft Windows SAM que permite acceso administrativo continuo a través de un usuario oculto.
El impacto del mismo afecta a todas las versiones de Windows puesto que permiten modificaciones en tiempo real del Security Accounts Manager (SAM), con lo cuál un atacante puede crear una puerta trasera mediante una cuenta administrativa oculta para acceso continuo a un sistema una vez que el mismo ha sido comprometido.
Una vez que el atacante ha comprometido el sistema puede secuestrar una cuenta conocida o bien crear una cuenta regular oculta usando el caracter de espacio en blanco (ALT+0160). En cualquier caso dicha cuenta tendrá todos los permisos de la cuenta integrada de administrador local de la máquina compartiendo a su vez el escritorio y el perfil del mismo.
De cara al resto de usuarios de la máquina el usuario oculto no aparecerá dentro del grupo de administradores locales sino dentro del de usuarios.

Estos son los pasos indicados por StenoPlasma para explotar dicha vulnerabilidad:

Paso 1: Comprometemos el equipo Windows usando cualquier método disponible.

Paso 2:
Creamos una cuenta de usuario con un nombre en blanco a través del comando ‘net user ” ” P@$$w0rd /add’. Se puede usar la combinación de teclas ALT+0160 para crear el espacio en blanco entre las comillas dobles.

Paso 3: Creamos una tarea programada interactiva para que se ejecute un minuto después de crear el usuario. Esta tarea programada lanzará un intérprete de comandos con la cuenta NT Authority\SYSTEM. Bajo Windows 2000, XP y 2003 ejecutamos ‘at 11:24 /interactive cmd.exe’ mientras que bajo Windows Vista, 7 o 2008 Server sólo tenemos la opción de editar el registro mediante ‘schtasks’.

Paso 4: Una vez que obtenemos el intérprete de comandos con SYSTEM, abrimos el editor del registro (regedit) desde la línea de comandos.

Paso 5: Nos situamos en ‘HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names’

Paso 6: Hacemos clic en el nombre de la nueva cuenta de usuario.

Paso 7: Tomamos nota del campo “Type” para ese usuario.

Paso 8: En este ejemplo, el campo “Type” del usuario backdoor es 0x40D y el del administrador built-in (renombrado a root) es 0x01F4.

Paso 9: Bajo ‘HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users’ hacemos clic en 0000040D.

Paso 10: En el panel derecho hacemos doble clic sobre el valor “F”.

Paso 11: Vamos al séptimo registro de los valores hexadecimales.

Paso 12: Cambiamos el valor de “0D 04” a “F4 01”.

Paso 13: Salimos y volvemos a entrar con la nueva cuenta de backdoor.

Paso 14: Ahora te darás cuenta que estas usando el escritorio del administrador y sus privilegios.

Paso 15: Cuando ejecutes el comando ‘net localgroup Administrators’ veremos la cuenta backdoor sólo si estamos logeados con el usuario backdoor, es decir, el resto de usuarios sólo verán el resto de cuentas normales.

Paso 16: Borra cualquier cuenta temporal que hayas podido crear durante la ejecución de este método.

PRODUCTOS VULNERABLES:

Microsoft Windows 2000 Workstation, Windows 2000 Server, Windows 2003 Server, Windows XP, Windows Vista, Windows 7 y Windows 2008 Server (Windows Vista, Windows 7 y Windows 2008 Server son más difíciles de explotar porque no se puede conseguir un shell con SYSTEM, aunque si es posible editar el registro para completar el método).
Matías Moreno Cárdenas

Publicado por: Matías Moreno Cárdenas

Analista de Seguridad IT y hacking ético / Desarrollador de Software Multiplataforma. Actualmente analista de seguridad informática y hacking ético en Grupo SIA

Deja un comentario