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
POC-CVE-2017-8464-OpenCalculator — Explorando a vulnerabilidade .lnk e os mecanismos de manipulação do sistema operacional em relação ao explorer.exe e unidades USB. | Kitploit
Ferramentas/GitHubGitHub/playboisk8/poc-cve-2017-8464-opencalculator
Análise de VulnerabilidadesExploraçãoAnálise de BináriosDesenvolvimento de PayloadsExploração de Binários
GitHubplayboisk8/poc-cve-2017-8464-opencalculator

POC-CVE-2017-8464-OpenCalculator

Explorando a vulnerabilidade .lnk e os mecanismos de manipulação do sistema operacional em relação ao explorer.exe e unidades USB.

Ver Repositório
2há 1 mêsAinda 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

CVE-2017-8464 / pesquisa + PoC

Crie 1 Atalho + 1 .DLL contendo payload malicioso => Coloque no USB e envie para a vítima => vítima abre o USB => Payload é ativado automaticamente!

CVE-2017-8464.gif

CAUSA RAIZ

  1. Primeiro, precisamos saber exatamente de onde vem essa falha! Isso se deve ao recurso chamado Plug-and-Play (Conectar e Usar). O SO detecta automaticamente o dispositivo, aloca recursos e carrega o driver apropriado para que ele funcione imediatamente, sem precisar reiniciar a máquina. Quando você conecta um USB e abre a pasta pelo Windows Explorer explorer.exe, o sistema operacional escaneia os arquivos para exibir as imagens de ícones correspondentes ao usuário!

  2. Desde versões antigas do Windows, a Microsoft queria que os atalhos (.lnk) que apontam para recursos do Painel de Controle (que na prática são arquivos .cpl ou .dll) pudessem exibir ícones dinâmicos de forma flexível. Por isso, a biblioteca central de gerenciamento de interface do Windows, shell32.dll, foi projetada com uma função chamada

CPL_LoadCPLModule
  • Usando LoadLibrary cegamente: Para obter o ícone de um arquivo de estrutura Control Panel Applet, o sistema operacional não lê um simples arquivo de imagem estática; ele usa a função LoadLibraryW para carregar diretamente toda essa biblioteca de vínculo dinâmico no espaço de memória do processo explorer.exe. Após carregar, ele chama uma função de exportação padrão, CPlApplet, para obter o ícone desenhado na tela

  • LoadLibraryW.png

    Para provar que LoadLibraryW está realmente envolvido na cadeia de exploração acima:

    1/ Abra o x64dbg với quyền admin

    2/ Anexe ao explorer.exe

    3/ Digite o comando bp LoadLibraryW

    4/ Pressione F9 para o explorer.exe continuar rodando

    5/ Conecte o USB e ele atingirá o hit breakpoint imediatamente!

    Problema do PoC & Solução

    Eu enfrentei o problema de que a cadeia de exploit permanecia completamente silenciosa; mesmo tentando verificar e depurar várias coisas, não consegui encontrar uma forma de corrigir! Depois, tentei procurar PoCs de outras pessoas para executar, mas também falharam!

    Exemplo : https://github.com/3gstudent/CVE-2017-8464-EXP

    Porém, quando fui almoçar e voltei, recuperei o foco e a calma. Comecei a me perguntar por que o PoC desse cara funcionava, mas no meu computador não funcionava. Ok, comecei a fazer uma engenharia reversa leve no .lnk e .dll dele e descobri 2 coisas!

    1 / A minha .dll era mais longa que a dele! Mas tudo bem, esse não era o problema!

    2 / Quando joguei o .lnk no HxD para ler as strings, descobri que esse cara não usava caminho relativo, mas sim absoluto!

    Relativo : ../example.dll

    Absoluto : O:/example.dll

    him.png

    Ok, agora a correção será a seguinte: precisamos saber qual letra de unidade o USB receberá automaticamente quando for conectado à máquina da vítima; a partir daí, atribuímos o caminho absoluto e teremos sucesso. Como no meu Windows 7, quando conecto o USB, ele sempre aparece como unidade F, a sintaxe de build que usei foi:

    root@kitploit:~
    python Make_PoC.py FakeGoogleChrome F:\Pwned.dll
    

    Como a Microsoft corrigiu essa arquitetura?

    Como esta é uma falha de concepção de arquitetura de sistema (Logic/Architecture Flaw) e não um estouro de memória, a Microsoft teve que mudar completamente a forma como o Painel de Controle é processado:

    • Assinatura digital (Code Signing): Os sistemas operacionais modernos exigem que os arquivos .cpl ou .dll carregados por processos do sistema tenham uma assinatura digital válida da Microsoft ou estejam em pastas de sistema rigidamente protegidas (como System32) para evitar a falha de "Binary Planting" a partir de USB.
    • Isolamento de processo (Process Isolation): Em vez de carregar diretamente no processo crítico explorer.exe [cite: 1058], as novas versões do Windows executam os applets do Painel de Controle por meio de um processo intermediário isolado (como dllhost.exe ou rundll32.exe). Se a DLL travar ou contiver malware, ela apenas derruba o processo intermediário, sem conseguir controlar todo o sistema de interface do usuário.

    Referências

    Pesquisa VN

    • https://github.com/TrG-1999/DetectPacket-CVE-2017-8464

    PoC

    • https://github.com/3gstudent/CVE-2017-8464-EXP

    Ferramenta para criar o .lnk vulnerável

    • https://github.com/nixawk/labs/blob/master/CVE-2017-8464/exploit_CVE-2017-8464.py
    Baixar ferramenta