martes, 1 de diciembre de 2015

Técnica de ingeniería social (usando trucos mentales Jedi)

En esta breve entrada quiero dejarles un enlace a mi post en la gran comunidad DragonJAR. En él veremos una técnica que combina distintas acciones poderosas para aplicar al momento de hacer ingeniería social. La entrada, titulada "Using (almost) Jedi Mind Tricks for Social Engineering" podemos encontrarla aquí:

http://comunidad.dragonjar.org/f190/using-almost-jedi-mind-tricks-social-engineering-16124/

Espero que les sea útil y se diviertan

Saludos y..


Happy Hacking!

lunes, 5 de octubre de 2015

Pentesting Mobile (Convirtiendo nuestro Android en un arma mortal) - Parte II


Hola otra vez! Seguimos en la plaza conectados a esa red wifi para probar otras cosas con nuestro Android convertido en una herramienta para realizar penetration tests.

En esta ocasión utilizaremos ConnectBot para conectarnos (valga la redundancia) a través de SSH a nuestro Android. Después, usaremos nmap para realizar un escaneo de la red y guardaremos los resultados en un archivo. Para poder tener disponible ese archivo en nuestra tarjeta SD montaremos un servidor FTP y a través de la sesión de SSH le pasaremos el archivo con el resultado del escaneo. Se entendió algo? jeje. No importa, con las imágenes quedará más claro.

Primer paso, instalar ConnectBot

Asumiendo que ya tenemos instalado y corriendo Linux Deploy (ver entrada anterior aquí), descargaremos e instalaremos ConnectBot --> https://play.google.com/store/apps/details?id=org.connectbot&hl=es_419
Esta app nos permitirá conectarnos por SSH a nuestro Debian. Debemos recordar que Linux Deploy nos permite habilitar las conexión mediante VNC (para obtener la interfaz gráfica) o por SSH (para los amantes de la consola jeje).

Abrimos ConnectBot y configuramos la conexión:


 Abajo, donde dice SSH (como se puede ver en 1) agregamos "android@localhost". Luego, como se puede ver en 2 nos quedará la conexión guardada para la próxima vez que ingresemos.


La clave es "changeme"



Ya estamos en nuestro Debian!


Lanzando Nmap
Instalamos Nmap con "sudo apt-get install nmap". Luego lo lanzamos como todos ustedes ya saben. En este caso guardaré el escaneo en el archivo "scan2.txt":


Hacemos un "cat", y podemos ver el resultados de nuestro nmap en el archivo scan2.txt:
                             
Ahora, que sucede si queremos tener ese resultado disponible en nuestro teléfono, en la tarjeta SD ,fuera de Debian por ejemplo? Bueno, podemos pasarle el archivo al teléfono por FTP...

Instalando FTP Server

En esta tarea nos asistirá FTP Server para Android, que podemos descargar desde: https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=es
Una vez instalado, lo ejecutamos:


En las opciones, debemos habilitar que acepte conexiones provenientes de nuestra red wifi en "ALLOWED CONNECTIONS" así como también elegir un usuario y password para ingresar. Además, podemos seleccionar cual será el directorio raíz:


Volviendo a ConnectBot, donde teniamos la sesión SSH abierta, nos conectamos al servidor FTP haciendo (lo que está en negrita es lo que debemos ingresar):

> ftp
ftp> o
(to) 192.168.1.35 2000 (dirección y puerto de nuestro servidor FTP)

Una vez conectados, le pasamos el archivo con el comando put:


Si hacemos un "dir" veremos que el archivo ya se encuentra en el servidor FTP:


Podemos ver a través de nuestro gestor de archivos nuestro famoso "scan2.txt":


Y así concluimos, hemos convertido nuestro Android en un arma mortal, si no me crees fijate lo que dice Mel...

Saludos y...

HAPPY HACKING!!!!!!!!!!!

miércoles, 23 de septiembre de 2015

Pentesting Mobile (Convirtiendo nuestro Android en un arma mortal) - Parte I


Hola a todos los amantes del pentesting. En esta entrada saldremos de paseo. Así es, nos iremos a caminar por la ciudad en busca de algún punto de acceso WIFI para probar unas herramientas en nuestro querido Android. La idea es montar una distro de Linux en nuestro celular, conectarnos a una red wifi, hacer un Man In The Middle y capturar todo el tráfico generado por nuestra víctima. De más esta decir que tenemos que tener privilegios de root para poder realizar todas estas acciones (nada en la vida es gratis jeje). Comencemos.

Ejecutando Debian en nuestro Android

Para instalar Debian utilizaremos la aplicación Linux Deploy, la cual podemos descargar desde  aquí
No explicaré como se realiza la instalación dado que hay muchos tutoriales en la web (por ejemplo en --> http://www.linux-magazine.com/Online/Features/Convert-an-Android-Device-to-Linux ). Lo bueno es que nos permite conectarnos a nuestro linux tanto por SSH como por VNC (veremos las dos formas). Si queremos conectarnos por SSH recomiendo descargar ConnectBot, ahora si lo queremos hacer por VNC debemos descargar VNC Viewer. Una vez instalado, iniciamos nuestro linux con start:


 Veremos como empieza a montarse nuestro Debian:


 Para esta primera parte nos conectaremos a través de VNC Viewer. Debemos iniciarlo y configurarlo:


Una vez iniciado, debemos agregar una conexión. Para ello tocamos el símbolo "+" y agregamos como Address "localhost" y como Name "Debian". El password por defecto es "changeme" (lo dice todo).

Para iniciar la conexión basta con tocar sobre ella:


Mamá mirá, tengo Debian en mi Android!!! (-dejame de joder, andá a mostrarle a la abuela que le gustan esas cosas)


Desde aquí podemos instalar herramientas como en cualquier Debian. En este caso, instalaremos Wireshark. Para eso hacemos: sudo apt-get install wireshark
Una vez instalado, lo iniciamos...


Instalando zAnti

Esta herramienta está desarrollada especialmente para realizar auditorías de seguridad desde un dispositivo móvil. Nos permite hacer ARP Poissoning, escanear equipos (podemos hasta ver si un equipo es vulnerable a Shellshock), reemplazar imagenes, montar un servidor web, capturar descargas, etc. Para esta ocasión, es la que nos permitirá hacer un Man In The Middle. Podemos descargarla desde:

https://www.zimperium.com/zanti-mobile-penetration-testing

En su website podemos ver algunas demos de lo que puede hacer. También hay videos en Youtube, como por ejemplo: https://www.youtube.com/watch?v=7CdauPf2w1M o https://www.youtube.com/watch?v=7URCG6LTTqQ

Ahora sí estamos listos para ir a dar un paseo!

Ya tenemos todo preparado para ir a nuestra plaza favorita (la que tenga wifi jeje) y probar nuestra herramienta de auditoría de seguridad móvil (los días no ayudan mucho pero bueno, al mal tiempo buen pentesting).

Una vez conectados a wifi ejecutamos zAnti:



Aceptamos todos los términos y veremos que comienza a escanear la red:


Cuando finaliza podemos hacer tap sobre cualquier equipo encontrado y nos mostrará todas las acciones que podemos realizar contra el:


Para esta entrada, realizaremos un ataque de Man In The Middle:


Una vez iniciado el ataque veremos lo siguiente:


Eso es todo con zAnti, ahora pasemos a nuestro Debian:

Aquí solo nos queda iniciar Wireshark y elegir como interface nuestra wlan0 (interface conectada a wifi):


Veremos como comienza a aparecer el tráfico generado por nuestra víctima.


Filtramos un poco para ver el tráfico http:


Muy bien, está visitando el blog!


Obviamente teniendo un Debian en nuestro Android podemos hacer muchas cosas, por ejemplo, hacer el arp poissoning desde ahí y no usar zAnti pero bueno, es cuestión de cada usuario.

En la próxima entrada veremos como conectarnos a nuestro Debian por SSH, realizar un escaneo con Nmap y pasar los resultados a nuestra tarjeta sd montando un servidor FTP.

Como pueden ver, dado la cantidad de herramientas que existen, el límite es nuestra imaginación

Saludos y...

HAPPY MOBILE HACKING!!!

sábado, 22 de agosto de 2015

Instabrute (Esta vez, tu password está en la lente de la cámara)


Seguramente muchos ya conocen al @chinoogawa , ese que nos dió tantas alegrías con su Facebook Hacking Tool (Ayy, esas inyecciones de likes y ni hablar del Friendly Logout). Esta vez, comparte con todos los "kakers" una nueva herramienta llamada Instabrute, la cual podemos descargar de aquí:
https://github.com/chinoogawa/instaBrute

Como reza el título, esta vez la que esta en foco no es una imagen que subiste a Instagram, sino tu password. Si si, gracias a Instabrute podemos realizar un ataque de fuerza bruta por diccionario. Además, nos permite saber si una cuenta existe para posteriormente comenzar el ataque. Por qué podemos hacer esto?

Podemos hacer esto, gracias al pobre diseño que posee el sitio de Instagram en cuanto a la seguridad. Debemos reconocer que Instagram siempre ha tenido problemas graves de seguridad. Si viajamos a un tiempo atrás recordaremos que se descubrió que la aplicación de Instagram no cifraba las cookies de navegación, con lo cual, un atacante podía capturar esas cookies y hacer un hijacking de la sesión. Esto dió origen a la herramienta Instasheep, pariente de Firesheep, que realizaba automáticamente la captura de cookies y nos abria la sesión secuestrada al instante:

http://www.hackplayers.com/2014/07/instasheep-secuestrar-cuentas-de.html

También podemos recordar que Instagram no verificaba que el mail que ingresaste al momento de registrarte sea el tuyo (nunca te enviaba un correo con un enlace para que actives tu cuenta), con lo cual, permitía que crees un perfil con el correo de otro.

Siguiendo con los problemas de seguridad tenemos lo siguiente: Sin tener cuenta en Instagram, podemos buscar cualquier nombre de usuario ingresando en nuestro navegador: instagram.com/usuario_X


Bueno, muchos dirán, "El usuario debería configurar sus opciones de privacidad". Pero hay un problema... Instagram no permite al usuario agregarle privacidad a su cuenta. Si miramos la configuración vemos que no existe ninguna opción para hacer que nuestra cuenta no sea visible para quienes no nos siguen, o no son usuarios, o algo similar.


Solo nos permite desactivar nuestra cuenta momentáneamente.

También, podemos ver que en su página de login, un usuario puede probar ilimitadamente contraseñas sin que salte un cartel al tercer intento o un captcha por ejemplo:

Que gracioso, nos dice "Tu nombre de usuario o tu contraseña con incorrectos" como para que uno no se de cuenta si existe ese usuario pero te deja verlo si lo pones en el navegador jeje.

Gracias a esto nace Instabrute, Con esta herramienta podemos verificar si existe un usuario y posteriormente realizar un ataque de fuerza bruta por diccionario. La herramienta esta desarrollada en python y para su uso debemos tener instaladas las siguientes dependencias:

  1. Mechanize
  2. CookieLib
  3. Simplejson
  4. OptParse
Para utilizarla hacemos:

python  instaBrute.py  -u  usuario  -d  diccionario.txt

En el caso que tengamos una lista de usuarios podemos hacer:

python  instaBrute.py  -f  usuarios.txt  -d  diccionario.txt

Veamos primero que sucede si el usuario no existe:


si instaBrute recibe el mensaje de error 404 del sitio nos informa que el usuario no existe:


Lo que recibimos en el navegador se ve así:

Ahora, probemos con una cuenta existente:

Y ahí lo tenemos! Nuestra clave en la lente de la cámara, lista para subir a Instagram con un lindo marco y efecto Nashville jeje

Esto demuestra lo importante que es restringir el número de intentos de alguna forma al momento de diseñar una página de login. Espero que se diviertan con esta linda herramienta. Gracias @chinoogawa por sorprendernos una vez mas.

Saludos y...

HAPPY HACKING Mother KAKERS!

martes, 4 de agosto de 2015

Conociéndote a partir de tu número de teléfono fijo (y crackeando tu pass)



Hola a todos. Voy a cortar por ahora las Android Hacking Series. En esta entrada vamos a ver lo fácil (y tenebroso) que puede ser, en algunos casos, encontrar información de una persona a partir de su número de teléfono fijo. Utilizaremos servicios de guías telefónicas, padrones, redes sociales, un poco de Google y astucia para ver todo lo que hay sobre X ser humano. Teniendo toda esa información luego podremos utilizar alguna herramienta para generar posibles claves de ese usuario y, finalmente lograr el tan deseado acceso.

Para comenzar, buscaremos en el sitio www.telexplorer.com.ar un número cualquiera. Para realizar esto, ingresamos al recuadro que dice "Búsqueda Residencial" en la página principal:



Colocamos un número de telefono cualquiera y esperamos el resultado:

Bueno, ya tenemos algo por donde empezar. Ahora ingresamos a Buscardatos.com y colocamos el nombre obtenido junto al rango posible de años. Buscamos, buscamos y...bingo, aparece nuestra persona:


 Figura otro domicilio pero vemos que coinciden los apellidos (si si, tiene dos apellidos) y los nombres así que tendremos fé y seguiremos. Clickeamos en "ver más" y tenemos lo siguiente:


Podemos ver que obtuvimos dirección, fecha de nacimiento, edad (por si no queremos hacer la cuenta jeje) y a que se dedica la persona.

Ahora realizamos una busqueda en Google, incorporando como parámetros algunos  de los datos obtenidos y encontramos por ejemplo un sitio en el que nos podemos asegurar que la actividad encontrada antes era correcta:


 Un poco más...

Seguimos conociendo a que se dedica

 Seguimos buscando y encontramos otro teléfono (quizas el primero estaba desactualizado), un correo y hasta una foto!

Tenemos una foto y el correo de la persona

Recapitulando, tenemos los siguientes datos de la persona:

  •  Nombre y Apellido
  • Dirección
  • Números de teléfono
  • Email
  • DNI
  • Edad
  • Fecha de nacimiento
  • Actividad

Con toda esta información, estamos listos para crear un diccionario para un ataque de fuerza bruta. Esto podemos verlo en la entrada: 

http://mamaquieroserpentester.blogspot.com.ar/2014/08/password-101-parte-iv-creando.html

Podríamos continuar la búsqueda en las redes sociales para ver cuales son sus amigos, gustos de la persona, etc. Igualmente con lo que conseguimos ya tenemos bastante como para ir probando. Hay que tener en cuenta que tenemos un correo electrónico y con esto podemos verificar si la persona lo utiliza para su cuenta de Facebook. Por si alguno no lo sabía, cuando ingresamos nuestro usuario (nuestro mail) en Facebook y colocamos mal la contraseña, muy amablemente nos dice que la contraseña no es válida, con lo cual nos está diciendo que el correo ingresado (por ende el usuario) existe. Además, si colocamos un correo que no está registrado en Facebook veremos que nos muestra un mensaje que informa que ese correo no está asociado a ninguna cuenta. Pueden probarlo ustedes mismos con un correo que tengan y no usen para Facebook. Así podemos jugar y verificar lo siguiente:

Nuestra persona utiliza el correo que encontramos para su cuenta de Facebook


Este es tan solo un ejemplo de como, a partir de un solo dato, se nos pueden abrir infinitas posibilidades para ganar acceso a un servicio o comprometer un sistema entero.

Espero que sea de utilidad. Como recomendación, tengamos cuidado con la información que publicamos en internet y con las configuraciones de seguridad de las redes sociales. Estemos atentos también, a sitios que publican nuestra información sin nuestro consentimiento.

Saludos y..

HAPPY HACKING!

miércoles, 8 de julio de 2015

Android Hacking Series - Parte II (obteniendo el patrón de bloqueo)


Siguiendo con las "Android Hacking Series", en esta entrada veremos como obtener el patrón de bloqueo de un Android rooteado. Como no podía ser de otra manera, nos ayudaremos de un pequeño script hecho en python :)

Para comenzar debemos tener en cuenta lo siguiente:

Cada punto del patrón tiene asignado un número, como vemos en la imagen. Esto quiere decir que cuando generamos un patrón, estamos generando un código.

Ese patrón, teniendo en cuenta lo dicho, nos genera el código: 0 1 4 7 5 2

Este código se encuentra guardado dentro de la ruta /data/system , en un archivo llamado gesture.key. Este archivo debemos leerlo con algún programa que lea en hexa porque sino veremos los caracteres con otra codificación y no tendrán sentido.

Utilizando algun emulador de consola de Android o adb, copiamos el archivo gesture.key a una ubicación que podamos leer. Yo lo voy a copiar a la tarjeta sd (si no se entiende muy bien no se preocupen, está explicado en el video de mas abajo).

El archivo se encuentra cifrado con el algoritmo SHA-1 con lo cual debemos desencriptarlo. Para hacer esto utilizaremos la siguiente tabla de hashes precalculados:

http://www.android-forensics.com/tools/AndroidGestureSHA1.rar

Lo que haremos será comparar cada valor de la tabla con el valor obtenido del archivo gesture.key, hasta encontrar una coincidencia.

Para ello utilizaremos un pequeño script en python que desarrolle para esta ocasión el cual realiza lo siguiente:

1 - Lee el valor de gesture.key en hexa y lo imprime en pantalla
2 - Luego busca los valores en el archivo AndroidGestureSHA1.txt y los compara con el valor de gesture.key
3 - Una vez que encuentra la coincidencia, nos imprime cual es el código que corresponde a ese hash.



El código lo podemos descargar de aquí: https://sites.google.com/site/mamaquieroserpentester/home/tools

Cabe aclarar que debemos ejecutar el script en la misma carpeta que tenemos el archivo gesture.key y la lista de hashes.

Igualmente, no hace falta utilizar este script en python, yo lo armé para facilitar el proceso. Pueden realizar lo mismo utilizando un editor de texto que lea valores en hexa, como por ejemplo:

http://www.x-ways.net/winhex.zip


Y una vez obtenido el código, copiarlo y buscarlo en el listado de hashes.

Eso es todo por ahora. Les dejo el video:




Hasta la próxima, saludos y...

HAPPY HACKING!!!