Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mquire — Análisis forense de memoria Linux sin dependencias, aprovechando BTF y kallsyms integrados en el kernel para un análisis de memoria consciente del tipo sin información de depuración externa. | Kitploit
Herramientas/GitHubGitHub/trailofbits/mquire
OSINT (Inteligencia de Fuentes Abiertas)Forensia de MemoriaAnálisis de VulnerabilidadesIngeniería InversaAnálisis ForenseAnálisis de MalwareForensia DigitalAnálisis de BinariosInteligencia de AmenazasAprendizaje y EducaciónRespuesta a Incidentes
184845hace 23 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
trailofbits/mquire

mquire

Análisis forense de memoria Linux sin dependencias, aprovechando BTF y kallsyms integrados en el kernel para un análisis de memoria consciente del tipo sin información de depuración externa.

Ver RepositorioSitio web

mquire

mquire, un juego de palabras entre memory e inquire, es una herramienta de consulta de memoria inspirada en osquery.

Ventaja clave: No se necesitan símbolos de depuración externos

mquire puede analizar instantáneas de memoria del kernel de Linux sin requerir símbolos de depuración externos.

Todo lo necesario para el análisis ya está incluido en el propio volcado de memoria. Esto significa que puede analizar:

  • Kernels desconocidos o personalizados que nunca haya visto antes
  • Cualquier distribución de Linux sin preparación previa
  • Instantáneas de memoria donde los símbolos de depuración externos no están disponibles o se han perdido

Requisitos

Requisitos de versión del kernel:

  • Soporte BTF: Kernel 4.18 o superior con BTF habilitado (la mayoría de las distribuciones modernas lo habilitan por defecto)
  • Soporte Kallsyms: Kernel 6.4 o superior (debido a cambios en el formato de scripts/kallsyms.c)

Cómo funciona

mquire analiza la memoria del kernel leyendo dos tipos de información que están incrustados en los kernels modernos de Linux:

  1. Información de tipo de BTF (Formato de tipo BPF): Describe la estructura y el diseño de los tipos de datos del kernel. Los datos BTF se analizan usando la crate btfparse.
  2. Información de símbolos de Kallsyms: Proporciona las ubicaciones en memoria de los símbolos del kernel (los mismos datos utilizados por /proc/kallsyms)

Al combinar la información de tipo con las ubicaciones de los símbolos, mquire puede encontrar y leer estructuras de datos complejas del kernel como:

  • Mapeos de memoria de procesos (usando estructuras de árbol de arce)
  • Datos de archivos en caché (usando estructuras XArray)
  • Mensajes de registro del kernel

Esto permite extraer archivos directamente de la caché de archivos del kernel, incluso si se han eliminado del disco.

Notas de compatibilidad

El escáner de Kallsyms depende del formato de datos de scripts/kallsyms.c en el código fuente del kernel. Si las versiones futuras del kernel cambian este formato, es posible que sea necesario actualizar las heurísticas del escáner.

Capacidades

Tablas

mquire proporciona tablas SQL para consultar diferentes aspectos del sistema o el estado de la propia herramienta.

mquire no es una base de datos. Cada consulta reconstruye las estructuras de datos del kernel escaneando la memoria y siguiendo punteros. No hay índices precalculados ni resultados en caché: cada acceso a una tabla es un recorrido de los datos del kernel. Use AS MATERIALIZED para evitar escaneos redundantes (consulte Optimización de consultas) y proporcione restricciones como task al consultar tablas por proceso como task_open_files y memory_mappings para limitar el escaneo a un solo proceso.

Principio de diseño: direcciones virtuales como claves de unión. Las tablas usan virtual_address (la dirección del kernel de la estructura de datos subyacente) como la clave de unión canónica: no pid ni otros identificadores visibles para el usuario. Esto es intencional, porque el mismo PID puede aparecer varias veces en diferentes fuentes de descubrimiento y tareas raíz, mientras que una dirección virtual identifica de forma única un objeto del kernel específico. Tanto las tablas SQL como la API subyacente LinuxOperatingSystem se construyen alrededor de esta convención.

Información del sistema

  • os_version: Versión del kernel y arquitectura
  • system_info: Nombre de host y nombre de dominio
  • boot_time: Hora de arranque del sistema
  • kallsyms: Direcciones de símbolos del kernel (los mismos datos que /proc/kallsyms)
  • dmesg: Mensajes del búfer circular del kernel (los mismos datos que el comando dmesg)

Información de procesos

  • tasks: Procesos en ejecución con líneas de comando y rutas de binarios. Cada tarea se descubre a través de múltiples fuentes independientes, lo cual es útil para la detección de rootkits. Consulte Comparación de métodos de enumeración de tareas para detección de rootkits y Lista de procesos deduplicada.
  • task_open_files: Archivos abiertos por cada proceso (proporcione una restricción task para un análisis dirigido, o consulte todas las tareas a la vez)
  • memory_mappings: Regiones de memoria mapeadas por cada proceso (proporcione una restricción task para un análisis dirigido, o consulte todas las tareas a la vez)
  • task_capabilities: Conjuntos de capacidades de Linux (efectivas, permitidas, heredables, delimitadoras, ambientales) para una tarea. Requiere una restricción task, así que únala contra tasks/processes (por ejemplo, JOIN task_capabilities c ON c.task = p.virtual_address).
  • task_ptrace_flags: Decodifica el campo ptrace de una tarea dada. Requiere una restricción task.

Módulos del kernel

  • kernel_modules: Módulos del kernel cargados con metadatos (nombre, estado, versión, parámetros, indicadores de contaminación)
  • kernel_module_mem_entries: Las entradas mem de un objeto de módulo del kernel. Requiere una restricción kernel_module, así que únala contra kernel_modules (por ejemplo, JOIN kernel_module_mem_entries r ON r.kernel_module = m.virtual_address).
  • ftrace_ops: Una lista de nodos struct ftrace_ops, recorridos desde el símbolo ftrace_ops_list por defecto. Restrinja virtual_address para leer un solo nodo, o start_vaddr (opcionalmente acotado por end_vaddr) para recorrer desde un nodo arbitrario.

Información de red

  • network_connections: Conexiones de red activas (sockets TCP)
  • network_interfaces: Interfaces de red con direcciones IP y direcciones MAC

Sistema de archivos

  • syslog_file: Registros del sistema leídos desde la caché de archivos del kernel (funciona incluso si los archivos de registro están eliminados o no disponibles, siempre que estén en caché en memoria)

Depuración

  • mquire_diagnostics: Registros internos de mquire que muestran el progreso del análisis, advertencias y errores

Comandos

mquire proporciona tres comandos principales:

  • mquire shell: Inicia un shell SQL interactivo para consultar instantáneas de memoria
  • mquire query: Ejecuta una sola consulta SQL y muestra los resultados (admite formato JSON o tabla)
  • mquire command: Ejecuta comandos personalizados en instantáneas de memoria (por ejemplo, .task_tree, .system_version, .dump)

Comandos de punto

mquire proporciona comandos especiales con prefijo de punto (.) para distinguirlos de las consultas SQL.

Comandos integrados

Estos comandos funcionan en el shell interactivo y con mquire query:

  • .tables: Lista todas las tablas disponibles
  • .schema: Muestra el esquema de todas las tablas
  • .schema <tabla>: Muestra el esquema de una tabla específica
  • .commands: Lista todos los comandos personalizados disponibles
  • .exit: Sale del shell interactivo (solo shell)

Comandos personalizados

Estos comandos funcionan en el shell interactivo y con mquire command:

Use --help con cualquier comando para ver las opciones disponibles y la información de uso. Por ejemplo: .task_tree --help

.system_version

Muestra la información de la versión del sistema operativo.

Este es un comando de conveniencia equivalente a SELECT * FROM os_version, pero con salida formateada.

.task_tree

Muestra un árbol jerárquico de procesos y subprocesos en ejecución, similar al comando pstree en Linux.

Descargar herramienta