Este artículo contiene soluciones a tareas dirigidas a los análisis forenses de memoria, RAM y registros del servidor web. Además de ejemplos del uso de Volatility Framework y los programas de autopsia.
Información organizacionalEspecialmente para aquellos que desean aprender algo nuevo y desarrollarse en cualquiera de las áreas de información y seguridad informática, escribiré y hablaré sobre las siguientes categorías:
- PWN;
- criptografía (criptografía);
- tecnologías de red (Red);
- inversa (ingeniería inversa);
- esteganografía (Stegano);
- búsqueda y explotación de vulnerabilidades WEB.
Además de esto, compartiré mi experiencia en informática forense, análisis de malware y firmware, ataques a redes inalámbricas y redes de área local, realización de pentests y escritura de exploits.
Para que pueda conocer nuevos artículos, software y otra información, creé un
canal en Telegram y un
grupo para discutir cualquier problema en el campo de ICD. Además, consideraré personalmente sus solicitudes personales, preguntas, sugerencias y recomendaciones
personalmente y responderé a todos .
Toda la información se proporciona solo con fines educativos. El autor de este documento no tiene ninguna responsabilidad por los daños causados a alguien como resultado del uso de los conocimientos y métodos obtenidos como resultado de estudiar este documento.
Memoria forense - nivel 2

En esta tarea, se nos da una imagen de RAM y se nos pide que busquemos el nombre de la máquina. Para resolver este tipo de tareas usaremos el Marco de volatilidad. Cargamos la imagen con el siguiente comando, especificando la ruta a la imagen como parámetro. Primero encontramos información sobre la imagen.
volatility -f ch2.dmp imageinfo

Por lo tanto, aprendemos que esta es una imagen de memoria del sistema operativo Windows. Es decir, podemos encontrar el nombre de la máquina en el registro. Ahora debemos especificar el perfil como parámetro. El valor clave en el registro se puede mostrar de la siguiente manera.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName"

Y ahora descubrimos el nombre de la computadora.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"

Vemos el nombre de la computadora. Entregar, obtener puntos.

Registro forense - ataque web

En esta tarea, nos dan un registro del servidor web y dicen que se realizó un ataque, necesitamos entender qué datos aprendió el atacante. Abramos el registro.

Vemos los datos codificados en base64 como un parámetro de orden. Escribiremos un código para decodificarlos.
from re import * from base64 import * f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) [print(str(b64decode(i.replace("%3D", "=")), "utf-8")) for i in k]

Convierte un poco a comprensible.

Por lo tanto, comparamos los dos primeros bits de la primera letra de la contraseña con 00, 01, 10, 11 y hacemos una pausa correspondiente: 0, 2, 4 y 6 segundos. También sucede con el segundo y tercer bit. Después de eso, se comprueba el séptimo bit y, dependiendo de la igualdad de 0 o 1, se realiza una pausa de 2 y 4 segundos.
Por lo tanto, por el retraso podemos determinar qué bits devuelve el servidor.

Por ejemplo: la diferencia de tiempo entre las primeras solicitudes es de 6 segundos, es decir, estos son bits 11, etc. Automatiza este proceso.
from re import * from base64 import * import binascii f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) dec_k = [str(b64decode(i.replace("%3D", "=")), "utf-8") for i in k] t = findall("2015:12:1(.*?) \+0200]", log) tim = [int(i.split(':')[0])*60 + int(i.split(':')[1]) for i in t] tim = [tim[i+1] - tim[i] for i in range(len(tim)-1)] + [0] password = "" for i in range(0, len(tim), 4): c = '' for sec in tim[i:i+3]: if sec == 0: c += '00' elif sec == 2: c += '01' elif sec == 4: c += '10' elif sec == 6: c += '11' if tim[i+3] == 2: c += '0' elif tim[i+3] == 4: c += '1' password += chr(int(c,2)) print(password)
Le damos la contraseña.

Memoria forense - nivel 5

Se nos pide que encontremos la contraseña de John y proporcionemos un volcado de RAM. Como la última vez, descubrimos qué sistema operativo se utiliza.

Esto es Windows La volatilidad tiene una opción de hashdump.

Ahora encontramos la contraseña de usuario.

Enviamos la contraseña y obtenemos puntos.

Disco forense - encuentra el gato

Nos dan una imagen de disco y nos piden que encontremos el lugar donde está el gato. Para tales tareas, puede usar FTK Imager. Lo resolveré usando
AutoPsy . Ejecute el programa

Se nos dice que abramos la página en un navegador. Abrimos Ahora cree un nuevo caso y agregue un host. A continuación, debe agregar una imagen.
Después de crear el entorno, tenemos lo siguiente.

"
Seleccione la opción de análisis.

Mostramos la siguiente estructura de sección. No hay nada interesante en la carpeta Documentaciones. Vamos a los archivos.

Hay un archivo impar interesante. Lo seleccionamos

El contenido se muestra a continuación: hay algún tipo de imagen. Seleccione extraer para extraer el archivo. Del archivo descargado extraemos la imagen.

Lo más probable es que este sea el gato que necesitamos encontrar. Veamos información exif.

Genial, hay coordenadas de ubicación. Lo encontramos en las cartas.

Enviamos la respuesta y obtenemos puntos.

Más y más complicado ... Puedes unirte a nosotros en
Telegram . Allí puede proponer sus propios temas y votar sobre la elección de los temas para los siguientes artículos.