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
CVE-2020-0796-BOF — Cobalt Strike Beacon Object File implementando CVE-2020-0796 SMBGhost escalonamento de privilégio local com caminhos duplos de weaponização para roubo de token e elevação de sessão. | Kitploit
Ferramentas/GitHubGitHub/rsmudge/cve-2020-0796-bof
Escalada de PrivilégiosFrameworks de ExploraçãoExploraçãoShellcodePós-ExploraçãoTestes de PenetraçãoRed TeamingDesenvolvimento de PayloadsExploração de Binários
GitHubrsmudge/cve-2020-0796-bof

CVE-2020-0796-BOF

Cobalt Strike Beacon Object File implementando CVE-2020-0796 SMBGhost escalonamento de privilégio local com caminhos duplos de weaponização para roubo de token e elevação de sessão.

70195há 5 anosRevisado 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
Ver Repositório

Este é o tinkering do Raphael com o SMBGhost LPE.

Comecei com o código-fonte do Metasploit Framework:

cve-2020-0796: SMBv3 Compression Buffer Overflow (SMBGhost) (CVE 2020-0796) https://github.com/rapid7/metasploit-framework/tree/master/external/source/exploits/CVE-2020-0796 [Licenciado sob BSD]

E, aqui está o que eu fiz:

  1. Converti a DLL Reflexiva em um Arquivo de Objeto Beacon do Cobalt Strike 4.1.

Isso exigiu declarar várias APIs Win32 no formato MODULE$Function da Resolução Dinâmica de Funções. No lado positivo, isso reduziu parte do código para chamar coisas no NTDLL, já que a DFR está cuidando disso para nós. :)

Removi o array de ponteiros de 1000 itens não utilizado do get_handle_addr. Isso estava fazendo o cl.exe inserir uma função __chkstk devido às variáveis locais excederem um limite de 8KB. BOFs não têm essa função disponível para eles.

Em seguida, adicionei algumas APIs específicas do Beacon (por exemplo, BeaconPrintf, BeaconInjectProcess, etc.) para fazer as coisas usando a forma nativa do Beacon.

Tive que escrever algumas funções para compensar coisas da libc que não tenho (devido a... BOFs).

  1. Dividi o código em dois caminhos diferentes de weaponização:

Use o alias 'smbghost' no Beacon, sem argumentos, para executar este exploit e afetar apenas o token do processo Beacon. Se o exploit for bem-sucedido, seu token de processo atual terá superpoderes que não tinha antes. Por exemplo, você pode agora injetar em outros processos (mesmo em outras sessões de desktop) ou criar um processo filho sob winlogon.exe. Talvez você precise executar smbghost várias vezes, pois o exploit nem sempre é bem-sucedido na primeira execução.

Opcionalmente, use 'elevate smbghost' para obter uma nova sessão Beacon usando a API de escalonamento de privilégios disponível no Aggressor Script do Cobalt Strike. Isso é OK para uma demonstração rápida, se encaixa nos fluxos de trabalho do produto, etc., mas... injeta no winlogon.exe. Injetar no winlogon.exe não é um invariante desta elevação específica. Suspeito que todos os POCs públicos fazem isso porque CreateRemoteThread não funciona entre limites de processo e quem quer escrever o boilerplate extra para spoofing de processo pai? winlogon.exe é a fruta mais fácil para demonstrar que temos direitos elevados.

Para compilar isso com o Visual Studio:

Use o make.bat a partir do Prompt de Comando Cross Tools x64.

Isso irá gerar expoit.x64.o em dist/

Usei Visual Studio 2013. Outros compiladores/versões não foram testados. Não tentei/testei x86.

Baixar ferramenta