Está en la página 1de 54

FORENSE EN WHATSAPP Y

WORDPRESS USANDO OPEN


SOURCE
JORGE CORONADO
WWW.QUANTIKA14.COM
20/06/2019

20/06/2019 www.quantika14.com 1
Gracias por
invitarme de
nuevo a dar a
una charla

20/06/2019

www.quantika14.com 2
Autor: Jorge Coronado
• Fundador y CEO de QuantiKa14
• Perito informático
• Colaborador de Canal Sur Radio desde 2015
• Profesor en el curso de detectives de la Universidad Pablo Olavide de Sevilla en 2017
• Colaborador del primer “Protocolo institucional en España ante la violencia de género en las redes
sociales”
• Formación a cuerpos de seguridad en investigación a través de Internet desde la ESPA y otros cursos
• Creador del protocolo de actuación para la búsqueda de personas desaparecidas a través de las
tecnologías de la información y comunicación
• Vocal de la asociación de peritos tecnológicos de Andalucía (APTAN)
• Dinamizador del Hack&Beers Sevilla
• Canal de Youtube “INVESTIGA CONMIGO DESDE EL $SU”
• Creador de aplicaciones como: Guasap Forensic, Shodita, EO-Ripper, Dante Gates, Killo.io, etc

Sígueme en Twitter:
@JorgeWebsec
@QuantiKa14

20/06/2019 www.quantika14.com 3
¿Qué vamos a ver?

1. Forense en WhatsApp
1. Metodología
2. Aplicaciones para extracción
3. Guasap Forensic para extracción y análisis automático
4. Caso real

2. Forense en WordPress
1. Metodología
2. WpScan
3. Web hunter forensic
4. WordPress Analyzer para eliminar malware

20/06/2019 www.quantika14.com 4
FORENSE EN WORDPRESS USANDO OPEN SOURCE
6/30/2019 www.quantika14.com 5
6
Situación

La empresa despide de forma procedente a un


empleado por haber publicado en el blog de la
empresa un artículo que insulta a la directiva.

Imaginemos a la jefa como “Maria Antonia”.

7
Situación
Antecedentes de hechos: Contrapericial:
Mi cliente me manifiesta llevar muchos años en La empresa aportó un informe pericial
la empresa y haber sido despedido de forma informático que realizó ante notario.
procedente pero los argumentos que expone la Básicamente describen como observan una web
empresa son: WordPress, donde en el apartado de “Noticias”,
el artículo más buscado, tiene un título
• haber modificado la entrada del blog de la “insultante para cargos de la directiva de la
empresa y cambiar un título insultando a la empresa y otros trabajadores superiores [..]”.
directiva y superiores. Concluyen que la autoría de tal hecho es mi
El cliente afirma (varias veces) no haber cliente.
realizado esa modificación y ser inocente. En la web aparece el usuario, y solo tienen 3
personas y la web tiene 3 usuarios diferentes
con accesos al panel de control: la jefa (“Mari
Antonia”) y dos trabajadores.
Según la fecha que se puede ver en la captura
de pantalla, solo puede ser mi cliente porque es
el único que estaba en la oficina trabajando a
esa hora y la IP es de allí

30/06/2019 www.quantika14.com 8
Preguntas que
nos hacemos:
• ¿Quién fue entonces?
• ¿Hay control remoto en los equipos?
• ¿Qué artifacts tiene WordPress?

• ¿La web es vulnerable? ¿Ha sufrido alguna


intrusión?
• ¿Qué personas tienen acceso al FTP?
• ¿La base de datos tiene acceso remoto?
¿Cómo?
• ¿Qué usuarios han accedido en la base de
datos en los últimos meses? ¿Y qué han
hecho?
• ¿Qué usuarios han accedido al servidor en
los últimos meses? ¿Y qué han hecho?

6/30/2019 www.quantika14.com 9
¿Qué ha podido
pasar?
1. Que mi cliente mienta.
a. Indicios en los registros
2. Que haya sido un intruso tercero
a. Web vulnerable
b. Contraseñas flojas (usuarios
identificables)
c. Fuerza bruta
d. Backdoor
3. Que haya sido otra persona de la empresa
a. Registros
b. Tienen acceso (panel, DB y
servidor)

6/30/2019 www.quantika14.com 10
Pedimos el clonado

Nos interesa no solo investigar


en la fecha del clonado. Por
ello, vamos a buscar si en el
servidor existe alguna copia de
seguridad a fecha de los
hechos.
¿Cómo podemos saber si los archivos del core de WP han sido modificados?

https://api.wordpress.org/core/checksums/1.0/?version={var}

6/30/2019 www.quantika14.com 12
Auditoría del WordPress
• Analizamos si es posible
identificar los nombres de
usuarios
• Detectamos si existe algún
tipo de sistema contra fuerza
bruta
• Identificamos si el WP es
vulnerable, los plugins,
themes, etc

6/30/2019 www.quantika14.com 13
WPSCAN

30/06/2019 www.quantika14.com 14
¿Un cronjob
que cambiara
el artículo?

• https://wordpress.org/plug
ins/wp-crontrol/

30/06/2019 www.quantika14.com 15
Cruzamos
datos de los
logs:

6/30/2019

www.quantika14.com 16
Web Hunter Forensic:

https://blog.quantika14.com/blog/2018/11/28/diario-
de-un-perito-informatico-forense-a-un-wordpress-iii/

30/06/2019 www.quantika14.com 17
¿Cómo identificamos malware de forma
automática?

30/06/2019 www.quantika14.com 18
Vídeo de wpAnalyzer

30/06/2019 www.quantika14.com 19
Resumen:
Prueba realizada Resultado
Comprobamos hash de archivos Nada raro
Vulnerabilidades No se encuentran
Fuerza bruta No existe protección
Análisis de los logs Encontramos:
• No hay indicios de BF
• No hay indicios de ataque informático
• No encuentra conexiones a phpmyadmin
Detección de malware Ninguno aparentemente
Cronjobs Falso positivo, no hay ninguno peligroso

30/06/2019 www.quantika14.com 20
Hipótesis:

• “Mari Antonia” no se acordaba de la contraseña para


acceder al WordPres y tampoco le apetecía trabajar.
¿Cómo lo sabemos? Porque se encuentra varios intentos
de logins por su usuario desde la IP de su casa. También
le dio a recuperar contraseña pero no lo intenta
• Un día después desde la oficina le comenta a su
compañero que quiere despedir a nuestro cliente.
¿Cómo lo sabemos? Porque
• Le pide que haga algo. Al trabajador se le ocurre
modificar una entrada ya publicada; cambiar el título y
texto, además, añadiendo una foto… insultante. Todo lo
realiza desde la función de “modificar” de WordPress.
• Realiza las modificaciones poniendo una fecha y hora
que solo pueda culpar a nuestro cliente

6/30/2019

www.quantika14.com 21
¿Qué hace la función
“wp_update_post()”?

• Es una función que aparece en 37


ocasiones en 16 archivos diferentes
del core de WP. Es una función que
se encarga de actualizar el post que
le digamos a través de su ID.
• WP permite modificar todos los
campos sin problemas. Por lo cual,
una tercera persona podría desde el
panel de control modificar la fecha
de publicación a otro día, pero
actualizará no solo el campo
“post_date”, sino también el
registro “post_modified” por la
última fecha de del día y hora de
modificación.

6/30/2019 www.quantika14.com 22
Exif Tool más 30 líneas de Python

30/06/2019 www.quantika14.com 23
Conclusión:
• Se encuentran claros indicios de que el artículo donde se
insultaba a “Mari Antonia” es un POST modificado
• Se encuentra una fecha de modificación que no coincide
con las horas de trabajo del acusado
• Se encuentra que la imagen fue creada
aproximadamente a la misma hora que se modificó el
POST
• Se encuentra que la imagen fue modificada con la
aplicación de Photoshop. Únicamente instalada en el
ordenador del compañero del cliente

6/30/2019 www.quantika14.com 24
WHATSAPP COMO PRUEBA DIGITAL

30/06/2019 www.quantika14.com 25
¿Qué es una prueba
digital?

El concepto de documento electrónico o digital viene


definido en el artículo 299.2 LEC, donde admite
como medio de prueba “los instrumentos que
permiten archivar y conocer o reproducir palabras,
datos, cifras y operaciones matemáticas”. Su
apartado tres habla de “cuando por cualquier otro
medio no expresamente previsto (…) pudiera
obtenerse certeza sobre hechos relevantes, el
Tribunal, a instancia de parte, lo admitirá como
prueba, adoptando las medidas que en cada caso
resulten necesarias.”

30/06/2019

www.quantika14.com 26
El Tribunal Superior
de Justicia de Sentencia del Tribunal Superior de Justicia de Madrid de
Madrid acepta 10 de junio de 2015 (Recurso 817/2014)

como comunicación
de baja voluntaria
mensajes enviados https://www.laboral-social.com/sites/laboral-
a través de social.com/files/NSJ052530.pdf
http://www.legaltoday.com/files/File/pdfs/sentencia-
whatsapp. laboral.pdf

www.quantika14.com 30/06/2019 27
30/06/2019 28

El stalking o acecho es una forma de acoso que consiste en la persecución ininterrumpida e intrusiva a una
persona sirviéndose de las nuevas tecnologías. Es decir, mediante llamadas, mensajes, controlando el
whatsapp o vigilando las redes sociales. El nuevo artículo 172 ter del Código Penal castiga ahora esta
conducta que, pese a su gravedad y a la alteración de la vida cotidiana que supone para la víctima, quedaba
impune por la dificultad de tipificarla con arreglo a la legislación vigente anterior a la reforma del Código
Penal de 2015.

El stalking en el
El Pleno de la Sala II del Tribunal Supremo en su Sentencia de 8 de mayo de 2017, se ha pronunciado por
primera vez sobre el nuevo delito de ‘stalking’ u hostigamiento, introducido en el Código Penal por
reforma del año 2015, que castiga con penas de 3 meses a 2 años de cárcel (o multa de 6 a 24 meses), a
quien acose a una persona de forma insistente y reiterada, alterando gravemente su vida cotidiana. En esta

ámbito de la primera aproximación al nuevo tipo penal, el Supremo establece que la conducta para ser delito debe tener
vocación de prolongarse el tiempo suficiente para provocar la alteración de la vida cotidiana de la víctima,
como dice el tipo penal. No bastan por ello unos episodios, más o menos intensos o más o menos
numerosos pero concentrados en pocos días y sin nítidos visos de continuidad, que además no comporten

violencia de repercusiones en los hábitos de la víctima.


---

género La Sala II ha desestimado el recurso de una mujer que quería que se aplicase a su expareja sentimental el
artículo 172.ter.2, que castiga el nuevo delito de hostigamiento. La sentencia de la Audiencia de Madrid
recurrida condenó al hombre pero no por dicho delito sino por el de coacciones en el ámbito familiar, a una
pena de 16 días de trabajos en beneficio de la comunidad y prohibición de aproximarse a la mujer durante
6 meses.

www.quantika14.com
Sentencia
La Sala de lo penal del TS ha dictado una
(sentencia número 754/2015, ponente señor
Sánchez Melgar) en la que reitera el criterio en
su sentencia de 19 de mayo de 2015 (número
300/2015), también insiste en que la carga de la
prueba de la idoneidad probatoria de las
capturas de pantalla o archivos de impresión,
corresponde a quien pretende aprovechar dicha
prueba. Por ello, a falta de su reconocimiento por
la otra parte, será necesario un informe pericial
que identifique el teléfono emisor de los
mensajes delictivos o una prueba testifical
que acredite su remisión.

30/06/2019 www.quantika14.com 29
El Tribunal Supremo dictamina que un perito
informático debe autentificar las
conversaciones digitales en caso de
impugnación

30/06/2019 www.quantika14.com 30
¿Por qué no es
válido un cotejo o
capturas de
pantallas?
6/30/2019 www.quantika14.com 31
FORMAS DE MODIFICAR
CONVERSACIONES DE
WHATSAPP

30/06/2019 www.quantika14.com 32
Formas de modificación/alteración de
conversaciones de WhatsApp
1. Eliminando un mensaje
(funcionalidad de
WhatsApp) *
2. Problemas de conexión *
3. Cambio de hora del
dispositivo *
4. Cambiar la base de datos
**
5. Modificar la base de datos
(root) **
6. WhatsApp Web *
7. Interferir en la
comunicación ***

*: usuario sin altos conocimientos; **: usuario con altos conocimientos; ***: usuario con un nivel técnico muy alto.

6/30/2019 www.quantika14.com 33
Eliminando un mensaje con la funcionalidad de
WhatsApp (1a1)(GRUPOS)
Mensaje enviado por el usuario del
dispositivo (antes de 60 min aprox/ Mensaje recibido por otro usuario de una
después) conversación

30/06/2019 www.quantika14.com 34
Cambio de hora en el
dispositivo

La aplicación de WhatsApp
compara la fecha y hora de su
Sistema y lo compara con el
Sistema Android. En el
momento que ve diferencias
te avisa.
Modificar/cambiar la base de datos
Mensaje original Mensaje modificado

30/06/2019 www.quantika14.com 36
De forma remota:
• Puede ver los mensajes
• Puede enviar los mensajes
• Puede eliminar los mensajes

***El maltratador habrá cogido en


algún momento el móvil ***

www.quantika14.com 30/06/2019 37
WhatsApp Web: la
solución

• Guasap Forensic detecta


conexiones por WhastApp
Web a través de
“whatsapp.log”.

• Debemos actuar rápido


porque solo tiene 3 días de
vida (o apagar el móvil)
Fase del peritaje
informático

30/06/2019 www.quantika14.com 39
Las fases son:
1. Extracción del dispositivo 2. Análisis de la evidencia digital:
(ante notario recomendado) • Hora del dispositivo
• El notario añadirá en su acta las • Root
diligencias realizadas por el perito • Posible Root anteriormente
informático. Es decir, los procesos • Comprobar si hay modificación de
realizados de la extracción las 7 formas posibles
• El notario se queda con un • Obtener listado de mensajes
clonado en custodia notarial eliminados
durante mínimo 2 años y se dará
en caso de ser requerido 3. Crear informe con resultados
judicialmente o por el cliente
4. Ratificar informe

30/06/2019 www.quantika14.com 40
¿Cómo conectamos
el móvil al PC?

ADB son las siglas de Android Debug


Bridge, un sistema de comandos que
permite administrar un dispositivo desde el
ordenador

www.quantika14.com 6/30/2019 41
¿Cómo clonamos?
• dd es un comando de la familia de los sistemas operativos Unix que permite copiar y convertir datos de archivos​ a bajo nivel.

Fuente: https://blog.peritotecnologico.net/2018/02/05/realizar-una-adquisicion-fisica-android-dd-incluso-cuando-no-tienes-tarjeta-sd/

6/30/2019 www.quantika14.com 42
¿Cómo funciona DD?
• if: Indicamos la ruta al orígen de la copia.
• of: Indicamos la ruta al destino de la copia.
Habitualmente indicaremos un fichero con
extensión .img o .dd
• bs: Tamaño del bloque de copia que vamos a
utilizar.
• conv: Esta opción nos permite especificar
parámetros de conversión entre origen y destino:
• notrunc: El fichero de salida no será truncado.
• noerror: No parar el proceso aunque ocurra algún error.
• sync: Si hemos seleccionado noerror, esta opción
escribe\x00 para los bloques erroneos. Esto es
importante para mantener los offsets de los ficheros en
la imágen.
• Las particiones pueden cambiar: cat
/proc/partitions

30/06/2019 www.quantika14.com 43
¿Qué pasa si no tenemos microSD?
• Una vez estemos seguros que tenemos
Netcat en ambos dispositivos, necesitamos
realizar 3 acciones:
• Mediante el comando “adb forward
tcp:8000 tcp:8000” haremos un port-
forwarding de tal forma que todo lo que
llegue al puerto 8000 del móvil sea
transferido al puerto 8000 del equipo
forense.
• En el dispositivo móvil, ejecutaremos: dd
if=/dev/block/mmcblk0 bs=512
conv=notrunc,noerror,sync | nc –l –p
8000 , para lanzar la copia del
dispositivo y enviar los bloques de salida
al puerto 8000
• En el equipo forense, ejecutaremos: nc
127.0.0.1 8000 > imagenmovil.img

6/30/2019 www.quantika14.com 44
¿Cómo analizamos la base de datos?
• WhatsApp guarda nuestros
mensajes en una base de
datos SQLITE
• En la tabla “Messages”
encontramos la mayor parte
de información para
nuestro análisis
• Usaremos la aplicación
SQLITE BROWSER
https://sqlitebrowser.org/

6/30/2019 www.quantika14.com 45
Ejemplo de análisis de
la DB de Android para
un caso de un grupo de
pedófilos

6/30/2019

www.quantika14.com 46
Estructura de la tabla “Messages”
Esta tabla tiene campos de vital importancia para la creación de información de valor referente a cada
mensaje enviado o recibido por el usuario a partir de simples datos. Los campos que almacenan dichos
datos son:
• _id: Que siendo un campo autoincrementable con cada mensaje nos permite reconocer el número
total y secuencia de mensajes eliminados.
• key_remote_jid: nos ofrece una cadena de la que podemos extraer el número de teléfono

Síguenos en nuestro
perteneciente al usuario que envía el mensaje o, en el caso de un mensaje de grupo, el número de
identificación de dicho grupo (teléfono del administrador que lo creó y el timestamp).
• key_id: identificador único del mensaje en cuestión.


key_from_me: dirección del mensaje: ’0’ = entrante, ’1’ = saliente.
timestamp: la marca de tiempo desde Unix Epoch. blog.quantika14.com
Para más información
• received_timestamp: momento de recepción del mensaje, en formato timestamp y tomando como
referencia el tiempo del dispositivo local.
• receipt_server_timestamp: momento de recepción del mensaje por el servidor central de WhatsApp,

sobre forense en
esto en caso de mensaje enviados por el usuario, si son recibidos este campo será establecido como “-
1”
• receipt_device_timestamp: momento de recepción del mensaje por el destinatario para los mensajes

WhatsApp
enviados por el usuario, este campo será marcado en “-1” en los mensajes recibidos.
• send_timestamp: siempre está establecido en “-1”.
• needs_push: Establecido a “2” en caso de ser un mensaje de broadcast (difusión) o “0” de cualquier
otra manera.
• recipient_count: este campo indica el número de receptores para los mensajes de broadcast.
• remote_resource: identificador del emisor el mensaje (solo para los mensajes de grupo).

30/06/2019 www.quantika14.com 47
Estructura de la tabla “Messages”
Los campos anteriores ofrecen datos acerca de los atributos de los
mensajes, a continuación vemos los campos que ofrecen datos del
contenido mismo mensaje así como sus metadatos:
• media_wa-type: este campo nos ofrece información sobre la
naturaleza del mensaje y los posibles valores son “0” para texto, “1”

Síguenos en nuestro
para imagen, “2” audio, “3” video, “4” contacto y por último “5”
geolocalización.

blog.quantika14.com
• data: cuando el campo media_wa_type se establece a “0” contiene el
texto del mensaje.
• raw_data: contiene una miniatura cuando el mensaje transmitido es

Para más información


del tipo “1” o “3”, es decir, imagen o video.
• media_hash: se trata el hash SHA 256 codificado en base64 cuando se

sobre forense en
trata de archivos multimedia.
• media_url: url del archivo transmitido.


media_mime_type: Tipo MIME del archivo transmitido.
media_size: tamaño del archivo transmitido. WhatsApp
• media_duration: duración en segundos del archivo multimedia
transmitido.
• latitude/longitud: latitud y longitud cuando el mensaje es del tipo “5”,
es decir, geolocalización.

30/06/2019 www.quantika14.com 48
El valor “status”
• status: este campo nos permite conocer el estado en el que se
encuentra el mensaje en el momento de la extracción y, esto es
importante, desde el prisma del usuario del cual estamos analizando la
base de datos. Existen diversos códigos de estado, algunos de ellos
todavía sin identificar, entre los que encontramos para los mensajes
grupales:
• 1: indica la creación de un grupo.
• 4: indica que el usuario ha sido añadido a un grupo.
• 5: indica que el usuario a abandonado el grupo.
• 12: indica que alguien ha sido añadido al grupo, permitiendo
además centrándonos en “remote_resource” conocer quién
ha sido el usuario que añade a un nuevo miembro.
• 14: indica que alguien ha sido eliminado del grupo,
permitiendo además centrándonos en “remote_resource”
conocer quién ha sido el usuario que ha eliminado a otro
miembro.
• 20: indica que el usuario se unió al grupo usando un enlace
de invitación.
• Y para mensajes individuales encontramos que:
• 0: indica que tanto el receptor como el emisor estaban offline
en el momento del envío del mensaje.
• 4: indica que el emisor está online en el momento de emisión
del mensaje pero el receptor se encuentra offline.
• 5: ambos se encuentran online.

www.quantika14.com

6/30/2019 49
Conclusión Entró en el grupo por invitación
10/6/2019
de usuario @78344466

• Podemos listar los usuarios que Leyó los mensajes y


han pasado en algún momento 11/6/2019
envió 2 mensajes
por el grupo
Envió un
• Podemos hacer una línea del imagen y luego
12/6/2019
tiempo de la actividad de cada se salió del
grupo
usuario

30/06/2019 www.quantika14.com 50
¿Qué es Guasap
Forensic?

Es una aplicación Open Source


que realiza los siguientes
procesos automatizados:
• Detección de evidencias
de haber sido rooteado
en el pasado
• Detección de Root
• Análisis de
WhatsApp.log
• Análisis de msgstore.db
• Creación de un informe
en HTML
Vídeo Guasap Forensic
- Compatible en Linux y Windows
- Open Source
- Github:
https://github.com/Quantika14/guasap-
whatsapp-foresincs-tool
- Enlace de descarga:
https://quantika14.com/guasap-forensic/

30/06/2019 www.quantika14.com 52
30/06/2019 www.quantika14.com 53
30/06/2019 www.quantika14.com 54

También podría gustarte