Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Forense informático a WordPress y Whatsapp usando aplicaciones open source

200 visualizaciones

Publicado el

Charla utilizada por Jorge Coronado A.K.A @JorgeWebsec en el congreso OpenExpo Europe 2019 sobre su conocimiento y experiencia en el trabajo de forense y peritaje informático en WordPress Y WhatsApp

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Forense informático a WordPress y Whatsapp usando aplicaciones open source

  1. 1. FORENSE EN WHATSAPP Y WORDPRESS USANDO OPEN SOURCE JORGE CORONADO WWW.QUANTIKA14.COM 20/06/2019 20/06/2019 www.quantika14.com 1
  2. 2. Gracias por invitarme de nuevo a dar a una charla 20/06/2019 www.quantika14.com 2
  3. 3. www.quantika14.com Autor: Jorge Coronado 20/06/2019 3 • 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
  4. 4. ¿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
  5. 5. FORENSE EN WORDPRESS USANDO OPEN SOURCE 6/30/2019 www.quantika14.com 5
  6. 6. 6
  7. 7. 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
  8. 8. Situación Antecedentes de hechos: Mi cliente me manifiesta llevar muchos años en la empresa y haber sido despedido de forma procedente pero los argumentos que expone la empresa son: • haber modificado la entrada del blog de la empresa y cambiar un título insultando a la directiva y superiores. El cliente afirma (varias veces) no haber realizado esa modificación y ser inocente. Contrapericial: La empresa aportó un informe pericial informático que realizó ante notario. Básicamente describen como observan una web WordPress, donde en el apartado de “Noticias”, el artículo más buscado, tiene un título “insultante para cargos de la directiva de la empresa y otros trabajadores superiores [..]”. Concluyen que la autoría de tal hecho es mi cliente. 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
  9. 9. 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
  10. 10. ¿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
  11. 11. 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.
  12. 12. ¿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
  13. 13. 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
  14. 14. WPSCAN 30/06/2019 www.quantika14.com 14
  15. 15. ¿Un cronjob que cambiara el artículo? • https://wordpress.org/plug ins/wp-crontrol/ 30/06/2019 www.quantika14.com 15
  16. 16. Cruzamos datos de los logs: 6/30/2019 www.quantika14.com 16
  17. 17. Web Hunter Forensic: 30/06/2019 www.quantika14.com 17 https://blog.quantika14.com/blog/2018/11/28/diario- de-un-perito-informatico-forense-a-un-wordpress-iii/
  18. 18. ¿Cómo identificamos malware de forma automática? 30/06/2019 www.quantika14.com 18
  19. 19. Vídeo de wpAnalyzer 30/06/2019 www.quantika14.com 19
  20. 20. 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
  21. 21. Hipótesis: 6/30/2019 • “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 www.quantika14.com 21
  22. 22. ¿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
  23. 23. Exif Tool más 30 líneas de Python 30/06/2019 www.quantika14.com 23
  24. 24. 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
  25. 25. WHATSAPP COMO PRUEBA DIGITAL www.quantika14.com30/06/2019 25
  26. 26. ¿Qué es una prueba digital? 30/06/2019 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.” www.quantika14.com 26
  27. 27. El Tribunal Superior de Justicia de Madrid acepta como comunicación de baja voluntaria mensajes enviados a través de whatsapp. www.quantika14.com 30/06/2019 27 Sentencia del Tribunal Superior de Justicia de Madrid de 10 de junio de 2015 (Recurso 817/2014) https://www.laboral-social.com/sites/laboral- social.com/files/NSJ052530.pdf http://www.legaltoday.com/files/File/pdfs/sentencia- laboral.pdf
  28. 28. El stalking en el ámbito de la violencia de género 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 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 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 repercusiones en los hábitos de la víctima. --- 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
  29. 29. 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. www.quantika14.com30/06/2019 29
  30. 30. El Tribunal Supremo dictamina que un perito informático debe autentificar las conversaciones digitales en caso de impugnación www.quantika14.com30/06/2019 30
  31. 31. ¿Por qué no es válido un cotejo o capturas de pantallas? 6/30/2019 www.quantika14.com 31
  32. 32. 30/06/2019 www.quantika14.com 32 FORMAS DE MODIFICAR CONVERSACIONES DE WHATSAPP
  33. 33. 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 *** 6/30/2019 www.quantika14.com 33 *: usuario sin altos conocimientos; **: usuario con altos conocimientos; ***: usuario con un nivel técnico muy alto.
  34. 34. Eliminando un mensaje con la funcionalidad de WhatsApp (1a1)(GRUPOS) Mensaje enviado por el usuario del dispositivo (antes de 60 min aprox/ después) Mensaje recibido por otro usuario de una conversación 30/06/2019 www.quantika14.com 34
  35. 35. 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.
  36. 36. Modificar/cambiar la base de datos Mensaje original Mensaje modificado 30/06/2019 www.quantika14.com 36
  37. 37. 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
  38. 38. 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)
  39. 39. 30/06/2019 www.quantika14.com 39 Fase del peritaje informático
  40. 40. Las fases son: 1. Extracción del dispositivo (ante notario recomendado) • El notario añadirá en su acta las diligencias realizadas por el perito informático. Es decir, los procesos realizados de la extracción • El notario se queda con un clonado en custodia notarial durante mínimo 2 años y se dará en caso de ser requerido judicialmente o por el cliente 2. Análisis de la evidencia digital: • Hora del dispositivo • Root • Posible Root anteriormente • Comprobar si hay modificación de las 7 formas posibles • Obtener listado de mensajes eliminados 3. Crear informe con resultados 4. Ratificar informe 30/06/2019 www.quantika14.com 40
  41. 41. ¿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
  42. 42. ¿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
  43. 43. ¿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 escribex00 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
  44. 44. ¿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
  45. 45. ¿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
  46. 46. 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
  47. 47. 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 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. • 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, 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 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). Síguenos en nuestro blog.quantika14.com Para más información sobre forense en WhatsApp 30/06/2019 www.quantika14.com 47
  48. 48. 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” para imagen, “2” audio, “3” video, “4” contacto y por último “5” geolocalización. • 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 del tipo “1” o “3”, es decir, imagen o video. • media_hash: se trata el hash SHA 256 codificado en base64 cuando se 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. • 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 Síguenos en nuestro blog.quantika14.com Para más información sobre forense en WhatsApp
  49. 49. 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
  50. 50. Conclusión • Podemos listar los usuarios que han pasado en algún momento por el grupo • Podemos hacer una línea del tiempo de la actividad de cada usuario 30/06/2019 www.quantika14.com 50 Entró en el grupo por invitación de usuario @78344466 Leyó los mensajes y envió 2 mensajes Envió un imagen y luego se salió del grupo 10/6/2019 11/6/2019 12/6/2019
  51. 51. ¿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
  52. 52. 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
  53. 53. 30/06/2019 www.quantika14.com 53
  54. 54. 30/06/2019 www.quantika14.com 54

×