Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
▼
2015
(Total:
445
)
-
▼
octubre
(Total:
35
)
- Múltiples vulnerabilidades en los CMS de Joomla y ...
- Tor Messenger Beta, el chat fácil sobre la red Tor
- OnePlus X ya tiene precio y disponibilidad oficial...
- Android permitirá grabar la pantalla a través de G...
- ¿A qué edad debe tener un niño su primer teléfono ...
- Netflix publicará la velocidad real de conexión de...
- Ya es posible la configuración Multi-GPU Nvidia co...
- HTC Dream, el primer móvil con Android cumple 7 años
- Los clientes españoles de Ashley Madison están sie...
- SocialDrive te avisa de radares y controles polici...
- Premios Bitácoras 2015: Mejor Blog de Seguridad In...
- OVH World Tour en Barcelona
- Western Digital compra SanDisk por 19.000 millones...
- Rifle desactiva drones a una distancia de hasta 40...
- BackBox Linux 4.4 para realizar Pentesting
- Analizar APKs con AndroTotal y binarios con Revers...
- 9 de cada 10 ayuntamientos españoles son vulnerabl...
- EMET 5.5 incluye la posibilidad de bloquear la car...
- Adobe confirma importante vulnerabilidad de Flash,...
- El ransomware cifrador Shade de origen ruso
- Ataques de fuerza bruta con amplificación en WordP...
- [NocONName] Congreso No cON Name 2015 en La Salle
- Determinar extensión de un fichero mirando las cab...
- Hoox un teléfono ultraseguro a prueba de espías
- Neural Alfa, el teclado de SwiftKey basado en el a...
- Un gato buscando redes Wifi, haciendo Wardriving
- Google presenta oficialmente Android 6.0 Marshmallow
- Samsung no arreglará el Stagefright 2.0 en algunos...
- Google implementará HTTPS en Blogger
- Espiar el móvil de la pareja: dos años y medio de ...
- Phishing a Google a través de SMS supuestamente en...
- Botnet se aprovecha de sistemas Linux para realiza...
- Stagefright 2.0, nueva y grave vulnerabilidad en A...
- Modificación de mensajes manipulando la base de da...
- Descubre todo lo que Google sabe de ti
- ► septiembre (Total: 47 )
-
▼
octubre
(Total:
35
)
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
seguridad
(
395
)
privacidad
(
363
)
google
(
353
)
ransomware
(
338
)
vulnerabilidad
(
301
)
Malware
(
263
)
Windows
(
243
)
android
(
242
)
cve
(
235
)
tutorial
(
235
)
manual
(
220
)
software
(
201
)
hardware
(
193
)
linux
(
124
)
twitter
(
115
)
ddos
(
94
)
WhatsApp
(
90
)
Wifi
(
85
)
cifrado
(
77
)
herramientas
(
75
)
hacking
(
73
)
sysadmin
(
67
)
app
(
65
)
Networking
(
56
)
nvidia
(
52
)
ssd
(
51
)
youtube
(
50
)
adobe
(
43
)
firmware
(
42
)
office
(
41
)
hack
(
40
)
firefox
(
35
)
contraseñas
(
32
)
eventos
(
32
)
antivirus
(
31
)
juegos
(
31
)
cms
(
30
)
flash
(
28
)
anonymous
(
27
)
MAC
(
25
)
apache
(
25
)
programación
(
25
)
exploit
(
23
)
javascript
(
22
)
multimedia
(
22
)
Kernel
(
20
)
ssl
(
19
)
SeguridadWireless
(
17
)
documental
(
16
)
Forense
(
15
)
conferencia
(
15
)
Debugger
(
14
)
lizard squad
(
14
)
técnicas hacking
(
13
)
auditoría
(
12
)
delitos
(
11
)
metasploit
(
11
)
Virtualización
(
10
)
adamo
(
9
)
reversing
(
9
)
Rootkit
(
8
)
Ehn-Dev
(
7
)
MAC Adress
(
6
)
antimalware
(
6
)
oclHashcat
(
5
)
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Modificación de mensajes manipulando la base de datos de WhatsApp
jueves, 1 de octubre de 2015
|
Publicado por
el-brujo
|
Editar entrada
Demostración de como es posible falsificar mensajes de WhatsApp de tal
forma que la manipulación podría perfectamente pasar inadvertida para un
perito informático que realizase una investigación forense sobre el
terminal móvil.
WhatsApp es la aplicación de mensajería instantánea más utilizada del mundo. Más de setecientos millones de usuarios en todo el planeta (la décima parte de toda la Humanidad), la utiliza para intercambiar mensajes de texto y de voz, ficheros de audio y de vídeo, etc. El hecho de que sea una aplicación universalmente utilizada, implica también que muchas personas, involucradas en procesos judiciales, presenten los mensajes de WhatsApp como prueba si quieren demostrar que una conversación, en unos términos concretos, ha tenido lugar entre determinados interlocutores.
Seguidamente, se ha de indicar que la base de datos interna de WhatsApp utiliza SQLite como Sistema Gestor de Base de Datos, por lo que se trata, por tanto, de un sistema relacional. Asimismo, una copia de esta base de datos, se encuentra fácilmente accesible conectando el terminal móvil al ordenador, estando ésta cifrada mediante criptografía simétrica utilizando el algoritmo AES, cuyo funcionamiento puede observarse en el siguiente diagrama.
Como se puede apreciar, la clave de cifrado y descifrado es la misma. Esto equivale a decir que la misma clave se utiliza para cifrar y para descifrar la base de datos, estando ésta almacenada y accesible en el directorio que utiliza WhatsApp. Sin embargo, la base de datos original, es decir, la que es utilizada por la aplicación para almacenar los mensajes inmediatamente después de ser enviados o recibidos, no está cifrada, sino que se encuentra almacenada en texto claro en uno de los directorios que la aplicación tiene en el sistema operativo. Esta base de datos no es accesible conectando directamente el terminal al ordenador, pero sí lo es una vez el terminal Android ha sido rooteado, es decir, configurado para ser accedido en modo súper-usuario, lo cual es algo muy sencillo de realizar incluso para usuarios no expertos.
Una vez se han ejecutado estos dos comandos, la utilidad ADB abre
una sesión con el terminal móvil, tal y como se observa en la siguiente
imagen.
Al ejecutar un listado de los ficheros presentes en dicho
directorio, mediante el comando “ls -la”, se aprecian los siguientes
archivos:
La ejecución exitosa del comando presenta la siguiente información en la consola:
La siguiente captura de pantalla del directorio de Windows en el que se encuentra la utilidad ADB, muestra que en dicha carpeta ha sido depositado el fichero “msgstore.db” (seleccionado en la imagen):
ara abrir el mencionado fichero de base de datos, será necesario un cliente de SQLite, habiendo sido seleccionado para este ejemplo el cliente de código abierto SQLiteStudio. Así pues, es necesario abrir el programa y, posteriormente, navegar hasta el menú Database -> Add a database, al objeto de añadir una nueva base de datos, por lo que se deberá buscar y seleccionar el archivo de base de datos que se desea alterar, en este caso “msgstore.db”, localizado en el directorio en el que se encuentra la utilidad ADB. Una vez añadida la base de datos, ésta aparece en SQLiteStudio como se aprecia en la siguiente imagen (remarcada en rojo).
Seguidamente, es necesario conectarse a la base de datos. Para ello, con la base de datos seleccionada, hay que navegar hasta el menú Database -> Connect to the database, de tal forma que el cliente se conecta inmediatamente a la base de datos. Desplegando la base de datos, se puede observar que ésta está conformada por once tablas, tal y como se observa en la siguiente imagen.
La ejecución de la consulta se aprecia en la siguiente imagen, en
la que únicamente se han devuelto dos registros, debido a que la
palabra “whatsapp” sólo aparece dos veces en todos los mensajes (se ha
remarcado en rojo, asimismo, el botón del cliente de SQLite con el cual
se puede acceder al editor de SQL).
ara dejar el menor rastro posible de la manipulación, es necesario modificar tanto el propietario como el grupo del fichero de base de datos, que al haberlo copiado como root, es decir, como súper-usuario, tendrá tanto este propietario como este grupo. Para apreciarlo, se debe navegar hasta el directorio en el que se encuentra la base de datos, ejecutando los siguientes comandos:
Fuente:
http://peritoinformaticocolegiado.es/vulnerabilidad-en-whatsapp-falsificacion-de-mensajes-manipulando-la-base-de-datos/
WhatsApp es la aplicación de mensajería instantánea más utilizada del mundo. Más de setecientos millones de usuarios en todo el planeta (la décima parte de toda la Humanidad), la utiliza para intercambiar mensajes de texto y de voz, ficheros de audio y de vídeo, etc. El hecho de que sea una aplicación universalmente utilizada, implica también que muchas personas, involucradas en procesos judiciales, presenten los mensajes de WhatsApp como prueba si quieren demostrar que una conversación, en unos términos concretos, ha tenido lugar entre determinados interlocutores.
Seguidamente, se ha de indicar que la base de datos interna de WhatsApp utiliza SQLite como Sistema Gestor de Base de Datos, por lo que se trata, por tanto, de un sistema relacional. Asimismo, una copia de esta base de datos, se encuentra fácilmente accesible conectando el terminal móvil al ordenador, estando ésta cifrada mediante criptografía simétrica utilizando el algoritmo AES, cuyo funcionamiento puede observarse en el siguiente diagrama.
Como se puede apreciar, la clave de cifrado y descifrado es la misma. Esto equivale a decir que la misma clave se utiliza para cifrar y para descifrar la base de datos, estando ésta almacenada y accesible en el directorio que utiliza WhatsApp. Sin embargo, la base de datos original, es decir, la que es utilizada por la aplicación para almacenar los mensajes inmediatamente después de ser enviados o recibidos, no está cifrada, sino que se encuentra almacenada en texto claro en uno de los directorios que la aplicación tiene en el sistema operativo. Esta base de datos no es accesible conectando directamente el terminal al ordenador, pero sí lo es una vez el terminal Android ha sido rooteado, es decir, configurado para ser accedido en modo súper-usuario, lo cual es algo muy sencillo de realizar incluso para usuarios no expertos.
Así pues, una vez el móvil ha sido rooteado
(para este ejemplo, se usará el Wiko Goa), tener acceso a la base de
datos original es una operación muy sencilla. Para ello, usando la
utilidad ADB para Windows de las herramientas de desarrollo de Android,
es necesario ejecutar los siguientes comandos al objeto de abrir una
sesión con el terminal (primeramente es necesario haber instalado
correctamente las herramientas de desarrollo de Android y los drivers
del dispositivo móvil del cual se desea obtener su base de datos de
WhatsApp, así como haber activado el “modo de depuración USB” en el
citado terminal Android):
C:\android-sdk-windows\platform-tools>adb devices
C:\android-sdk-windows\platform-tools>adb shell
Es necesario indicar que, como servidor
de ADB en el dispositivo móvil, es posible que sea necesario instalar y
ejecutar una aplicación como ADB Insecure,
más conocido como ADBD, al objeto de que se pueda transferir
información entre el móvil y Windows y viceversa. Esto es así debido a
que ciertas características de la utilidad ADB de serie no pueden ser
utilizadas en versiones estables, es decir, finales, de Android, sino
únicamente en versiones de desarrollo.
A continuación, es necesario acceder en
modo súper-usuario al terminal, ya que la base de datos original de
WhatsApp se encuentra en un directorio que sólo puede ser visualizado
con privilegios de administrador. Para ello, es necesario ejecutar el
comando “su”, tal y como se aprecia en la siguiente imagen.
Siendo ya súper-usuario, es necesario
moverse al directorio en el que se encuentra la base de datos original
de WhatsApp, ejecutando el siguiente comando:
# cd /data/data/com.whatsapp/databases
Como se puede observar, el fichero que
interesa es el remarcado en rojo. Ésta es la base de datos original de
WhatsApp en la que se almacenan los mensajes inmediatamente después de
ser enviados o recibidos. Una vez se ha visualizado el archivo que
interesa, es necesario ejecutar el comando “exit” dos veces para volver a
Windows, ya que será desde allí desde donde se tomará el archivo de
base de datos de WhatsApp.
Ya en Windows, es necesario ejecutar el
siguiente comando, al objeto de traer a Windows la base de datos (aunque
es necesario, previamente, para disponer de todos los mensajes,
incluyendo los enviados y recibidos en último lugar, haber realizado una
copia de seguridad de los mensajes desde la propia aplicación WhatsApp,
en el menú Ajustes -> Chats y llamadas -> Guardar chats):
C:\android-sdk-windows\platform-tools>adb pull /data/data/com.whatsapp/databases/msgstore.db
La siguiente captura de pantalla del directorio de Windows en el que se encuentra la utilidad ADB, muestra que en dicha carpeta ha sido depositado el fichero “msgstore.db” (seleccionado en la imagen):
ara abrir el mencionado fichero de base de datos, será necesario un cliente de SQLite, habiendo sido seleccionado para este ejemplo el cliente de código abierto SQLiteStudio. Así pues, es necesario abrir el programa y, posteriormente, navegar hasta el menú Database -> Add a database, al objeto de añadir una nueva base de datos, por lo que se deberá buscar y seleccionar el archivo de base de datos que se desea alterar, en este caso “msgstore.db”, localizado en el directorio en el que se encuentra la utilidad ADB. Una vez añadida la base de datos, ésta aparece en SQLiteStudio como se aprecia en la siguiente imagen (remarcada en rojo).
Seguidamente, es necesario conectarse a la base de datos. Para ello, con la base de datos seleccionada, hay que navegar hasta el menú Database -> Connect to the database, de tal forma que el cliente se conecta inmediatamente a la base de datos. Desplegando la base de datos, se puede observar que ésta está conformada por once tablas, tal y como se observa en la siguiente imagen.
De todas estas tablas, las que interesan son las siguientes:
- messages, que almacena los mensajes enviados y recibidos, así como varias propiedades de los mismos.
- messages_fts_content, que almacena los mensajes enviados y recibidos sin ninguna propiedad, únicamente con la misma clave primaria que en la tabla messages.
Para modificar un mensaje enviado o recibido es tan sencillo como realizar los siguientes pasos:
En primer lugar, es necesario conocer la clave primaria del mensaje
que se desea modificar. Para ello, lo más óptimo es ejecutar una
consulta de búsqueda por el patrón del mensaje en el propio cliente de
SQLite. Así pues, para modificar el mensaje del ejemplo, se ejecutará la
siguiente consulta, que proporcionará todos aquellos mensajes donde
aparece la palabra “whatsapp”, de tal forma que pueda tomarse el
identificador del mensaje que se desea modificar:select * from messages where data LIKE “%whatsapp%”;
Una vez realizados todos los pasos
anteriores, es necesario seleccionar con el botón derecho del ratón la
base de datos en SQLiteStudio y ejecutar la opción Disconnect from the database,
para acto seguido salir del programa. Posteriormente, se debe copiar la
base de datos alterada en el teléfono, sustituyendo la original. Para
ello, es necesario ejecutar el siguiente comando en la consola de
Windows (como se mencionó anteriormente, la aplicación ADB Insecure debe
encontrarse en ejecución en el móvil):
C:\android-sdk-windows\platform-tools>adb push msgstore.db /data/data/com.whatsapp/databases/msgstore.db
ara dejar el menor rastro posible de la manipulación, es necesario modificar tanto el propietario como el grupo del fichero de base de datos, que al haberlo copiado como root, es decir, como súper-usuario, tendrá tanto este propietario como este grupo. Para apreciarlo, se debe navegar hasta el directorio en el que se encuentra la base de datos, ejecutando los siguientes comandos:
C:\android-sdk-windows\platform-tools>adb shell
# su
# cd /data/data/com.whatsapp/databases
# ls –la
Como se puede apreciar dentro del
rectángulo remarcado en rojo, el nuevo propietario del fichero
“msgstore.db”, es el súper-usuario, así como también el nuevo grupo del
fichero es el grupo del súper-usuario. Para revertir esta situación, es
necesario ejecutar el siguiente comando:
# chown u0_a88:u0_a88 msgstore.db
Una vez realizado todo el proceso, debe
reiniciarse el teléfono móvil y acceder, mediante la utilidad ADB, al
directorio en el que se encuentra la base de datos, al objeto de
comprobar que las fechas de último acceso de la misma se han actualizado
y que no es pòsible determinar si la base de datos ha sido sustituida
por una alterada. Para ello, es necesario ejecutar los siguientes
comandos:
C:\android-sdk-windows\platform-tools>adb devicesLa última modificación de la base de datos es muy similar al resto de fechas de los otros archivos utilzados por WhatsApp, por lo que sería muy difícil dictaminar que la base de datos ha sido manipulada. Para ello, serían necesarias técnicas de file carving, es decir, recuperación de ficheros borrados, las cuales son muy costosas debido a las herramientas hardware y software necesarias y, además, no garantizan el éxito porque las áreas del sistema de ficheros ocupadas por ficheros borrados, son sobrescritas por el sistema operativo en función de las necesidades de éste.
C:\android-sdk-windows\platform-tools>adb shell
# su
# cd /data/data/com.whatsapp/databases
# ls -la
Fuente:
http://peritoinformaticocolegiado.es/vulnerabilidad-en-whatsapp-falsificacion-de-mensajes-manipulando-la-base-de-datos/
Enviar por correo electrónico
Escribe un blog
Compartir en X
Compartir con Facebook
Compartir en Pinterest
2 comentarios :
Interesante, lo voy a probar
Esto aún se puede hacer después de tantas actualizaciones de seguridad de WhatsApp?
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.