XUT_ / COURSES / CYBER SECURITY 101

Main Components of Metasploit

Al usar metasploit, primariamente interactuaremos con la consola de metasploit. Podemos lanzar la consola usando msfconsole. Esta será nuestra manera de interactuar con los módulos de metasploit. Los módulos son componentes pequeños dentro del marco de trabajo de metasploit y son construidos para realizar una tarea específica, como explotar una vulnerabilidad, escanear un objetivo, o realizar un ataque de fuerza bruta.

Antes de adentrarnos en los módulos, sería de ayuda aclarar algunos conceptos recurrentes: vulnerabilidad, exploit y payload.

  • Exploit: Una pieza de código que usa una vulnerabilidad presente en el sistema objetivo.
  • Vulnerabilidad: Un error de diseño, programación o lógica que afecta al sistema objetivo. La explotación de una vulnerabilidad puede resultar en la recopilación de información confidencial, o permitir al atacante ejecutar código en el sistema objetivo.
  • Payload: Un exploit se aprovechará de una vulnerabilidad. Sin embargo, si queremos que el exploit tenga el resultado que queremos, necesitamos usar un payload. El payload es el código que se ejecutará en el sistema objetivo.

Los módulos y categorías debajo de cada uno están listados abajo. Estos se dan por motivos de referencia, pero interactuarás con ellos a través de la consola de metasploit.


Auxiliary

Cualquier módulo de soporte como escáners, crawlers y fuzzers pueden encontrarse aquí.

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 auxiliary/
auxiliary/
├── admin
├── analyze
├── bnat
├── client
├── cloud
├── crawler
├── docx
├── dos
├── example.py
├── example.rb
├── fileformat
├── fuzzers
├── gather
├── parser
├── pdf
├── scanner
├── server
├── sniffer
├── spoof
├── sqli
├── voip
└── vsploit

20 directories, 2 files

Encoders

Permiten encodear el exploit y el payload con la esperanza de que un antivirus basado en firmas no los detecte.

Los antivirus y soluciones de seguridad basadas en firmas tienen una base de amenazas conocidas. Estos comparan los archivos sospechosos con la base de datos y mandan alertas si hay coincidencias. Los encoders tienen una tasa de éxito limitada porque estos pueden hacer comprobaciones adicionales.

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 encoders/
encoders/
├── cmd
├── generic
├── mipsbe
├── mipsle
├── php
├── ppc
├── ruby
├── sparc
├── x64
└── x86

10 directories, 0 files

Evasion

Mientras que los encoders encodearán el payload, no son considerados un intento directo de evadir el antivirus. Por otro lado, los módulos de evasión intentarán eso.

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 2 evasion/
evasion/
└── windows
    ├── applocker_evasion_install_util.rb
    ├── applocker_evasion_msbuild.rb
    ├── applocker_evasion_presentationhost.rb
    ├── applocker_evasion_regasm_regsvcs.rb
    ├── applocker_evasion_workflow_compiler.rb
    ├── process_herpaderping.rb
    ├── syscall_inject.rb
    ├── windows_defender_exe.rb
    └── windows_defender_js_hta.rb

1 directory, 9 files

Exploits

Los exploits, organizados por sistema objetivo.

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 exploits/
exploits/
├── aix
├── android
├── apple_ios
├── bsd
├── bsdi
├── dialup
├── example_linux_priv_esc.rb
├── example.py
├── example.rb
├── example_webapp.rb
├── firefox
├── freebsd
├── hpux
├── irix
├── linux
├── mainframe
├── multi
├── netware
├── openbsd
├── osx
├── qnx
├── solaris
├── unix
└── windows

20 directories, 4 files

NOPs

Los NOPs (No OPeration) no hacen nada, literalmente. Se representan en la familia Intel x86 con 0x90. la CPU no hará nada por un ciclo. Normalmente se usan como un buffer para conseguir tamaños de payload constantes.

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 nops/
nops/
├── aarch64
├── armle
├── cmd
├── mipsbe
├── php
├── ppc
├── sparc
├── tty
├── x64
└── x86

10 directories, 0 files

Payloads

Los payloads son códigos que se ejecutan en el sistema objetivo.

Los exploits usarán una vulnerabilidad del sistema objetivo, pero para conseguir el resultado deseado, necesitaremos un payload. Lanzar la calculadora ejecutando calc.exe en el sistema objetivo es una forma benigna de demostrar que podemos ejecutar comandos en el equipo objetivo.

Ejecutar comandos en el equipo objetivo ya es un paso importante pero tener una conexión interactiva que permite escribir comandos es mejor. Esto se conoce como una "reverse shell".

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 payloads/
payloads/
├── adapters
├── singles
├── stagers
└── stages

4 directories, 0 files

Vemos 4 directorios diferentes debajo de "payloads": adaptadores, singles, stagers y stages.

  • Adapters: Un adapter envuelve payloads single para convertirlos en diferentes formatos. Por ejemplo, un payload de tamaño normal puede ser envuelto en un Powershell adapter, lo que hará un sólo comando de powershell que ejecutará el código.
  • Singles: Payloads autocontenidos que no necesitan descargar un componente adicional para ejecutarse.
  • Stagers: Responsables de configurar un canal de conexión entre Metasploit y el sistema ojetivo. Útil cuando se trabaja con payloads staged. Estos primero subirán un stager en el sistema objetivo y después descargarán el resto del payload . Esto ofrece algunas ventajas como el tamaño del payload.
  • Stages: Descargados por el stager. Esto te permitirá usar payloads de mayor tamaño.

Metasploit tiene un método de ayudarte a identificar payloads single (también llamados "inline") y payloads staged.

  • generic/shell_reverse_tcp
  • windows/x64/shell/reverse_tcp

Ambas son shells de Windows. La primera es una inline como está indicado por el " _ " entre "shell" y "reverse". Mientras que la segunda es un payload stage como es indicado por "/" entre "shell" y "reverse".


Post

Los módulos post son útiles en la parte final del proceso de pentesting, post-explotación.

bash
root@ip-10-10-135-188:/opt/metasploit-framework/embedded/framework/modules# tree -L 1 post/
post/
├── aix
├── android
├── apple_ios
├── bsd
├── firefox
├── hardware
├── linux
├── multi
├── networking
├── osx
├── solaris
└── windows

12 directories, 0 files

Si quieres familiarizarte con estos módulos puedes encontrarlos en /opt/metasploit-framework/embedded/framework/modules.