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
KDStab — Combinação BOF de KillDefender e Backstab | Kitploit
Ferramentas/GitHubGitHub/octoberfest7/kdstab
Ferramentas DefensivasEscalada de PrivilégiosFrameworks de ExploraçãoPós-ExploraçãoRed TeamingDesenvolvimento de Payloads
GitHuboctoberfest7/kdstab

KDStab

Combinação BOF de KillDefender e Backstab

Ver Repositório
17036há 3 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

KDStab

28/06/2022: Microsoft lançou uma atualização que impede abrir um handle para o token do MsMpEng.exe, e como tal a parte KillDefender desta ferramenta não funciona mais. Backstab ainda deve funcionar. Não sei o ID da atualização, pode funcionar em sistemas mais antigos sem atualização. Verificado no Win10 21H2 e Win11.

Esta é uma implementação combinada em Beacon Object File do Backstab de Yaxser e do KillDefender de pwn1sher para uso com Cobalt Strike.

image

Introdução

KDStab é uma ferramenta de pós-exploração para derrotar o Windows Defender (em teoria poderia funcionar para outras soluções também, mas não foi testado) para que outras ferramentas de pós-exploração possam ser usadas com menos medo de detecção. Ela utiliza Backstab e KillDefender para conseguir isso, ambos chamados quando apropriado pelo comando kdstab do Cobalt Strike.

KDStab foi testado com sucesso em x64 Windows 10, Windows 11 e Server 2019.

KDStab requer acesso de nível Administrador ou Sistema.

Funções principais:

  1. Enumerar a integridade de um processo

  2. Remover os privilégios de um processo e definir sua integridade como Não Confiável

  3. Matar um processo protegido por PPL

  4. Listar os handles de um processo protegido por PPL

  5. Fechar um handle específico de um processo protegido por PPL

Exemplos

Verificar o nível de integridade de um processo

image

Remover os privilégios de um processo e definir seu token como Não Confiável

image

Resultado do comando /STRIP

image

Matar um processo protegido por PPL

image

Contexto

Encontrei o KillDefender do pwn1sher logo após seu lançamento e achei incrível; além de tornar o MsMpEng.exe (Defender) inútil, ele mantém o processo em execução, o que parece desejável do ponto de vista de OPSEC (além do fato de que o comportamento padrão do serviço WinDefend é reiniciar o MsMpEng.exe em caso de falha — algo que será útil mais tarde).

Embora cegar o Defender seja incrível para um engajamento, como profissionais somos responsáveis por restaurar os ativos do cliente ao estado em que os encontramos; além disso, não queremos deixar seus sistemas expostos para outros agentes porque nós matamos o Defender (usando KillDefender).

O problema é que é difícil "restaurar" o MsMpEng.exe ao seu estado funcional. O KillDefender funciona removendo os privilégios do processo alvo (SeDebugPrivilege, etc...) e definindo sua integridade de token como não confiável. Não se pode simplesmente "re-elevar" o token para Sistema e restaurar os privilégios; o processo deve ser morto e uma nova instância iniciada. Claro que o MsMpEng.exe também é um processo PsProtectedSignerAntimalware-Light, então mesmo como Sistema não podemos simplesmente encerrá-lo. Frustrantemente, o grupo TrustedInstaller foi removido do MsMpEng.exe recentemente (você pode encontrar outras pesquisas sobre isso), tornando ineficaz aquela técnica para realmente matar o processo MsMpEng.exe (ou o serviço WinDefend) que existia há muitos anos. Sendo esse o caso, a única opção aparentemente viável é reiniciar a máquina, o que pode causar problemas ao cliente se estivermos falando de servidores e DCs.

Armado com esse problema, comecei a procurar e rapidamente encontrei o Backstab do Yaxser. O Backstab é capaz de matar processos protegidos por PPL usando o driver do ProcExp; este é um driver assinado pela Microsoft da Sysinternals, o que funciona a nosso favor. O Backstab realiza algumas ações inseguras para OPSEC; ele solta o driver no disco e cria chaves de registro. No entanto, se o Defender já está cego... :).

Eu me propus a portar ambas as ferramentas para o formato BOF para que pudessem ser usadas através de um Beacon do Cobalt Strike sem precisar soltá-las no disco (o binário original do Backstab era bloqueado em tempo de execução pelo Defender).

Sou novo tanto em C/C++ quanto em escrever BOFs e aprendi muito durante o processo. Você encontrará algumas inconsistências no código (como o Backstab_bof escrito e compilado no Linux usando gcc e o KillDefender_bof escrito e compilado no Visual Studio) devido ao meu aprendizado durante o processo de criação, mas fiz uma quantidade razoável de testes para garantir a funcionalidade e também construí alguns trilhos no script aggressor para garantir o uso adequado e a entrada correta para os BOFs. Espero que você ache esta ferramenta útil.

Mudanças e Notas de Programação:

Algumas mudanças notáveis foram feitas no código fonte das ferramentas e certas escolhas programáticas foram feitas que serão mencionadas aqui:

  1. O driver ProcExp não é mais armazenado/carregado como um recurso, é um array de bytes hardcoded em backstab_src/resource.c

  2. Havia vários vazamentos de memória no código original do Backstab que encontrei e corrigi

  3. O POC do KillDefender falha quando o usuário não é System; adicionei um trecho para enumerar o usuário em execução e obter System através da impersonação do token do Winlogon, se necessário.

  4. O KillDefender foi modificado para permitir que os usuários especifiquem qual processo mirar; adicionalmente, um modo "Check" foi adicionado para enumerar o nível de integridade de um processo (o que pode confirmar que um processo foi removido com sucesso de seus privilégios e integridade).

  5. O Backstab usa APIs e chamadas C suficientes que o Cobalt Strike não conseguiu gerenciar a resolução de todas as funções dinâmicas — trustedsec ao resgate! Implementei a resolução dinâmica de funções deles para complementar a do CS, para que todas as APIs necessárias pudessem ser chamadas.

  6. O Backstab original tem várias declarações switch/case que causaram problemas durante a portagem, então foram substituídas por declarações if/else. Além disso, praticamente todas as variáveis globais foram eliminadas por razões semelhantes.

  7. Eu sei que é estranho que uma ferramenta foi escrita para Visual Studio e a outra para GCC; isso é uma consequência de minha luta para portá-las com sucesso e muitos obstáculos ao longo do caminho. Ferramentas futuras devem se beneficiar das muitas lições que aprendi aqui.

  8. Ambos KillDefender_bof e Backstab_bof existem como repositórios independentes. NOTE QUE O CÓDIGO É DIFERENTE ENTRE OS REPOSITÓRIOS INDEPENDENTES E ESTA FERRAMENTA. Isso foi feito para torná-los mais flexíveis e capazes de se integrar em um único pacote.

Para Compilar:

Não tentei compilar nenhuma das ferramentas para x86; se você realmente precisar de uma versão para isso, deixo para você resolver.

Para compilar o Backstab_bof usando gcc:

root@kitploit:~
x86_64-w64-mingw32-gcc -o backstab.x64.o -Os -c main.c -DBOF -D_UNICODE

Certifique-se de que você atualizou seu mingw para a versão mais recente! Tive problemas onde minha versão tinha arquivos de cabeçalho desatualizados, no entanto os arquivos de cabeçalho da versão mais recente estão corretos.

Para compilar o KillDefender_bof usando o prompt de comando nativo x64:

root@kitploit:~
cl.exe /c /GS- /TP killdefender_bof.cpp /FoKillDefender.x64.o

Créditos

  1. Yaxser e sua ferramenta Backstab: https://github.com/Yaxser/Backstab

  2. pwn1sher e sua ferramenta KillDefender: https://github.com/pwn1sher/KillDefender

  3. Trustedsec por seu repositório CS-Situational-Awareness-BOF que foi uma grande ajuda durante o processo de portagem. Usei trechos de seu código neste projeto e recomendo fortemente que qualquer pessoa que esteja começando a escrever BOFs confira o repositório: https://github.com/trustedsec/CS-Situational-Awareness-BOF

Baixar ferramenta