Entornos restrictivos - Citrix
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Numerosas organizaciones aprovechan plataformas de virtualización como Terminal Services, Citrix, AWS AppStream, CyberArk PSM y Kiosk para ofrecer soluciones de acceso remoto con el fin de satisfacer sus necesidades comerciales. Sin embargo, en la mayoría de las organizaciones se implementan medidas de "bloqueo" en sus entornos de escritorio para minimizar el posible impacto de miembros del personal malintencionados y cuentas comprometidas en la seguridad general del dominio. Si bien estas restricciones de escritorio pueden obstaculizar a los actores de amenazas, existe la posibilidad de que "escapen" del entorno restringido.
Obtener acceso a un Dialog Box
.
Utilizar el cuadro de diálogo para lograr command execution
.
Escalar privilegios
para obtener mayores niveles de acceso.
En ciertos entornos, donde se implementan medidas de protección mínimas, puede incluso haber un acceso directo estándar a cmd.exe
en el menú Inicio, lo que podría facilitar el acceso no autorizado. Sin embargo, en un entorno lock-down
altamente restrictivo, cualquier intento de localizar "cmd.exe
" o "powershell.exe
" en el menú Inicio no arrojará resultados. De manera similar, acceder C:\Windows\system32
a través del Explorador de archivos generará un error, lo que impedirá el acceso directo a utilidades críticas del sistema. Obtener acceso al "Símbolo del sistema/CMD" en un entorno tan restringido representa un logro notable, ya que proporciona un amplio control sobre el sistema operativo. Este nivel de control permite a un atacante recopilar información valiosa, lo que facilita una mayor escalada de privilegios.
Existen muchas técnicas que se pueden utilizar para salir de un entorno Citrix. Esta sección no cubrirá todos los escenarios posibles, pero analizaremos las formas más comunes de realizar una fuga de Citrix.
Cuando intentamos visitar C:\Users
en el Explorador de archivos, descubrimos que está restringido y se produce un error. Esto indica que se ha implementado una política de grupo para restringir que los usuarios exploren directorios en la unidad C:\
mediante el Explorador de archivos. En tales situaciones, es posible utilizar cuadros de diálogo de Windows como un medio para eludir las restricciones impuestas por la política de grupo. Una vez que se obtiene un cuadro de diálogo de Windows, el siguiente paso suele implicar navegar hasta una ruta de carpeta que contenga ejecutables nativos que ofrecen acceso interactivo a la consola (es decir, cmd.exe). Por lo general, tenemos la opción de ingresar directamente la ruta de la carpeta en el campo de nombre de archivo para obtener acceso al archivo.
Numerosas aplicaciones de escritorio implementadas a través de Citrix están equipadas con funcionalidades que les permiten interactuar con archivos en el sistema operativo. Funciones como Guardar, Guardar como, Abrir, Cargar, Explorar, Importar, Exportar, Ayuda, Buscar, Escanear e Imprimir, generalmente brindan a un atacante la oportunidad de invocar un cuadro de diálogo de Windows. Existen múltiples formas de abrir un cuadro de diálogo en Windows utilizando herramientas como Paint, Bloc de notas, Wordpad, etc. Trataremos el uso de este método MS Paint
como ejemplo para esta sección.
Ejecute Paint
desde el menú Inicio y haga clic en File > Open
para abrir el cuadro de diálogo.
Si se establecen restricciones, el Explorador de archivos no permite el acceso directo a los recursos compartidos SMB en la máquina del atacante ni al servidor Ubuntu que aloja el entorno Citrix. Sin embargo, al utilizar la ruta UNC dentro del cuadro de diálogo de Windows, es posible sortear esta limitación. Este enfoque se puede emplear para facilitar las transferencias de archivos desde una computadora diferente.
Inicie un servidor SMB desde la máquina Ubuntu usando el script de Impacket smbserver.py
.
De regreso al entorno de Citrix, inicie la aplicación "Paint" a través del menú de inicio. Navegue hasta el menú "Archivo" y seleccione "Abrir", lo que hará que aparezca el cuadro de diálogo. Dentro de este cuadro de diálogo de Windows asociado con Paint, ingrese la ruta UNC \\10.13.38.95\share
en el campo designado "Nombre de archivo". Asegúrese de que el parámetro Tipo de archivo esté configurado en "Todos los archivos
". Al presionar la tecla "Enter", se logra ingresar al recurso compartido.
Debido a la presencia de restricciones dentro del Explorador de archivos, la copia directa de archivos no es viable. Sin embargo, un enfoque alternativo implica ejecutar con click derecho
los archivos ejecutables y luego ejecutarlos. Haga clic derecho en el binario pwn.exe
y seleccione Open
, lo que debería indicarnos que lo ejecutemos y se abrirá una consola cmd.
El ejecutable pwn.exe
es un binario compilado personalizado desde un archivo pwn.c
que, al ejecutarse, abre el cmd.
Luego podemos usar el acceso cmd obtenido para copiar archivos del recurso compartido SMB al directorio de escritorio de pmorgan.
En los casos en los que se imponen restricciones estrictas al Explorador de archivos, se pueden emplear editores de sistemas de archivos alternativos como Q-Dir
o Explorer++
como solución alternativa. Estas herramientas pueden eludir las restricciones de carpetas impuestas por la política de grupo, lo que permite a los usuarios navegar y acceder a archivos y directorios que, de otro modo, estarían restringidos dentro del entorno estándar del Explorador de archivos.
Vale la pena señalar que anteriormente el Explorador de archivos no podía copiar archivos desde el recurso compartido SMB debido a las restricciones existentes. Sin embargo, mediante el uso de Explorer++
, la capacidad de copiar archivos desde la ubicación \\10.13.38.95\share
al escritorio perteneciente al usuario pmorgan
se ha realizado con éxito en la siguiente captura de pantalla.
También se puede lograr acceso no autorizado a rutas de carpetas modificando los accesos directos de Windows existentes y configurando la ruta del ejecutable deseado en el campo Target
.
Los siguientes pasos describen el proceso:
Click derecho
en el acceso directo deseado.
Seleccionar Propiedades
.
Dentro del campo Target
, modifique la ruta a la carpeta a la que desea acceder. Nosotros apuntaremos a C:\Windows\System32\cmd.exe
para ganar acceso a la terminal:
Ejecute el acceso directo y se ejecutará cmd:
Cuando se configuran extensiones de script como .bat
, .vbs
, o .ps
para que ejecuten automáticamente su código mediante sus respectivos intérpretes, se abre la posibilidad de que se elimine un script que pueda servir como consola interactiva o facilitar la descarga y el lanzamiento de varias aplicaciones de terceros, lo que da como resultado eludir las restricciones vigentes. Esta situación crea una posible vulnerabilidad de seguridad en la que actores maliciosos podrían explotar estas funciones para ejecutar acciones no autorizadas en el sistema.
Crea un nuevo archivo de texto y llámalo "evil.bat
".
Abra "evil.bat
" con un editor de texto como el Bloc de notas.
Introduzca el comando "cmd
" en el archivo.
Guarde el archivo.
Al ejecutar el archivo "evil.bat
", se abrirá una ventana del símbolo del sistema. Esto puede resultar útil para realizar diversas operaciones de línea de comandos.
También podemos validar esto usando el Símbolo del sistema consultando las claves de registro correspondientes:
Una vez más, podemos hacer uso de PowerUp, utilizando su función Write-UserAddMSI.
Esta función facilita la creación de un archivo .msi
directamente en el escritorio.
Ahora podemos ejecutar UserAdd.msi
y crear un nuevo usuario backdoor:T3st@123
en el grupo Administrators
. Tenga en cuenta que si le asigna una contraseña que no cumpla con los criterios de complejidad de contraseña, se generará un error.
Regrese a CMD y ejecute runas
para iniciar el símbolo del sistema como el usuario backdoor
recién creado.
Aunque el usuario recién creado backdoor
sea miembro del grupo Administrators
, el acceso al directorio C:\users\Administrator
sigue siendo inviable debido a la presencia del User Account Control (UAC). El UAC es un mecanismo de seguridad implementado en Windows para proteger el sistema operativo de cambios no autorizados. Con el UAC, cada aplicación que requiera el token de acceso de administrador debe solicitar el consentimiento del usuario final.
Después de omitir correctamente el control de cuentas de usuario, se abrirá una nueva ventana de PowerShell con privilegios más altos y podemos confirmarlo utilizando el comando whoami /all
o whoami /priv
. Este comando proporciona una vista completa de los privilegios del usuario actual. Y ahora podemos acceder al directorio del administrador.
Visita http://humongousretail.com/remote/
en el host generado mediante la sesión RDP e inicie sesión con las credenciales proporcionadas a continuación. Después de iniciar sesión, haga clic en Default Desktop
para obtener el archivo launch.ica
de Citrix y conectarse al entorno restringido.
Envíe la flag del usuario desde
C:\Users\pmorgan\Downloads
Ejecutamos Paint
desde el menú Inicio y hacemos clic en File > Open
para abrir el cuadro de diálogo. Aquí ingresamos la ruta a analizar: \\127.0.0.1\c$\users\pmorgan
Pulsamos click derecho sobre la flag y seleccionamos Open
para abrir el archivo:
Envíe la flag del Administrador desde
C:\Users\Administrator\Desktop
Siguiendo el ejemplo anterior vemos que no podemos acceder al directorio de Administrator:
Vamos a ver como podemos ejecutar un CMD en este tipo de entornos restringidos.
Tenemos las siguientes herramientas en el directorio /Tools:
Nos hemos enviado desde Kali el ejecutable smbserver.py
. Necesitamos ejecutar el siguiente comando como root para generar el recurso compartido:
Nos conectamos de nuevo al entorno de Citrix para utilizar las herramientas. En el paint accedemos a la ruta \10.13.38.95\share
El ejecutable pwn.exe
es un binario compilado personalizado desde un archivo pwn.c
que, al ejecutarse, abre el cmd.
Hacemos click derecho en pwn.exe
y se nos abre la terminal:
El explorador de archivos no podía copiar archivos desde el recurso compartido SMB debido a las restricciones existentes. Sin embargo, mediante el uso de Explorer++
, podemos copiar archivos desde la ubicación \\10.13.38.95\share
al escritorio del usuario pmorgan
Ya podemos ejecutar estas herramientas libremente. Para importar los módulos de PowerUp.ps1
desde el CMD que nos proporciona pwn.exe solamente tenemos que ejecutar:
No podemos importar PowerUp.ps1
ya que no podemos ejecutar scripts en la máquina:
Debemos poner una contraseña que cumpla con las políticas de la organización:
Con eso ya se nos generaría el usuario backdoor dentro del grupo administrators.
Aunque hemos ganado una shell como admin aún no podemos acceder al escritorio del administrador para acceder a la flag:
Necesitamos copiar los scripts al directorio C:/Users/Public
para poder acceder con este usuario.
Ahora ejecutamos:
Con el cuadro de diálogo de Windows abierto en Paint, podemos ingresar la ruta \\127.0.0.1\c$\users\pmorgan
debajo del campo Nombre de archivo, con Tipo de archivo establecido en All Files
y al presionar Enter obtenemos acceso al directorio deseado.
es muy recomendable y se utiliza con frecuencia en estas situaciones debido a su velocidad, interfaz fácil de usar y portabilidad. Al ser una aplicación portátil, se puede ejecutar directamente sin necesidad de instalación, lo que la convierte en una opción conveniente para eludir las restricciones de carpetas establecidas por la política de grupo.
De manera similar, cuando el Editor de Registro predeterminado está bloqueado por la política de grupo, se pueden emplear editores de Registro alternativos para eludir las restricciones de la política de grupo estándar. , y son ejemplos de este tipo de herramientas GUI que facilitan la edición del registro de Windows sin verse afectado por el bloqueo impuesto por la política de grupo. Estas herramientas ofrecen una solución práctica y eficaz para administrar la configuración del registro en entornos tan restringidos.
En los casos en los que no se encuentra disponible un archivo de acceso directo existente, existen métodos alternativos a tener en cuenta. Una opción es transferir un archivo de acceso directo existente mediante un servidor SMB. Como alternativa, podemos crear un nuevo archivo de acceso directo mediante PowerShell, como se menciona en la sección en la pestaña Generando un archivo malicioso .lnk
. Estos enfoques brindan versatilidad para lograr nuestros objetivos al trabajar con archivos de acceso directo.
Una vez que se establece el acceso al CMD, es posible buscar vulnerabilidades en un sistema con mayor facilidad. Por ejemplo, también se pueden utilizar herramientas como y para identificar posibles problemas de seguridad y vulnerabilidades dentro del sistema operativo.
Al usar PowerUp.ps1
, encontramos que la clave está presente y configurada.
Hay numerosos scripts , diseñados para ayudar a eludir el mecanismo del UAC activo. Estos scripts ofrecen métodos para sortear las restricciones del UAC y obtener privilegios elevados.