27 ene 2020

Obteniendo un CMD cuando la GPO te dice 'nope'

¡Muy buenas!

Hoy os traemos un post muy pequeño, con un truco muy grande.

¿Alguna vez habéis tenido que hacer alguna auditoría donde por GPOs han bloqueado el uso de CMD y Powershell? Existen algunos trucos para abrir una terminal, desde ejecutar manualmente cmd.exe a abrir la terminal desde el explorador de archivos.

No obstante, si aún así no podéis abrir una terminal, no desesperéis, que aún os queda una bala en la recámara. Seguramente no se pueda abrir una CMD, pero sí se puedan ejecutar ficheros batch (bloquear esto sería un gran problema para el funcionamiento del sistema). Por tanto, abrid un Notepad y guardad lo siguiente como un fichero .bat (cuidado con los espacios):

   @echo off
   :loop
   set /p _cmd= "%CD%>"
   %_cmd%
   goto :loop

Doble clic en el fichero y... ¡Tachán! Habemus CMD :)


Vale, vale... ¿Qué narices hace esto?
  1. Desactiva el "echo", esto es, el prompt que sale en CMD con el path (C:\>), así como el valor de una variable antes de ser ejecutada.

  2. Entra en un bucle infinito en el que:
    • Se define una variable con un valor intoducido por el usuario a través de un prompt. Se mostrará el mensaje "%CD%>", que es el path en el que está el usuario (ya que no se muestra al estar en "@echo off").

    • Se ejecuta la variable con el prompt que haya introducido el usuario

A continuación, mostramos el output del CMD sin el @echo off, donde se aprecia mejor el bucle que hemos explicado.


Sin embargo, con "@echo off" a efectos prácticos tenemos una shell normal.


¿Y si quisiéramos tener una Powershell, si su binario ha sido eliminado? Pues eso ya no será tan fácil, pero sí que es posible tener Powershell sin Powershell... Pero eso ya lo hablamos otro día ;)

¡Saludos!


No hay comentarios:

Publicar un comentario