Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/pedrolucasoliva/spectre-attack-demo
Análise de VulnerabilidadesExploraçãoCriptografiaSegurança de HardwareAprendizado e EducaçãoExploração de Binários
GitHubpedrolucasoliva/spectre-attack-demo

spectre-attack-demo

Exemplo de uso do exploit "Spectre" revelado (CVE-2017-5753 e CVE-2017-5715)

Ver Repositório
111há 8 anosAinda não revisado

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

Exemplo de Ataque Spectre

Exemplo de uso do exploit "Spectre" revelado em 2 de janeiro de 2018 (CVE-2017-5753 e CVE-2017-5715)

O Spectre quebra o isolamento entre diferentes aplicações. Ele permite que um atacante engane programas sem erros, que seguem as melhores práticas, fazendo com que vazem seus segredos. Na verdade, as verificações de segurança dessas melhores práticas aumentam a superfície de ataque e podem tornar as aplicações mais suscetíveis ao Spectre.

  • Artigo do Spectre - Artigo do Spectre e código-fonte

Linguagem

C, usa as bibliotecas:

  • stdio.h
  • stdlib.h
  • stdint.h
  • intrin.h - para rdtscp e clflush

O que o exemplo faz?

Colocamos o texto "The Magic Words are Squeamish Ossifrage." na memória e então tentamos lê-lo usando o exploit. Se o sistema for vulnerável, você verá o mesmo texto na saída, lido da memória.


Neste código, se as instruções compiladas em victim_function() fossem executadas em ordem estrita do programa, a função só leria de array1[0..15], pois o tamanho de array1 é 16. No entanto, quando executada especulativamente, leituras fora dos limites são possíveis. A função readMemoryByte() faz várias chamadas de treinamento a para fazer o preditor de desvios esperar valores válidos para x e, em seguida, faz uma chamada com um x fora dos limites. O desvio condicional tem previsão incorreta, e a execução especulativa resultante lê um byte secreto usando o x fora dos limites. O código especulativo então lê de , vazando o valor de para o estado do cache. Para completar o ataque, um simples flush+probe é usado para identificar qual linha de cache em foi carregada, revelando o conteúdo da memória. O ataque é repetido várias vezes; assim, mesmo que o byte alvo não esteja inicialmente em cache, a primeira iteração o trará para o cache.

victim_function()
array2[array1[x] * 512]
array1[x]
array2

O código não otimizado lê aproximadamente 10KB/segundo em um i7 Surface Pro 3.

Fontes

  • Informações sobre exploits Spectre
  • CVE-2017-5753 - Variante 1: bypass da verificação de limites
  • CVE-2017-5715 - Variante 2: injeção no alvo do desvio
  • Lista de CPUs afetadas da Intel
Baixar ferramenta