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
Invoke-DOSfuscation — Gerador de Ofuscação de Comandos do Cmd.exe & Estrutura de Teste de Detecção | Kitploit
Ferramentas/GitHubGitHub/danielbohannon/invoke-dosfuscation
Ferramentas DefensivasFuzzingTestes de PenetraçãoComando e ControleRed TeamingResposta a Incidentes
GitHubdanielbohannon/invoke-dosfuscation

Invoke-DOSfuscation

Gerador de Ofuscação de Comandos do Cmd.exe & Estrutura de Teste de Detecção

Ver Repositório
948140há 8 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

Invoke-DOSfuscation v1.0

Invoke-DOSfuscation Screenshot

Introdução

O Invoke-DOSfuscation é uma framework de ofuscação de comandos cmd.exe compatível com PowerShell v2.0+. (White paper: https://www.fireeye.com/blog/threat-research/2018/03/dosfuscation-exploring-obfuscation-and-detection-techniques.html)

Histórico

Ao longo dos últimos anos como consultor de Resposta a Incidentes, testemunhei uma infinidade de técnicas de ofuscação e evasão empregadas por vários atores de ameaças. Algumas dessas técnicas são incrivelmente complexas, enquanto outras são elegantemente simples, mas ambas as categorias são usadas para evitar detecção. Na minha experiência, constatei que APT32 e FIN7 são os que utilizam as técnicas de ofuscação mais atraentes e sua criatividade é notável.

Em junho de 2017, após uma série de técnicas incrementais de ofuscação de linha de comando, o FIN7 usou uma capacidade de substituição de strings de variáveis de ambiente nativa do cmd.exe que, na época, eu nem sabia que existia. Impulsionado por essa descoberta, coescrevi um post no blog com Nick Carr (@ItsReallyNick) intitulado Obfuscation in the Wild: Targeted Attackers Lead the Way in Evasion Techniques, onde destacamos as técnicas de ofuscação de vários grupos que identificamos na natureza.

No fim de semana seguinte, explorei essa funcionalidade de substituição nativa do cmd.exe e construí e lancei uma ferramenta simples de Prova de Conceito chamada Out-FINcodedCommand. Assim que lancei essa POC, recuei e pensei: "Talvez existam mais capacidades de ofuscação dentro do cmd.exe que eu deva explorar e construir detecções antes de descobrirmos seu uso na natureza."

Esse foi o início da minha pesquisa que, eventualmente, me levou a desenvolver esta framework Invoke-DOSfuscation.

Propósito

Os atacantes estão cada vez mais usando técnicas de ofuscação para evitar detecções baseadas fortemente em valores de argumentos de linha de comando. Para combater isso, passei cinco meses pesquisando e desenvolvendo técnicas de ofuscação e codificação nativas do cmd.exe, para que eu pudesse criar detecções robustas para essas técnicas principais que ainda não vi sendo usadas na natureza.

O único propósito desta framework é permitir que defensores gerem aleatoriamente milhares de comandos de amostra exclusivamente ofuscados para testar e ajustar suas capacidades de detecção contra essas técnicas. Incluí meu harness de teste completo nesta versão para automatizar esse processo de teste de detecção.

De muitas maneiras, esta framework permite que defensores façam fuzzing das técnicas de ofuscação do cmd.exe e, ao construir esta ferramenta, descobri inúmeras oportunidades adicionais de ofuscação que não encontrei em minha pesquisa inicial.

Também compartilhei essas informações com a Microsoft em novembro de 2017 e perguntei sobre oportunidades para expor maior visibilidade sobre o funcionamento interno do cmd.exe no uso das técnicas principais que são os blocos de construção de todas as funções de ofuscação incorporadas nesta framework.

Como defensor, o objetivo final desta pesquisa e desenvolvimento é aumentar a conscientização e impulsionar mudanças que ajudem os usuários finais a se protegerem melhor contra as TTPs (Ferramentas, Técnicas e Procedimentos) em constante evolução dos atacantes.

Uso

Embora todos os componentes de ofuscação sejam construídos como funções formais independentes, a maioria dos usuários considerará a função Invoke-DOSfuscation como a maneira mais fácil de explorar e visualizar as técnicas de ofuscação que esta framework suporta. Para fuzzing e exploração aprofundada das inúmeras opções de ajuste para cada categoria de ofuscação, no entanto, é recomendado que as funções individuais sejam usadas diretamente fora do wrapper da função Invoke-DOSfuscation.

Para permitir que defensores comecem facilmente a fazer fuzzing e testar ideias de detecção, esta framework também inclui um módulo adicional, Invoke-DOSfuscationTestHarness.psm1, que é importado automaticamente com o restante do projeto. As duas funções principais neste módulo para defensores são:

  1. Invoke-DosTestHarness - Gera (com configurações de argumento padrão) mais de 1000 comandos ofuscados aleatoriamente a partir de uma lista de comandos de teste, tanto para integridade do payload quanto para propósitos de detecção. Cada iteração do harness de teste randomiza todos os argumentos de função disponíveis e chama as quatro funções de ofuscação diretamente, em vez de usar os valores mais padronizados de -ObfuscationLevel (1-3) que a função orientada por menu Invoke-DOSfuscation usa por padrão. Isso produz uma gama significativamente mais ampla de saída de ofuscação contra a qual se pode construir detecções mais completas. Cada comando ofuscado é então verificado contra a segunda função:
  2. Get-DosDetectionMatch - Verifica um comando de entrada (string) contra todos os valores de detecção regex inseridos no array $regexDetectionTerms na função. Isso é chamado automaticamente por Invoke-DosTestHarness, mas também pode ser chamado de forma independente.

Ao final de cada invocação do harness de teste, estatísticas para execução adequada do comando e detecção serão exibidas para que os defensores possam identificar rapidamente quais comandos têm 0 ou apenas 1-2 correspondências de detecção e quais podem precisar de melhor cobertura.

Finalmente, para evitar que os defensores precisem executar o harness de teste para começar, forneci 1000 comandos de amostra no diretório Samples divididos entre cada uma das quatro funções de ofuscação. Os formatos incluem arquivos .txt e arquivos .evtx do Security e Sysmon. Incluí algumas regras de detecção de amostra no array $regexDetectionTerms em Invoke-DOSfuscationTestHarness.psm1, mas você vai querer adicionar e testar muitas mais regras ao testar os comandos ofuscados de amostra). Além dos arquivos .txt com os comandos brutos, há arquivos .evtx contendo os logs de execução de processo (eventos Sysmon EID 1) para cada um dos 1000 comandos de amostra. Esses logs de eventos são extremamente úteis para construir indicadores baseados em execuções de processos filho diferenciados que são subprodutos de várias técnicas de bloco de construção sobre as quais o Invoke-DOSfuscation é construído.

Para começar, exiba comandos ofuscados de amostra que não correspondem a nenhuma de suas regras de detecção atuais simplesmente executando:

(Get-Content .\Samples\STATIC_1-of-4_Out-DosConcatenatedCommand.txt) | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }

Para testar tanto comandos ofuscados quanto processos filho de logs de eventos de execução registrados no Security EID 4688, execute:

(Get-WinEvent -Path .\Samples\DYNAMIC_SECURITY_EID4688_1-of-4_Out-DosConcatenatedCommand.evtx) | where-object { $_.Message } | foreach-object { ($_.Message.Split("`n") | select-string '^\tProcess Command Line:\t') -replace '^\tProcess Command Line:\t','' } | where-object { -not (Get-DosDetectionMatch -Command $_).Detected }

Instalação

O código-fonte do Invoke-DOSfuscation está hospedado no Github, e você pode baixá-lo, fazer fork e revisá-lo a partir deste repositório (https://github.com/danielbohannon/Invoke-DOSfuscation). Por favor, reporte problemas ou solicitações de funcionalidades através do rastreador de bugs do Github associado a este projeto.

Para instalar:

root@kitploit:~
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation

Licença

O Invoke-DOSfuscation é distribuído sob a licença Apache 2.0.

Notas de Lançamento

v1.0 - 2018-03-23 Black Hat Asia (Cingapura): Lançamento Público do Invoke-DOSfuscation.

Baixar ferramenta