PowerShdll: triunfando cuando no tienes la concha del poder

¡Muy buenas!

En un post anterior os hablamos de cómo obtener una CMD cuando no puedes obtener una CMD (pero eres h4x0r y el "no puedes" no aplica), y en este vamos a hacer lo mismo, pero con nuestra querida PowerShell.

Existe una gran diferencia entre este caso y el anterior: la CMD se puede deshabilitar al usuario, pero no eliminar (esto provocaría una desestabilización del sistema, ya que muchos programas dependen de CMD); sin embargo, PowerShell sí puede eliminarse del sistema ya que no genera ninguna dependencia.

Por tanto, es una práctica común eliminar PowerShell para evitar puntos de entrada de ataque (un minuto de silencio por nuestro querido Empire). Ahora bien ¿y si queremos usar PowerShell, qué hacemos?

PowerShdll es nuestro gran amigo en este escenario, ya que permite obtener una "pseudo PowerShell" haciendo uso de las DLL que utiliza PowerShell para funcionar. Para ello únicamente tendremos que tener instalado .NET 3.5 o superior en la máquina y descargar el repositorio (ojo, que los antivirus lo detectan como bicho).

Ahora, únicamente tendríamos que abrir un CMD y escribir el comando rundll32.exe PowerShdll.dll, main. Aunque también he de decir que a mí no me ha funcionado así (la informática es maravillosa).

Si sois tan parguelas como yo, existen otras alternativas para ejecutar esta milagrosa DLL, (copypasteando del repo en GitHub):

1. 
    x86 - C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShdll.dll
    x64 - C:\Windows\Microsoft.NET\Framework64\v4.0.3031964\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShdll.dll
2. 
    x86 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe PowerShdll.dll
    x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs.exe PowerShdll.dll
3. 
    x86 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U PowerShdll.dll
    x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /U PowerShdll.dll
4. 
    regsvr32 /s  /u PowerShdll.dll --> Calls DllUnregisterServer
    regsvr32 /s PowerShdll.dll --> Calls DllRegisterServer  
En mi caso, el modo 2 ha sido el bueno:
¡Habemus PowerShell! 
En el repositorio está incluido un ejecutable que te permite realizar lo mismo, evitando los malabares con DLL (aunque también es más sencillo de bloquear la ejecución de ficheros .EXE).

Una vez hayamos conseguido una PowerShell, ya podremos realizar diferentes tareas como descargar código a memoria (bypasseando el antivirus del host, si es un poco noob) o ejecutar el buen Empire, permitiendo facilitar nuestras tareas de auditoría.

Pues bien, esperamos que os sea útil esta gran herramienta.

¡Saludos!