Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mquire — Sans dépendance, investigation de la mémoire Linux, exploitant les symboles BTF et kallsyms intégrés au noyau pour une analyse mémoire typée sans informations de débogage externes. | Kitploit
Outils/GitHubGitHub/trailofbits/mquire
OSINT (Renseignement de Sources Ouvertes)Criminalistique MémoireAnalyse des VulnérabilitésRétro-ingénierieAnalyse ForensiqueAnalyse de MalwareCriminalistique NumériqueAnalyse de BinairesRenseignement sur les MenacesApprentissage et ÉducationRéponse aux Incidents
184855il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubtrailofbits/mquire

mquire

Sans dépendance, investigation de la mémoire Linux, exploitant les symboles BTF et kallsyms intégrés au noyau pour une analyse mémoire typée sans informations de débogage externes.

Voir le dépôtSite web

mquire

mquire, un jeu de mots entre memory et inquire, est un outil d'interrogation de mémoire inspiré de osquery.

Avantage clé : aucun symbole de débogage externe nécessaire

mquire peut analyser des instantanés de mémoire du noyau Linux sans nécessiter de symboles de débogage externes.

Tout ce qui est nécessaire à l'analyse est déjà intégré dans l'image mémoire elle-même. Cela signifie que vous pouvez analyser :

  • Des noyaux inconnus ou personnalisés que vous n'avez jamais vus auparavant
  • N'importe quelle distribution Linux sans préparation
  • Des instantanés mémoire pour lesquels les symboles de débogage externes sont indisponibles ou perdus

Prérequis

Version du noyau requise :

  • Support BTF : Noyau 4.18 ou plus récent avec BTF activé (la plupart des distributions modernes l'activent par défaut)
  • Support Kallsyms : Noyau 6.4 ou plus récent (en raison des modifications du format de scripts/kallsyms.c)

Comment ça fonctionne

mquire analyse la mémoire du noyau en lisant deux types d'informations intégrées dans les noyaux Linux modernes :

  1. Informations de type issues du BTF (BPF Type Format) – Décrit la structure et l'agencement des types de données du noyau. Les données BTF sont analysées à l'aide de la crate btfparse.
  2. Informations de symboles issues de Kallsyms – Fournit les emplacements mémoire des symboles du noyau (les mêmes données que celles utilisées par /proc/kallsyms)

En combinant les informations de type avec les emplacements des symboles, mquire peut trouver et lire des structures de données complexes du noyau comme :

  • Les mappages mémoire des processus (en utilisant les structures maple tree)
  • Les données de fichiers en cache (en utilisant les structures XArray)
  • Les messages du journal du noyau

Cela permet d'extraire des fichiers directement depuis le cache de fichiers du noyau, même s'ils ont été supprimés du disque.

Notes de compatibilité

Le scanner Kallsyms dépend du format de données issu de scripts/kallsyms.c dans le code source du noyau. Si les futures versions du noyau modifient ce format, les heuristiques du scanner pourraient nécessiter des mises à jour.

Capacités

Tables

mquire fournit des tables SQL pour interroger différents aspects du système ou de l'état de l'outil lui-même.

mquire n'est pas une base de données. Chaque requête reconstruit les structures de données du noyau en parcourant la mémoire et en suivant les pointeurs. Il n'y a pas d'index précalculés ni de résultats mis en cache : chaque accès à une table est une traversée des données du noyau. Utilisez AS MATERIALIZED pour éviter des analyses redondantes (voir Optimisation des requêtes), et fournissez des contraintes comme task lors de l'interrogation de tables par processus comme task_open_files et memory_mappings pour limiter l'analyse à un seul processus.

Principe de conception : les adresses virtuelles comme clés de jointure. Les tables utilisent virtual_address (l'adresse noyau de la structure de données sous-jacente) comme clé de jointure canonique : pas le pid ou d'autres identifiants visibles par l'utilisateur. C'est intentionnel, car un même PID peut apparaître plusieurs fois à travers différentes sources de découverte et tâches racines, alors qu'une adresse virtuelle identifie de manière unique un objet spécifique du noyau. Les tables SQL ainsi que l'API sous-jacente LinuxOperatingSystem sont construites autour de cette convention.

Informations système

  • os_version – Version du noyau et architecture
  • system_info – Nom d'hôte et nom de domaine
  • boot_time – Heure de démarrage du système
  • kallsyms – Adresses des symboles du noyau (mêmes données que /proc/kallsyms)
  • dmesg – Messages du tampon en anneau du noyau (mêmes données que la commande dmesg)

Informations sur les processus

  • tasks – Processus en cours d'exécution avec les lignes de commande et les chemins des binaires. Chaque tâche est découverte via plusieurs sources indépendantes, ce qui est utile pour la détection de rootkits. Voir Comparaison des méthodes d'énumération des tâches pour la détection de rootkits et Liste des processus dédupliquée.
  • task_open_files – Fichiers ouverts par chaque processus (fournissez une contrainte task pour une analyse ciblée, ou interrogez toutes les tâches à la fois)
  • memory_mappings – Régions mémoire mappées par chaque processus (fournissez une contrainte task pour une analyse ciblée, ou interrogez toutes les tâches à la fois)
  • task_capabilities – Ensembles de capacités Linux (effectives, permises, héritables, limites, ambiantes) pour une tâche. Nécessite une contrainte task, donc faites une jointure avec tasks/processes (ex. JOIN task_capabilities c ON c.task = p.virtual_address).
  • task_ptrace_flags – Décode le champ ptrace d'une tâche donnée. Nécessite une contrainte task.

Modules du noyau

  • kernel_modules – Modules du noyau chargés avec métadonnées (nom, état, version, paramètres, indicateurs de souillure)
  • kernel_module_mem_entries – Les entrées mem d'un objet module du noyau. Nécessite une contrainte kernel_module, donc faites une jointure avec kernel_modules (ex. JOIN kernel_module_mem_entries r ON r.kernel_module = m.virtual_address).
  • ftrace_ops – Une liste de nœuds struct ftrace_ops, parcourue à partir du symbole ftrace_ops_list par défaut. Contraignez virtual_address pour lire un seul nœud, ou start_vaddr (éventuellement borné par end_vaddr) pour parcourir à partir d'un nœud arbitraire.

Informations réseau

  • network_connections – Connexions réseau actives (sockets TCP)
  • network_interfaces – Interfaces réseau avec adresses IP et adresses MAC

Système de fichiers

  • syslog_file – Journaux système lus depuis le cache de fichiers du noyau (fonctionne même si les fichiers journaux sont supprimés ou indisponibles, tant qu'ils sont mis en cache en mémoire)

Débogage

  • mquire_diagnostics – Journaux internes de mquire montrant la progression de l'analyse, les avertissements et les erreurs

Commandes

mquire propose trois commandes principales :

  • mquire shell – Démarrer un shell SQL interactif pour interroger les instantanés mémoire
  • mquire query – Exécuter une seule requête SQL et afficher les résultats (prend en charge le format JSON ou tableau)
  • mquire command – Exécuter des commandes personnalisées sur les instantanés mémoire (par exemple, .task_tree, .system_version, .dump)

Commandes pointées

mquire fournit des commandes spéciales préfixées par un point (.) pour les distinguer des requêtes SQL.

Commandes intégrées

Ces commandes fonctionnent dans le shell interactif et avec mquire query :

  • .tables – Lister toutes les tables disponibles
  • .schema – Afficher le schéma de toutes les tables
  • .schema <table> – Afficher le schéma d'une table spécifique
  • .commands – Lister toutes les commandes personnalisées disponibles
  • .exit – Quitter le shell interactif (shell uniquement)

Commandes personnalisées

Ces commandes fonctionnent dans le shell interactif et avec mquire command :

Utilisez --help avec n'importe quelle commande pour voir les options disponibles et les informations d'utilisation. Par exemple : .task_tree --help

.system_version

Affiche les informations de version du système d'exploitation.

C'est une commande pratique équivalente à SELECT * FROM os_version, mais avec une sortie formatée.

.task_tree

Télécharger l’outil