Enumerar Usuarios Windows Remotamente utilizando user2sid y sid2user

  • Posted on: 21 August 2014
  • By: ReYDeS

oUser2sid y sid2user son dos utilidades para Windows, las cuales permiten consultar la SAM (Security Account Manager) para encontrar valores SID (Security IDentifier). El objetivo de user2sid es obtener el SID en base a un nombre de cuenta, ya sea de manera local o remota. Y el objetivo de sid2user es obtener el nombre de cuenta en base al SID ya sea local o remota.

El SID (Security IDentifier) es un valor único de una longitud variable utilizado para identificar un objeto. Cada cuenta tiene un único SID entregado por una autoridad, como un controlador de dominio Windows, y es almacenado en una base de datos de seguridad.

Se procede a establecer una sesión nula contra el objetivo de evaluación. Una sesión nula permite extraer información sobre un sistema de manera anónima.


C:\> net use \\192.168.0.X\IPC$ “” /user:””

Se utiliza el comando nbtstat con la opción “-a”, para obtener una lista de la tabla de nombres del equipo remoto. Se lista el tipo de nombre para indicar si cada nombre es único o un nombre de grupo. También se proporciona el estado de cada nombre, indicando si el nombre esta registrado o sin registrar en la red.


C:\> nbtstat 192.168.0.X

Obtenida esta información, se utilizará el nombre del objetivo de evaluación en lugar de su dirección IP.

Se ejecuta la herramienta user2sid con un nombre usuario común en windows, el cual es “invitado” o “guest”.


C:\> user2sid \\PCWINDOW invitado

Obtenido el SID del usuario "invitado" en el objetivo de evaluación, se procede a ejecutar el comando sid2user para realizar la enumeración de otras cuentas de usuarios modificando el valor RID (Relative IDentifier), es decir se modifica el número 500 obtenido por el número 501.


C:\> sid2user.exe \\PCWINDOW 5 21 1169816469 XXXXXXXXX 1985994515 501

Se ha obtenido la cuenta del usuario Administrador del sistema remoto. Este procedimiento se continúa realizando mediante el incremento del RID (Relative IDentifier).

Pero dado que realizar este proceso de manera manual sería tedioso, se aplica algo de Kung Fu en línea de comandos para Windows.


C:>\ for /L %i in (500,1,1000) do @sid2user.exe \\PCWINDOW 5 21 1169816469 XXXXXXXXX 1985994515 %i | find /i "Name is"

El listado obtenido puede ser escrito opcionalmente a un archivo utilizando una redirección de los datos de salida.

Uno de los objetivos durante una Prueba de Penetración es obtener una gran cantidad de información sobre el objetivo de evaluación, sobre todo cuentas de usuarios. En algunos escenarios esto es factible utilizado una sesión nula. Estos nombres de usuarios obtenidos serán utilizados luego para tratar de realizar ataques por fuerza bruta o similares, y encontrar credenciales válidas de acceso hacia el sistema.

Fuentes:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa379571%28v=vs....
http://www.windowsecurity.com/whitepapers/windows_security/Windows-Enume...
http://www.windowsnetworking.com/kbase/WindowsTips/Windows2003/AdminTips...
http://technet.microsoft.com/en-us/library/cc757216%28v=ws.10%29.aspx

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense