Judge Jury and Executable Herramienta Forense para Caza de Amenazas
Judge Jury and Executable Herramienta Forense para Caza de Amenazas

Judge Jury and Executable: Herramienta Forense para Caza de Amenazas

Un escáner de análisis forense de sistemas de archivos y herramienta de caza de amenazas. Analiza los sistemas de archivos a nivel de MFT y SO y almacena los datos en SQL, SQLite o CSV. Las amenazas y los datos se pueden sondear aprovechando la potencia y la sintaxis de SQL.

Características

  • Escanea un sistema de archivos montado en busca de amenazas de inmediato
  • O recopilar una línea de base del sistema antes de un incidente, para una capacidad adicional de caza de amenazas
  • Puede utilizarse antes, durante o después de un incidente
  • Para una o varias estaciones de trabajo
  • Escanea el MFT, saltándose los permisos de archivo, los bloqueos de archivo o las protecciones/ocultamiento/sombra de archivos del sistema operativo
  • Recoge hasta 51 propiedades diferentes para cada archivo
  • Los resultados del escaneo van a una tabla SQL para su posterior búsqueda, agregando los resultados de muchos escaneos y/o muchas máquinas, y el análisis histórico o retrospectivo
  • Aprovecha la potencia de SQL para buscar en sistemas de archivos, consultar las propiedades de los archivos, responder a preguntas complejas o de alto nivel y buscar amenazas o indicadores de peligro

Requerimientos

  • .NET Framework v4.8
  • Microsoft Visual C++ 2015 Redistribuible
  • Base de datos SQL local o remota con acceso de lectura/escritura/creación.
  • Visual Studio (si deseas compilar el código C#)
  • Acceso a internet (si no, ¿cómo has conseguido este código? También para los paquetes NuGet…)
  • Conocimientos básicos de SQL

Cazar virus, malware y APTs en (múltiples) sistemas de archivos usando SQL

Empiezas con un disco o imágenes de disco que están potencialmente sucios con malware, virus, APT’s (amenazas persistentes avanzadas) o similares, y luego los escaneas con esta herramienta. (Opcionalmente, y asumiendo que tienes la sabiduría y la previsión de hacerlo, puedes querer escanear una imagen de disco de referencia conocida con esta herramienta primero (o después – no importa). Esto no es necesario, pero puede servir de ayuda).

La parte de escaneo a nivel forense de esta herramienta recoge un montón de propiedades sobre cada archivo en un sistema de archivos (o una imagen(s) de uno), y coloca estas propiedades en una tabla de base de datos relacional SQL. La clave está en la posibilidad de buscar, investigar o hacer preguntas sobre los datos mediante el uso de consultas, en el lenguaje de SQL, contra la base de datos creada. Una característica clave aquí fue NO inventar un lenguaje de consulta propietario. Si sabes SQL, y cómo hacer clic en un botón, entonces ya sabes cómo utilizar esta herramienta como un jefe. Incluso si no lo sabes, este concepto es lo suficientemente potente como para que las consultas enlatadas (ver más abajo) te den mucho juego.

Escaneo a nivel forense

En primer lugar, la herramienta crea una entrada en la base de datos para cada registro encontrado en la MFT (tabla maestra de archivos -es la forma en que NTFS lleva su registro). Esto evita los permisos de seguridad de los archivos, la ocultación de los mismos, las técnicas de ocultación u ofuscación, el borrado de archivos o la manipulación de las marcas de tiempo. Estas técnicas no impedirán que el archivo sea escaneado y catalogado. Los bytes del archivo se leen de la MFT y se toman tantos puntos de datos como sea posible de los bytes del archivo leídos de la MFT antes de intentar acceder a cualquier punto de datos utilizando las llamadas a la API del SO de nivel superior.

Análisis de datos ricos y de alto nivel

Una vez asegurados los datos a nivel MFT y forense, se recogen las propiedades a nivel de sistema operativo, los datos y los metadatos disponibles sobre cada archivo y se aumenta cada entrada creada a partir de la entrada MFT. Como resultado de esto, incluso si no se puede acceder al archivo o a sus propiedades desde la API del sistema operativo o el framework .NET debido a permisos de archivo (ACL), bloqueos de archivo (está en uso), corrupción del disco, un archivo de longitud de cero bytes, o cualquiera de las varias otras razones, la existencia del archivo seguirá siendo registrada, archivada y rastreada. La entrada, sin embargo, simplemente no contendrá la información sobre el mismo que no era accesible para el sistema operativo. Se pueden recoger hasta 51 puntos de datos diferentes para cada archivo.

Interfaz de uso de Judge Jury and Executable
Interfaz de uso de Judge Jury and Executable

Información Recogida de cada Archivo

Para cada archivo, la información recogida incluye:

  • hash SHA256
  • hash MD5
  • Hash de la tabla de importación (si existe)
  • Número MFT y número de secuencia
  • Fechas de creación/modificación/acceso de MFT
  • Fechas de creación/modificación/acceso comunicadas por el SO
  • Todas las propiedades “estándar” de los archivos del SO: ubicación, tamaño, marcas de fecha, atributos, metadatos
  • ¿Es un PE, DLL o controlador?
  • ¿Está firmado por Authenticode?
  • ¿Se verifica la cadena de certificados X.509?
  • Reglas personalizadas de YARA (lista de nombres de reglas que coinciden)
  • Entropía del archivo
  • Entropía de archivos
  • Hasta 51 puntos de datos diferentes en total

Consultas Enlatadas

Todos los archivos del directorio C:\Windows\System32\ deben ser ‘propiedad’ de TrustedInstaller.

Si un archivo en el directorio System32 es propiedad de un usuario diferente, esto indica una anomalía, y ese usuario es probablemente el que creó ese archivo.

Al malware le gusta hacerse pasar por archivos válidos del sistema de Windows. Los ejecutables que se colocan en el directorio System32 no sólo parecen más oficiales, ya que es una ruta común para archivos del sistema, sino que no es necesario proporcionar una ruta explícita a ese ejecutable para ejecutarlo desde la línea de comandos, el cuadro de diálogo ‘Ejecutar‘ del menú de inicio de Windows, o la llamada de la API win32 ShellExecute.

SELECT 
TOP 1000 * 
FROM  [FileProperties]
WHERE
        [FileOwner] <> 'TrustedInstaller'
    AND [DirectoryLocation] = ':\Windows\System32'
    AND IsSigned = 0
ORDER BY [PrevalenceCount] DESC

La marca de tiempo de creación de la MFT y la marca de tiempo de creación del SO deben coincidir.

Si la marca de tiempo de creación de la MFT es posterior a la hora de creación indicada por los metadatos del SO esto indica una anomalía.

Timestomp es una herramienta que forma parte de Metasploit Framework y que permite al usuario retroceder un archivo a un tiempo arbitrario de su elección. Realmente no hay una buena razón legítima para hacer esto (hazme saber si puedes pensar en una), y se considera una técnica antiforense.

SELECT 
TOP 1000 * 
FROM  [FileProperties]
WHERE
	([MftTimeAccessed] <> [LastAccessTime]) OR
	([MftTimeCreation] <> [CreationTime]) OR
	([MftTimeMftModified] <> [LastWriteTime])
ORDER BY [DateSeen] DESC

La propiedad “CompileDate” de cualquier ejecutable o dll debe ser siempre anterior a la marca de tiempo de creación de ese archivo.

Se aplica una lógica similar a la de la marca de tiempo de creación de la MFT, que es posterior a la marca de tiempo de creación. ¿Cómo podría un programa haber sido ¿Cómo puede un programa haber sido compilado DESPUÉS de la creación del archivo que lo contiene? Esta anomalía indica que se ha producido un backdating o timestomping.

SELECT 
TOP 1000 *
FROM  [FileProperties]
WHERE
	([MftTimeCreation] < [CompileDate]) OR
	([CreationTime] < [CompileDate])
ORDER BY [DateSeen] DESC
Dark Mode

Judge-Jury-and-Executable (este enlace se abre en una nueva ventana) por AdamWhiteHat (este enlace se abre en una nueva ventana)

A file system forensics analysis scanner and threat hunting tool. Scans file systems at the MFT and OS level and stores data in SQL, SQLite or CSV. Threats and data can be probed harnessing the power and syntax of SQL.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda