Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mquire — Análise forense de memória Linux com zero dependências, utilizando BTF embutido no kernel e kallsyms para análise de memória com conhecimento de tipos, sem informações de depuração externas. | Kitploit
Ferramentas/GitHubGitHub/trailofbits/mquire
OSINT (Inteligência de Fontes Abertas)Forensia de MemóriaAnálise de VulnerabilidadesEngenharia ReversaAnálise ForenseAnálise de MalwareForensia DigitalAnálise de BináriosInteligência de AmeaçasAprendizado e EducaçãoResposta a Incidentes
184855há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
trailofbits/mquire

mquire

Análise forense de memória Linux com zero dependências, utilizando BTF embutido no kernel e kallsyms para análise de memória com conhecimento de tipos, sem informações de depuração externas.

Ver RepositórioSite

mquire

mquire, um trocadilho com as palavras memory e inquire, é uma ferramenta de consulta de memória inspirada pelo osquery.

Principal vantagem: Nenhum símbolo de depuração externo necessário

mquire pode analisar snapshots de memória do kernel Linux sem precisar de símbolos de depuração externos.

Tudo o que é necessário para a análise já está incorporado no próprio dump de memória. Isso significa que você pode analisar:

  • Kernels desconhecidos ou personalizados que você nunca viu antes
  • Qualquer distribuição Linux sem preparação
  • Snapshots de memória onde símbolos de depuração externos estão indisponíveis ou perdidos

Requisitos

Requisitos de versão do kernel:

  • Suporte a BTF: Kernel 4.18 ou mais recente com BTF habilitado (a maioria das distribuições modernas o habilita por padrão)
  • Suporte a Kallsyms: Kernel 6.4 ou mais recente (devido a mudanças no formato de scripts/kallsyms.c)

Como funciona

mquire analisa a memória do kernel lendo dois tipos de informações que estão embutidas nos kernels Linux modernos:

  1. Informações de tipo do BTF (BPF Type Format) - Descreve a estrutura e o layout dos tipos de dados do kernel. Os dados BTF são analisados usando a crate btfparse.
  2. Informações de símbolo do Kallsyms - Fornece as localizações de memória dos símbolos do kernel (mesmos dados usados pelo /proc/kallsyms)

Ao combinar informações de tipo com localizações de símbolos, mquire pode encontrar e ler estruturas de dados complexas do kernel, como:

  • Mapeamentos de memória de processos (usando estruturas maple tree)
  • Dados de arquivos em cache (usando estruturas XArray)
  • Mensagens de log do kernel

Isso torna possível extrair arquivos diretamente do cache de arquivos do kernel, mesmo que tenham sido excluídos do disco.

Notas de compatibilidade

O scanner Kallsyms depende do formato de dados de scripts/kallsyms.c no código-fonte do kernel. Se versões futuras do kernel mudarem este formato, as heurísticas do scanner podem precisar de atualizações.

Recursos

Tabelas

mquire fornece tabelas SQL para consultar diferentes aspectos do sistema ou do estado da própria ferramenta.

mquire não é um banco de dados. Cada consulta reconstrói estruturas de dados do kernel varrendo a memória e seguindo ponteiros. Não há índices pré-computados ou resultados em cache: cada acesso a uma tabela é uma travessia de dados do kernel. Use AS MATERIALIZED para evitar varreduras redundantes (consulte Query Optimization), e forneça restrições como task ao consultar tabelas por processo como task_open_files e memory_mappings para limitar a varredura a um único processo.

Princípio de design: endereços virtuais como chaves de junção. As tabelas usam virtual_address (o endereço do kernel da estrutura de dados subjacente) como a chave de junção canônica: não pid ou outros identificadores visíveis ao usuário. Isso é intencional, porque o mesmo PID pode aparecer várias vezes em diferentes fontes de descoberta e tarefas raiz, enquanto um endereço virtual identifica exclusivamente um objeto específico do kernel. Tanto as tabelas SQL quanto a API LinuxOperatingSystem subjacente são construídas em torno desta convenção.

Informações do sistema

  • os_version - Versão do kernel e arquitetura
  • system_info - Nome de host e nome de domínio
  • boot_time - Hora de inicialização do sistema
  • kallsyms - Endereços de símbolos do kernel (mesmos dados do /proc/kallsyms)
  • dmesg - Mensagens do buffer circular do kernel (mesmos dados do comando dmesg)

Informações de processos

  • tasks - Processos em execução com linhas de comando e caminhos de binários. Cada tarefa é descoberta através de múltiplas fontes independentes, o que é útil para detecção de rootkits. Veja Comparing task enumeration methods for rootkit detection e Deduplicated process list.
  • task_open_files - Arquivos abertos por cada processo (forneça uma restrição task para análise direcionada, ou consulte todas as tarefas de uma vez)
  • memory_mappings - Regiões de memória mapeadas por cada processo (forneça uma restrição task para análise direcionada, ou consulte todas as tarefas de uma vez)
  • task_capabilities - Conjuntos de capacidades Linux (efetivas, permitidas, herdáveis, delimitadoras, de ambiente) para uma tarefa. Requer uma restrição task, então faça um JOIN com tasks/processes (ex: JOIN task_capabilities c ON c.task = p.virtual_address).
  • task_ptrace_flags - Decodifica o campo ptrace de uma determinada tarefa. Requer uma restrição task.

Módulos do kernel

  • kernel_modules - Módulos do kernel carregados com metadados (nome, estado, versão, parâmetros, flags de contaminação)
  • kernel_module_mem_entries - As entradas mem de um objeto de módulo do kernel. Requer uma restrição kernel_module, então faça um JOIN com kernel_modules (ex: JOIN kernel_module_mem_entries r ON r.kernel_module = m.virtual_address).
  • ftrace_ops - Uma lista de nós struct ftrace_ops, percorridos a partir do símbolo ftrace_ops_list por padrão. Restrinja virtual_address para ler um único nó, ou start_vaddr (opcionalmente limitado por end_vaddr) para percorrer a partir de um nó arbitrário.

Informações de rede

  • network_connections - Conexões de rede ativas (sockets TCP)
  • network_interfaces - Interfaces de rede com endereços IP e endereços MAC

Sistema de arquivos

  • syslog_file - Logs do sistema lidos do cache de arquivos do kernel (funciona mesmo se os arquivos de log estiverem excluídos ou indisponíveis, desde que estejam em cache na memória)

Depuração

  • mquire_diagnostics - Logs internos do mquire mostrando progresso da análise, avisos e erros

Comandos

mquire fornece três comandos principais:

  • mquire shell - Iniciar um shell SQL interativo para consultar snapshots de memória
  • mquire query - Executar uma única consulta SQL e exibir resultados (suporta formato JSON ou tabela)
  • mquire command - Executar comandos personalizados em snapshots de memória (ex.: .task_tree, .system_version, .dump)

Comandos de Ponto

mquire fornece comandos especiais prefixados com um ponto (.) para distingui-los de consultas SQL.

Comandos Internos

Estes comandos funcionam no shell interativo e com mquire query:

  • .tables - Listar todas as tabelas disponíveis
  • .schema - Mostrar esquema de todas as tabelas
  • .schema <tabela> - Mostrar esquema de uma tabela específica
  • .commands - Listar todos os comandos personalizados disponíveis
  • .exit - Sair do shell interativo (apenas shell)

Comandos Personalizados

Estes comandos funcionam no shell interativo e com mquire command:

Use --help com qualquer comando para ver opções disponíveis e informações de uso. Por exemplo: .task_tree --help

.system_version

Exibir informações da versão do sistema operacional.

Este é um comando de conveniência equivalente a SELECT * FROM os_version, mas com saída formatada.

.task_tree

Exibir uma árvore hierárquica de processos e threads em execução, semelhante ao comando pstree no Linux.

Opções:

  • --show-threads - Incluir threads além dos processos. Quando ativado, exibe tanto TGID quanto TID para cada entrada.
  • --use-real-parent - Usar o campo real_parent em vez de parent para construir a estrutura da árvore. O campo real_parent mostra o processo pai original antes de qualquer reparentização (útil para rastrear cadeias de criação de processos mesmo após os processos pais terem saído).
Baixar ferramenta