AppLocker & GPO Restrict Post-Exploitation bypass

Share it!

AppLocker es una evolución de las Políticas de Restricción de Software o SRP que se ha introducido en Windows 7/2008 y que nos ayudan a restringir de una manera más eficaz la ejecución de los distintos programas que le indiquemos, ideal para tener un entorno controlado de ejecución de aplicaciones.

Las ventajas que tiene sobre el SRP común son las siguientes:

  • Se puede elegir sobre que usuarios/grupos se aplica.
  • Permite el modo «auditar» que no bloquea el programa pero queda registrada su ejecución en fichero de log.
  • Permite recorrer recursivamente directorios completos calculando hashes para identificar los ficheros.
  • Permite comprobar versiones de archivo.
  • Bloquea lenguajes de scripting tipo PowerShell, js, vbs.

 

Una característica común que es interesante implementar sería el bloqueo de la intrérprete de comandos cmd.exe, si no disponemos de AppLocker, podriamos deshabilitarlo mediante GPO en primera instancia, de la siguiente manera:

 

 

De esta manera, cuando un usuario no privilegiado intenta ejecutar el intérprete de comandos, no le sería posible y Windows nos mostrará lo siguiente:

 

 

Una manera más efectiva es la utilización de AppLocker, que además tiene preferencia sobre GPO, sería crear una regla que bloqueara la ejecución de %windir%/system32/cmd.exe, quedando de la siguiente manera:

 

 

 

 

Hasta aquí todo bien, imaginemos que comprometemos una máquina de ese dominio mediante cualquier vulnerabilidad y necesitamos ejecutar comandos para realizar cualquier tarea, podriamos probar a ejecutar el comando shell que nos devuelte un intérprete de comandos, y se nos denegaría el acceso ya que actualmente se encuentra restringido su uso, como podemos ver en la siguiente imagen y en las anteriores:

 

 

Aquí es donde entran en juego los procesos suspendidos en memoria, la utilidad execute y la carga en memoria RAM de procesos que nos brinda meterpreter. Veamos, los procesos suspendidos son aquellos que no están disponibles para su ejecución inmediata, sino que pueden estar esperando o no un evento, y se mantienen bloqueados por ellos mismos o porque alguien los induce a ese estado ( como podría ser un proceso en primer o segundo plano ) y no puede proseguir su ejecución a no ser que otro proceso se lo indique, más o menos.

Lo que haremos será bajarnos el cmd.exe de la víctima, o si tenemos uno en nuestro path nos valdrá igualmente, ejecutar un binario del sistema ( buscaminas, solitario multiplayer, notepad…) como un dummy suspendido a través de execute, cargarlo en memoria RAM y subir de nuevo cmd.exe,pasarle sus funciones al «buscaminas» e inyectarlo en su proceso de manera limpia, así que en el visor de procesos aparecerá nuestro nuevo buscaminas, r0cks!

Share it!
Esta entrada fue publicada en Seguridad Informática. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>