Ir al contenido principal

Entradas

Mostrando entradas de 2023

Forense (XXIII): Solución Reto InCTF 2020 "LOGarithm"

En este post la  solución a uno de los retos de análisis forense de InCTF 2020 . Este reto tiene el título  "LOGarithm"  y mi valoración sobre su  dificultad  es  ★ ★ ★ ★ ☆ . Su  enunciado , que me he permitido traducir al español, dice lo siguiente: Nuestra empresa detectó una gran brecha en la seguridad de los datos. Creemos que el sistema de nuestro director Mike seguramente estaba comprometido. Según la declaración de Mike, él asegura que estaba hablando de temas muy confidenciales con otro empleado en el momento de esta brecha. Nuestro equipo recopiló rápidamente tanto el volcado de memoria como el tráfico de red del sistema. Se especula que el adversario podría haber extraído los datos confidenciales de forma bastante "segura". ¿Puedes averiguar qué estaba enviando Mike? Como recursos asociados al reto se proporcionan dos archivos: Evidence.vmem y capture.pcapng  Solución:  Comienzo por el primero de los archivos, y lo primero que hago, como siempre que se ana

Forense (XXII): Solución Reto CyberCamp 2018 "Vacaciones"

En este post la  solución a uno de los retos de análisis forense de Cybercamp 2018 Online . Este reto tiene el título "Vacaciones" y mi valoración sobre su dificultad es  ★ ★ ★ ★ ☆ . Su  enunciado  dice lo siguiente: Por orden de un juez, se ha intervenido un equipo en casa de un sospechoso ciberdelincuente, por suerte su portátil aún se encontraba encendido cuando se produjo la detención. Se sabe que ha intentado eliminar pruebas, pero creemos que aún es posible obtener alguna. ¿Cuál era su nick en la red? (Respuesta: flag{NICK}). Como recursos asociados al reto se proporcionan dos archivos: volume.bin y dump.elf   Solución:  Comienzo por el primero de los archivos, que parece ser una imagen o volcado de un disco, y lo monto con la herramienta ‘FTK Imager’: Y pide que se formatee el disco para poder usarlo, por lo que no reconoce su contenido. Añado la imagen (volume.bin) como evidencia en la herramienta ‘FTK Imager’: Y veo que el volumen está cifrado usando LUKS (del ingl

Criptografía (CCXCIV): Intercambio de clave de Diffie-Hellman en curvas elípticas (ECDH)

Ya expliqué en este post en qué consiste el protocolo de intercambio de clave de Diffie-Hellman y cómo se lleva a efecto entre dos usuarios. Además, también decía que  este protocolo criptográfico   se utiliza generalmente para el intercambio seguro de una clave, que será empleada en una sesión para el cifrado y descifrado utilizando un criptosistema de clave simétrica o secreta , entre dos  interlocutores a través de un canal inseguro , c omo puede ser Internet, y, por tanto, su objetivo  es salvaguardar  el secreto de la clave de sesión si las comunicaciones entre ambos son interceptadas por un tercero . Pues bien, en esta entrada voy a explicar cómo se lleva a cabo  el protocolo de Diffie-Hellmann en Curvas Elíptic as ( ' Elliptic curve Diffie–Hellman' o   'ECDH' por sus siglas en inglés) . Sean A (Alicia) y B (Bernardo) los dos interlocutores que desean intercambiar una clave de sesión . A y B  actuarían de la siguiente manera: 1.-  Se ponen de acuerdo para es

Criptografía (CCXCIII): Multiplicación escalar en una curva elíptica sobre un cuerpo finito ℤp en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En el post anterior puse un script en python para implementar  la suma de dos puntos de una   curva elíptica   definida sobre un   cuerpo finito   ℤ p , y en éste  incluyo uno  que implementa la multiplicación escalar de un punto de una   curva elíptica   definida sobre el mismo tipo de cuerpo ; la operación que constituye la base de la Criptografía de Curva Elíptica (ECC) . E l   pseudocódigo  para implementar la multiplicación escalar es: -  Script python para implementar la multiplicación escalar de un punto de una curva elíptica definida sobre un cuerpo finito  ℤ p : El  script  es el siguiente: #!/usr/bin/env python # -*- coding: utf-8 -*- # MULTIPLICACIÓN DE UN PUNTO DE UNA CURVA ELÍPTICA (CE) POR UN ESCALAR: # # http://mikelgarcialarragan.blogspot.com/ import sympy def suma_puntos(p,a,x1,y1,x2,y2): if x1 == -1 and y1 == -1: x3, y3 = x2, y2

Criptografía (CCXCII): Suma de puntos de una curva elíptica sobre un cuerpo finito ℤp en python

Continúo poniendo scripts de programación en python para automatizar tareas que tengan relación con la  criptografía . En este post incluyo un  script en python que implementa la suma de dos puntos de una curva elíptica definida sobre un cuerpo finito   ℤ p . Ya expliqué en   este post  como se podía obtener el punto resultado de sumar dos puntos de una  curva elíptica  definida sobre los números reales mediante el llamado método de la cuerda y la tangente, y en esta entrada indico el algoritmo para hacerlo con las fórmulas matemáticas oportunas en una  curva elíptica  definida sobre un  cuerpo finito   ℤ p . E l   pseudocódigo  para implementar dicha suma es: -  Script python para implementar la suma de dos puntos de una curva elíptica definida sobre un cuerpo finito  ℤ p : El  script  es el siguiente: #!/usr/bin/env python # -*- coding: utf-8 -*- # SUMA DE DOS PUNTOS DE UNA CURVA ELÍPTICA (CE): # # http://mikelgarcialarragan.blogspot.com/ import sympy def suma_puntos(p,a,x1,y1,

Criptografía (CCXCI): Curva elíptica sobre cuerpo finito ℤp en python

Otro post con un script de programación en python para automatizar tareas que tengan relación con la  criptografía . En este post incluyo un  script en python para  obtener los puntos de una  curva elíptica  definida sobre un  cuerpo finito  del tipo  ℤ p y para obtener la representación gráfica de ambas curvas,  la definida sobre los número reales y la definida sobre el cuero finito  ℤ p . En el post anterior puse como ejemplo de lo anterior la curva sobre números reales que sirve para ilustrar este post: Y decía que  al definir la  curva elíptica   sobre un   cuerpo finito   se obtiene algo  que  se asemeja poco o nada a la representación gráfica de la curva sobre números reales, más bien  tiene el aspecto de un conjunto de puntos aleatorios , pero que todavía se puede observar la simetría . El  script  es el siguiente: -  Script python para la obtención y representación de los puntos de una curva elíptica sobre un cuerpo finito  ℤ p : #!/usr/bin/env python # -*- coding: utf-8 -*-