En el siguiente post vamos hacer un breve repaso a la escala de privilegios mediante el uso de “Incognito”. Después de las fiestas navideñas, y una vez comenzado este nuevo año, vamos a comenzar a repasar trucos y comandos publicados allá por el 2010, para así poder refrescar conocimientos y seguir investigando en la materia.
Según establece Offensive Security “La aplicación Incognito, se encuentra integrado en Mestasploit y en su instancia Meterpreter. Se puede encontrar más información acerca en el documento “Security Implications of Windows Access Tokens – A Penetration Tester’s Guide”. Incognito realiza el escalado de privilegios mediante la reproducción de la clave temporal cacheada en el sistema que es empleada cuando le solicita autenticación, permitiendo acceso al sistema.”
Con esto imaginemos ahora que nos encontramos realizando una auditoría lógica a la entidad ACME, y hemos obtenido acceso a un servidor Windows (a lo largo del post lo denominaremos “Gospi” para darle más realismo a nuestro entorno), disponiendo de una sesión abierta en dicha máquina mediante meterpreter.
Por tanto, una vez obtenida la máxima información posible ubicada en Gospi, ejecutamos Incognito mediante los comandos habituales de meterpreter “use incognito” (podemos ver los comandos permitidos mediante el comando “help”).
meterpreter > use incognito Loading extension incognito...success.
Y procedemos a ver los tokens de los usuarios cacheados en Gospi mediante el comando “list_tokens –u”, obteniendo los usuarios.
Delegation Tokens Available ======================================== ACME\ Administrador NT AUTHORITY\LOCAL SERVICE NT AUTHORITY\NETWORK SERVICE NT AUTHORITY\SYSTEM
Como podemos observar disponemos de los usuarios locales, así como también, por suerte, cacheado el acceso del Administrador del dominio ACME en el sistema. Y por tanto, aprovecharemos dicho usuario para escalar privilegios, ejecutando el comando “impersonate_token ACME\\Administrador”.
meterpreter > impersonate_token ACME\\Administrador [+] Delegation token available [+] Successfully impersonated user ACME\Administrador
Una vez especificado el token que deseamos suplantar, podemos verificar que disponemos de acceso al sistema con la cuenta de Administrador del dominio ACME, ejecutando el comando “getuid”.
meterpreter > getuid Server username: ACME\ Administrador
Dado que disponemos de acceso al dominio de la entidad, vamos a proceder a crear un usuario en dicho dominio con permisos de administrador. Por tanto, abriremos una terminal mediante el comando “Shell”, y ahora haremos uso de comandos habituales de Windows.
Para dar de alta un usuario en el dominio ejecutaremos el siguiente comando “net user <usuario> <contraseña> /add /domain”. Y por último, lo añadiremos al grupo de Administrador del dominio “net group “Domain Admins” <usuario> /add /domain”.
Con esto, disponemos de un usuario con permisos de administrador en el dominio de la entidad ACME, y podemos disponer de acceso a diversos sistemas que sean controlados por el dominio de la entidad, así como acceder a la información confidencial almacenada.
Es muy común en la mayoría de las organizaciones disponer de servidores antiguos o sin los parches pertinentes, al ser servidores “offline”. Esto puede suponer un riesgo en la organización, no por la información que pueda contener (obsoleta o no confidencial), si no porque permita realizar un escalado de privilegios, y un atacante pueda acceder al dominio de la entidad como ha ocurrido en este caso en ACME. Obteniendo información confidencial, así como pudiendo pivotar a cualquier equipo de la red.
Aquello que consideramos menos crítico, suele ser la mayor fuente de ingresos de incidentes de seguridad.
Fuente:
http://www.offensive-security.com/metasploit-unleashed/Fun_With_Incognito
Fantástico ejemplo de lo que puede ocurrir cuando los responsables de la red se confían y viven de ideas preconcebidas. A ver si con esta clase de información espabilan un poco :)
La verdad es que Incognito es una maravilla de herramienta.