Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hoy en día los teléfonos móviles almacenan muchísima información nuestra, cuentas de
correo, redes sociales, historial de internet...
Ha habido casos muy sonados de famosos a los que les han robado fotos íntimas de sus
smartphones y las han subido a Internet sin que las víctimas se dieran cuenta de nada. Hay
más métodos, pero lo que vas a encontrar aquí podría ser perfectamente una técnica válida
para llevar a cabo eso.
En este paper simplemente quiero demostrar lo peligroso que es estar conectado a una red
Wifi con un dispositivo iOS con OpenSSH activado. Para llevar a cabo este ataque
necesitamos dos cosas en el dispositivo víctima:
Usuario: root
Password: alpine
A esto hay que sumarle que por defecto OpenSSH se queda activado cuando se activa el
Wifi. Mucha gente lo instala y se le olvida que lo tiene ahí. Eso es muy peligroso y va a ser
la base de nuestro ataque.
Ya se podrán imaginar todo lo que podemos hacer entrando a un dispositivo iOS con
privilegios de super-usuario ;)
Herramientas a utilizar:
-Consola
-Metasploit
-SQLiteManager
-Nmap o Zenmap
-Fing app (iOS o Android)
-SSH
Dispositivo con el que se realizará la prueba:
-iPhone 5s (iOS 7.0.4)
1.Escaneando la red.
Para poder identificar si dentro de nuestra red se encuentra conectado un
dispositivo iOS al que podamos intentar vulnerar necesitaremos hacer un
escaneo de la misma, para lo cual podemos usar aplicaciones conocidas
como escáneres de red. Haremos un escaneo con 2 herramientas muy útiles
para nuestro propósito. Empezaremos con un programa llamado Zenmap,
que es la GUI del conocido Nmap. (disponible para Windows, mac y Linux)
Por lo general este tipo de escaneos tiende a ser un poco tardado, sólo es cuestión de
ser paciente y dejar que el programa haga lo suyo. Una vez terminado el escaneo,
encontramos que hay un dispositivo con iOS dentro de nuestra red y que aparte está con
el puerto 22 abierto corriendo el servicio de Open SSH. ¡QUE SUERTE! :D
Como alternativa a Zenmap (Nmap) podríamos usar una app llamada “Fing” la cual está
disponible tanto en la App Store como en la Google Play Store, la cual con solo un toque
empezará a escanear nuestra red local en busca de todos los dispositivos conectados a
la misma. De igual forma podremos encontrar los dispositivos iOS que estén conectados.
ANDROID iOS
Una vez que tenemos nuestro target que encontramos gracias a los
escaneos procederemos a utilizar el framework metasploit para intentar
vulnerar el Open SSH del dispositivo.
msf exploit(cydia_default_ssh) > show options (revisamos los ajustes del comando
antes de lanzarlo
Lo siguiente será acceder al ssh del dispositivo mediante la terminal con el siguiente
comando:
ssh root@10.210.16.103
Nos pedirá la contraseña para el usuario root, la cual sabemos que es ‘alpine’ y una vez
dentro pondremos en la consola ‘pwd’ para saber donde estamos situados:
4. Las siguientes pestañas las dejaremos tal y como están y enseguida nos
dirigiremos a la pestaña de START y lanzaremos el ataque, si este llega a
ser exitoso con algún password de la lista que utilizamos el programa nos lo
indicará de inmediato.
3. Postexplotación
Una vez estando dentro del dispositivo víctima podremos hacer muchas cosas. Dentro
de este curso daremos un recorrido rápido por las acciones más comunes que se
podrían realizar desde un punto de vista de un hacker malicioso.
Tecleando “help” dentro de la consola nos aparecerán una serie de comandos que
podremos usar dentro de nuestro dispositivo, sin embargo, no vamos a profundizar en
cada uno de ellos ya que es una lista larga.
-Reiniciar el dispositivo
Configurando el SSH:
Para hacer esta documentación mas completa incluiré a continuación una forma rápida
de activar ese servidor en la distribución “Kali Linux” y “Mac OS X” ya que esta
herramienta nos servirá para extraer los archivos del dispositivo vulnerado.
OK, empecemos con la configuración del servidor SSH. En mi caso estaré usando una
máquina virtual de Kali Linux.
Primero necesitarás verificar si tu máquina tiene activo algún servicio de SSH activo, para
lo cual pondremos el siguiente comando en la consola:
root@Kali:~# service --status-all
Si SSH muestra un signo negativo “-“ significa que no está activo o no está instalado
En este caso ya estaba instalado previamente el servidor y el cliente. Para iniciar los
servicios SSH pondremos en la consola root@kali~# service ssh start y para
checar que el servicio esté activo pondremos root@kali~# service ssh status
Una vez terminada la transferencia revisamos nuestra carpeta de destino donde elegimos
guardar la foto y listo, de la misma forma pueden seguir robando mas fotos o videos:
2. Keylogger
Algo muy interesante, iOS almacena en texto plano una especie de registro con las
palabras usadas, algo sin duda muy útil si estamos en busca de contraseñas ;)
La ruta donde se encuentra estos archivos es:
/private/var/mobile/Library/Keyboard/es_ES-dynamic-text.dat
y dentro de ella podremos encontrar los archivos es_ES-dynamic-text.dat
y dynamic-text.dat
Usaremos el mismo comando del ejemplo pasado para extraer los archivos y veamos
que contienen.
Abriendo el archivo con un editor de texto nos muestra en texto plano las palabras que
se han escrito desde el teclado del dispositivo (por privacidad esta imagen la puse
borrosa)
Una vez extraido el archivo según sea el caso, lo abriremos con un gestos de bases
SQLite y observaremos algo así:
Si seguimos mirando más tablas podemos ver todo: contactos, números de teléfono, mensajes
enviados y recibidos, las fechas....
Tambien encontramos que hay otra base sqlite con todos los contactos en la misma ruta
pero con el nombre de Contacts.sqlite
También podremos usar una herramienta web para interpretar la base de datos sqlite sin
necesidad de tener un programa. En la página de http://www.recovermessages.com
podremos subir nuestra bd y se generarán las tablas con la información correspondiente
y lo mejor es que no solo nos sirve para interpretar la base de datos del whatsapp sino
también las bases de: WhatsApp Android, WhatsApp IPhone, Tuenti IPhone,
SpotBros IPhone, Line IPhone, SMS Android, SMS IPhone, EMails Android, EMails
IPhone.
5. Twitter
En el siguiente archivo podemos obtener datos datos como nombre de usuario en twitter,
últimas búsquedas y tweets...
/private/var/mobile/Applications/(ruta que varía)/Library/Preferences\com.atebits.Tweetie2.plist
6. SMS (iPhone)
/private/var/mobile/Library/SMS sms.db
7. Localizaciones
/private/var/root/Library/Caches/locationd/consolidate.db
8. Mails
/private/var/mobile/Library/Mail
9. Preferencias de aplicaciones
/private/var/mobile/Library/Preferences
/private/var/mobile/Library/AddressBook
Esto es solo un pequeño ejemplo de algunas cosas que podemos ver. Por supuesto
hay muchas más rutas y si las mirásemos todas estaríamos aquí un buen rato así
que aquí sólo les dejé algunas de las más interesantes, si quieren obtener mas,
sería cuestión de que ustedes mismos investiguen.
Mucho se ha hablado sobre la posibilidad de quitar el famoso sistema de seguridad dentro de iOS 7 que
consiste en el bloqueo del equipo que corra dicho sistema mediante la cuenta iCloud del usuario dueño. En
muchos sitios en internet se especula sobre diversos métodos y herramientas para lograr burlar o desactivar
este bloqueo. En las siguientes páginas se mostrarán algunos de ellos, así como, los bugs dentro de iOS 7 que
te permitirán borrar las cuentas de iCloud sin necesidad de usar ningún tipo de tolos.
Este método se basa en la utilización de una herramienta que mediante el uso del modo DFU del iPhone 4 se
explota una vulnerabilidad en el procesador del dispositivo teniendo la posibilidad de instalarle el servidor ssh y
de esa forma borrar los archivos de configuración donde se encuentra almacenada la cuenta iCloud. Cabe
aclarar que este método se realizará dentro del sistema operativo Windows. EMPECEMOS!
2. Descarga e instala la tool “iOS Soft Dev Pack + JB iOS 7.1 V2” y ejecútala.
(para realizar la instalación de la tool es necesario contar con .net
framework 3.5 o superior instalado)
Seleccionamos
Como se menciona en el texto anterior, se tiene que seleccionar al mismo tiempo las opciones de desactivar
“Find my iPhone” y “Delete Account”
Posteriormente aparecerá una pantalla como esta donde parecieran estar amontonadas las opciones de
desactivar Find my iPhone con la de borrar la cuenta iCloud, felicidades, si te apareció algo como esto lo único
que tienes que hacer es reiniciar el dispositivo, (en este punto podremos notar que la opción de Find my iPhone
ya se encuentra desactivada) nos dirigiremos de nuevo a la configuración de iCloud y ahora seleccionaremos
“Eliminar cuenta” si lo notas ahora no nos pedirá la contraseña de la cuenta iCloud para eliminarla e incluso la
medida de seguridad conocida como “Activation Lock” también desaparecerá.
Posteriormente presionaremos Delete Account, enseguida Delete otra vez, muy importante, durante la
animación en la que aparece la segunda opción para confirmar el borrado de la cuenta es necesario mover el
switch de “find my iPhone” como si lo fueramos a DESACTIVAR, y una vez presionado “Delete from My iPhone”
hacer lo mismo. Cuando el sistema te pida la contraseña daremos en cancel y si hiciste bien el procedimiento
ahora el switch de Find my iPhone quedará parcialmente desactivado
Lo siguiente que tendremos que hacer será entrar a la pestaña de la cuenta iCloud donde se encuentra el
correo y la contraseña. Borraremos el password y la palabra iCloud y apretaremos en “done”, nos mandará un
mensaje de error y repetiremos este procedimiento 2 veces en total. Una vez terminado daremos en “cancel”
Enseguida volveremos a entrar a esa pestaña y escribiremos en el espacio que quedó en blanco la palabra
iCloud y listo, cuando quieran borrar la cuenta iCloud del dispositivo no deberá ser necesario introducir la
contraseña.
Accedemos a la configuración del dispositivo y en la pestaña de iCloud accedemos a los datos de la cuenta,
borramos el password y tecleamos cualquier palabra, apretamos “done”, cuando nos aparezca el mensaje de
contraseña incorrecta daremos en OK y enseguida en “Cancel”
Volvemos a entrar a la pestaña per ahora borraremos la palabra iCloud y dejaremos el espacio en blanco, una
vez que apretemos “done” podremos observar que el switch de “Find my iPhone” estará desactivado y que
incluso podremos borrar la cuenta iCloud sin necesidad de la contraseña
Herramientas a utilizar:
-adb bundle
-consola
En este módulo se detallará como lograr un bypass al patrón de desbloqueo de un mobil con
android. Un requisito para que este método sea exitoso es que el mobil esté rooteado y
tenga el debbuging mode encendido.
Por lo general hay un gran porcentaje de personas que al hacerle root a sus dispositivos
dejan el modo debugging encendido y lo olvidan por completo, esto puede representar una
amenaza (o una ventaja) dependiendo del uso que le quieran dar a este método, ya sea para
saltarse el patrón de desbloqueo en caso de que lo hayan olvidado o para saltárselo en caso
de ser una persona con malas intenciones hacia el dispositivo.
Primero instalaremos el adb de android que es la herramienta utilizada por los
desarrolladores de la plataforma para diferentes propósitos, en este caso, nos enfocaremos
en borrar los archivos que contienen la información correspondiente al patrón de bloqueo.
Kali Linux:
Para instalar adb bundle dentro de kali Linux tendremos que descargar el paquete desde la
web oficial http://dl.google.com/android/adt/22.6.2/adt-bundle-linux-x86_64-20140321.zip y
descomprimirlo, de preferencia lo dejaremos en la carpeta inicial del sistema, en mi caso lo
puse en /root
Posteriormente tendremos que instalar unos paquetes necesarios para que lo podamos
ejecutar sin problemas, abrimos terminal y teclearemos lo siguiente:
A estas alturas ya debes poder ejecutar el software sin problemas, sin embargo, para
facilitarnos la vida crearemos las variables de entorno para ejecutar el software sin importar la
ruta en la que estemos situados, para lo cual teclearemos el siguiente comando en la
consola:
export PATH=${PATH}:/usuario/ruta/android-
sdk/tools:/usuario/ruta/android-sdk/platform-tools
Mac osx:
touch .bash_profile
open -e .bash_profile
Aquí agregamos la ruta a nuestro adb dentro del directorio de nuestro paquete de android
descargado anteriormente:
export PATH=${PATH}:/Android/adt-bundle-mac/sdk/platform-tools
Esto nos permitirá utilizar el comando adb, desde cualquier sitio en Terminal.
Ahora reiniciamos las variables de entorno con:
source .bash_profile
echo $PATH
Ahí estarán.
Windows:
Descargamos el paquete oficial en el link
http://developer.android.com/sdk/index.html?hl=sk#win-bundle seleccionamos nuestro
paquete correspondiente a la arquitectura de nuestro procesador si este es de 32 o 64 bits.
Lo descomprimimos y renombramos la carpeta a algo mas simple como android esto nos
facilitará más el crear nuestras variables de entorno. Una vez teniendo la carpeta la
moveremos al directorio raíz de nuestra unidad de disco duro, en este caso mi ruta sería C:
Nos dirigiremos a menú de inicio:
click derecho en equipo>propiedades
configuración avanzada del sistema
;C:\android\sdk\platform-tools
Damos click en aceptar y LISTO, ahora puedes teclear los comandos de adb dentro de
símbolo del sistema sin ningún problema.
1. Primero verificaremos que nuestro equipo sea reconocido tecleando adb devices una
vez que hayamos conectado nuestro equipo a la computadora mediante el cable usb.
3. Nos dirigiremos a la ruta /data/system/ y una vez ahí dentro podremos observar que
existen varios archivos, entre ellos se encuentra el que contiene la configuración del patrón
de desbloqueo, este archivo puede llamarse gesture.key o (locksettings.db,
locksettings.db-wal y locksettings.db-shm) lo que haremos será borrarlo con el
comando rm y enseguida el nombre y extensión del archivo.
5. Listo, el patrón de desbloqueo ha sido borrado y una vez reiniciado el dispositivo basta
con que hagas un toque en la pantalla de desbloqueo o simplemente deslices tu dedo y
tendrás acceso al dispositivo.
En este tema haremos una explotación a un dispositivo Android por medio de una aplicación
(.apk) creada mediante el framework de metasploit.
2. Tengamos en cuenta los datos de conexión que usaremos para la creación de nuestra
.apk.
5. En este caso para la explotación usaremos un dispositivo Android xperia pro modelo
mk16a.
Para darnos una idea de lo que podemos ejecutar dentro de la Shell meterpreter
teclearemos el comando help
Command Description
------- -----------
? Help menu
background Backgrounds the current session
bgkill Kills a background meterpreter script
bglist Lists running background scripts
bgrun Executes a meterpreter script as a background thread
channel Displays information about active channels
close Closes a channel
disable_unicode_encoding Disables encoding of unicode strings
enable_unicode_encoding Enables encoding of unicode strings
exit Terminate the meterpreter session
help Help menu
info Displays information about a Post module
interact Interacts with a channel
irb Drop into irb scripting mode
load Load one or more meterpreter extensions
quit Terminate the meterpreter session
read Reads data from a channel
resource Run the commands stored in a file
run Executes a meterpreter script or Post module
use Deprecated alias for 'load'
write Writes data to a channel
Command Description
------- -----------
cat Read the contents of a file to the screen
cd Change directory
download Download a file or directory
edit Edit a file
getlwd Print local working directory
getwd Print working directory
lcd Change local working directory
lpwd Print local working directory
ls List files
mkdir Make directory
pwd Print working directory
rm Delete the specified file
rmdir Remove directory
search Search for files
upload Upload a file or directory
Command Description
------- -----------
ifconfig Display interfaces
ipconfig Display interfaces
portfwd Forward a local port to a remote service
route View and modify the routing table
Command Description
------- -----------
execute Execute a command
getuid Get the user that the server is running as
ps List running processes
shell Drop into a system command shell
sysinfo Gets information about the remote system, such as OS
Command Description
------- -----------
record_mic Record audio from the default microphone for X seconds
webcam_list List webcams
webcam_snap Take a snapshot from the specified webcam
En donde –in va a corresponder al nombre del archive de nuestra base que descargamos, -out sera el
nombre del archivo que le daremos de salida y K sera la llave universal que se usa para desencriptar
la base de datos
Para las versiones mas nuevas de Whatsapp la base de datos se encuentra encriptada de
forma diferente y esta tiene una terminación .crypt5
Para lograr desencriptarla usaremos un scrypt en python , sin embargo, para que este tenga
éxito será necesario que sepamos la cuenta gmail asiociada a la terminal android
Para usarlo es tan sencillo como invocarlo así:
pwncrypt5.py
#!/usr/bin/python
"""
48bits presents:
8===============================================D~~~
WhatsApp msgstore crypt5 decryptor by grbnz0 and nullsub
8===============================================D~~~
"""
import sys
import hashlib
import StringIO
from M2Crypto import EVP
key = bytearray([141, 75, 21, 92, 201, 255, 129, 229, 203, 246, 250,
120, 25, 54, 106, 62, 198, 33, 166, 86, 65, 108, 215, 147])
iv =
bytearray([0x1E,0x39,0xF3,0x69,0xE9,0xD,0xB3,0x3A,0xA7,0x3B,0x44,0x2B,0x
BB,0xB6,0xB0,0xB9])
def decrypt(db,acc):
fh = file(db,'rb')
edb = fh.read()
fh.close()
m = hashlib.md5()
m.update(acc)
md5 = bytearray(m.digest())
for i in xrange(24): key[i] ^= md5[i&0xF]
cipher = EVP.Cipher('aes_192_cbc', key=key, iv=iv, op=0)
sys.stdout.write(cipher.update(edb))
sys.stdout.write(cipher.final())
if __name__ == '__main__':
if len(sys.argv) != 3:
print 'usage %s <db> <accountname> > decrypted.db' % sys.argv[0]
else:
decrypt(sys.argv[1],sys.argv[2])
Una de las alternatvas para poder desencriptar la base de datos es usando el sitio web
https://www.recovermessages.com el cual hará todo el proceso por nosotros, sin embargo, si
queremos ver la base de datos completa será necesario hacer un pequeño pago.
Listo! Nuestra base de datos ha sido desencriptada y lista para ser leida
‐Conexión
De forma opcional debemos hacer una prueba de conexión para saber a
cuantos megas navegamos.
Una vez hecho esto Reiniciamos el modem para que se apliquen los
cambios.
http://www.cual‐es‐mi‐ip.net
Ahora Copiamos y pegamos en nuestro navegador , y por ejemplo en mi
caso esta abierto el puerto para mi NAS.
Con esto ya tenemos todos los puertos abiertos , ¿pero que pasa si
reinicio mi modem y/o se va la luz? , es claro que la ip va a cambiar y la
Como algunos usuarios sabrán existen algunas apps dentro de la Play Store que sirven
para “proteger” nuestro equipo Android contra pérdida o robo dándonos una serie de
opciones que nos permiten desde localizar geográficamente nuestro Smartphone hasta
borrarlo de forma remota.
En este caso hablaré un poco sobre una aplicación en especial que debido a su amplio
repertorio de funciones nos podría llegar a servir en un momento determinado para fines
no tan buenos como para los que fue creada. Su nombre es cerberus y está disponible
de manera gratuita dentro de la Play Store.
- SIM Checker (para los dispositivos que tienen una tarjeta SIM): recibirá
automáticamente alertas si alguien utiliza su teléfono con una tarjeta SIM no autorizada
- Y mucho mas!
Sin embargo, todas estas funciones tan útiles no son grátis. El único requerimiento para
poder explotar todo el potencial de la aplicación es mediante el ÚNICO pago de 2.99€
vendría siendo el equivalente a $54 pesos mexicanos, este será el único pago que se
tendría que hacer para la creación de la cuenta y esta es de por vida.
Toda la información del dispositivo puede ser vista mediante la página web de
www.cerberusapp.com y esta a su vez mandará correos al que se usó para el registro
Como he dicho anteriormente, las herramientas pueden ser utilizadas para buenos o
malos fines, simplemente se trata de que tan creativo sea uno para lograr sus objetivos y
la ingeniería social que apliquen.
Disponiblidad :
Nota : hay muchos comandos en internet , simplemente utilize el comando df‐h para
ver las particiones y verifico que esta “Hm_USB” es la que quiero testear.
Ejemplo en Linux :
Hay muchas maneras de hacerlo dependiendo la distribución que
tengas. En este caso hemos usado el comando “mount” y vemos los
dispositivos montados por el sistema .
Ejemplo en Windows :
Tan sencillo como entrar > inicio > mi PC , y listamos las unidades ... con la
vista
Para finaliza tecleamos la letra “C” para decirle al software que el destino
es el correcto.
Y con esto empieza el Proceso de Recuperación en Segundo Plano.
MP3 : Recuperados
Imágenes Recuperadas :
Archivos Recuperados :
Archivos Compresos :
Practicamente son los mismos pasos que en los sistemas basados en UNIX
así que seguiremos los pasos anteriores.
Pasos:
-En donde usuario será la cuenta de nuestra computadora que recibirá el archivo
-No confundan ‘dd if=’ con ‘dd of=’ de lo contrario podrían reescribir la memoria
de su iOS
-Una vez iniciado el proceso este puede tardar horas, será cosa de ser paciente y
esperar a que termine
Como se pueden dar cuenta, el proceso para recuperar los datos será el mismo que
utilizamos para el de una usb normal