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
maldev-for-dummies — Um workshop sobre Desenvolvimento de Malware | Kitploit
Ferramentas/GitHubGitHub/chvancooten/maldev-for-dummies
ExploraçãoShellcodeAnálise de MalwareAprendizado e EducaçãoRed TeamingDesenvolvimento de PayloadsLabs e Prática
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

Um workshop sobre Desenvolvimento de Malware

Ver Repositório
1.8k235há 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

Desenvolvimento de Malware para Leigos

Na era do EDR, operadores de equipes vermelhas não conseguem mais se safar usando payloads pré-compilados. Como tal, o desenvolvimento de malware está se tornando uma habilidade vital para qualquer operador. Começar no mundo do maldev pode parecer assustador, mas na verdade é muito fácil. Este workshop mostrará tudo o que você precisa para começar!

Este repositório contém os slides e exercícios que acompanham o workshop 'MalDev para Leigos' que foi/será ministrado no Hack in Paris 2022 e no X33fcon 2023. Embora os slides tenham sido projetados para serem apresentados 'presencialmente', os materiais e exercícios permanecerão disponíveis aqui para serem concluídos no seu próprio ritmo — o processo de aprendizado nunca deve ser apressado! Issues e pull requests neste repositório com perguntas e/ou sugestões são bem-vindos.

⚠ Aviso: O desenvolvimento de malware é uma habilidade que pode — e deve — ser usada para o bem, para avançar o campo da segurança (ofensiva) e manter nossas defesas afiadas. Se você usar esse conjunto de habilidades para realizar atividades para as quais não tem autorização, você é um leigo maior do que este workshop pretende atender e deve cair fora daqui.

Descrição do Workshop

Com as ferramentas de antivírus (AV) e Detecção e Resposta Corporativa (EDR) se tornando cada vez mais maduras a cada minuto, a equipe vermelha está sendo forçada a ficar à frente da curva. Já se foram os tempos de execute-assembly e de deixar payloads não modificados no disco — se você quiser que seus engajamentos durem mais de uma semana, terá que melhorar seu jogo de criação de payloads e desenvolvimento de malware. Começar nessa área pode ser assustador, e encontrar os recursos certos nem sempre é fácil.

Este workshop é voltado para iniciantes na área e irá guiá-lo pelos seus primeiros passos como desenvolvedor de malware. É direcionado principalmente a profissionais ofensivos, mas profissionais defensivos também são muito bem-vindos para participar e ampliar seu conjunto de habilidades.

Durante o workshop, abordaremos alguma teoria, após a qual montaremos um ambiente de laboratório para você. Haverá vários exercícios que você pode completar dependendo do seu conjunto de habilidades atual e nível de conforto com o assunto. No entanto, o objetivo do workshop é aprender, e explicitamente não completar todos os exercícios. Você é livre para escolher sua linguagem de programação preferida para desenvolvimento de malware, mas o suporte durante o workshop é fornecido principalmente para as linguagens C# e Nim.

Durante o workshop, discutiremos os tópicos-chave necessários para começar a construir seu próprio malware. Isso inclui (mas não se limita a):

  • A API do Windows
  • Tipos de arquivo e métodos de execução
  • Execução e injeção de shellcode
  • Métodos de evasão de AV e EDR

Começando

Para começar com o desenvolvimento de malware, você precisará de uma máquina de desenvolvimento para não ser incomodado por nenhuma ferramenta defensiva que possa estar rodando em sua máquina host. Prefiro Windows para desenvolvimento, mas Linux ou MacOS também servem. Instale seu editor/IDE de preferência (uso VS Code para quase tudo, exceto C#, para o qual uso Visual Studio) e depois instale as toolchains necessárias para a linguagem de MalDev de sua escolha:

  • C#: O Visual Studio lhe dará a opção de incluir os pacotes .NET que você precisará para desenvolver em C#. Se quiser desenvolver sem o Visual Studio, você pode baixar o .NET Framework separadamente.
  • Nim lang: Siga as instruções de download. O Choosenim é um utilitário conveniente que pode ser usado para automatizar o processo de instalação.
  • Golang (obrigado a @nodauf pelo PR): Siga as instruções de download.
  • Rust: O Rustup pode ser usado para instalar o Rust junto com as toolchains necessárias.

Não se esqueça de desabilitar o Windows Defender ou adicionar as exclusões apropriadas, para que seu trabalho duro não seja colocado em quarentena! Mais tarde, podemos testar em uma máquina separada com controles defensivos como AV habilitados.

ℹ Nota: Muitas vezes, gerenciadores de pacotes como apt ou ferramentas de gerenciamento de software como Chocolatey ou Winget (agora embutido!) podem ser usados para automatizar a instalação e o gerenciamento de dependências de maneira conveniente e repetível. Esteja ciente, no entanto, de que as versões nos gerenciadores de pacotes podem estar algumas versões atrás da versão real! Abaixo está um exemplo de comando para instalar todas as ferramentas mencionadas de uma só vez.

root@kitploit:~
 choco install -y nim choosenim go rust vscode visualstudio2019community dotnetfx

Compilando programas

As linguagens que discutiremos durante este workshop são linguagens compiladas, o que significa que um compilador é usado para traduzir seu código-fonte em executáveis binários no formato escolhido. O processo de compilação difere por linguagem.

C#

Código C# (arquivos .cs) pode ser compilado diretamente (com o utilitário csc) ou através do próprio Visual Studio. A maior parte do código-fonte neste repositório (exceto a solução do exercício bônus 3) pode ser compilada da seguinte forma.

ℹ Nota: Certifique-se de executar o comando abaixo em um "Prompt de Comando do Desenvolvedor do Visual Studio" para que ele saiba onde encontrar o csc. Recomenda-se usar o "Prompt de Comando das Ferramentas Nativas x64" para sua versão do Visual Studio. A flag /unsafe será necessária para a maioria dos scripts onde acessamos funcionalidades de baixo nível diretamente.

root@kitploit:~
csc filename.exe

Você pode habilitar otimizações em tempo de compilação com a flag /optimize. Você também pode ocultar a janela do console adicionando /target:winexe, ou compilar como DLL com /target:library (mas certifique-se de que a estrutura do seu código seja adequada para isso).

Nim

Código Nim (arquivos .nim) é compilado com o comando nim c. O código-fonte neste repositório pode ser compilado da seguinte forma.

root@kitploit:~
nim c filename.nim

Se você quiser otimizar sua compilação para tamanho e remover informações de depuração (muito melhor para opsec!), pode adicionar as seguintes flags.

root@kitploit:~
nim c -d:release -d:strip --opt:size filename.nim

Opcionalmente, você também pode ocultar a janela do console adicionando --app:gui.

Golang

Código Golang (arquivos .go) é compilado com o comando go build. O código-fonte neste repositório pode ser compilado da seguinte forma.

root@kitploit:~
GOOS=windows go build

Se você quiser otimizar sua compilação para tamanho e remover informações de depuração (muito melhor para opsec!), pode adicionar as seguintes flags.

root@kitploit:~
GOOS=windows go build -ldflags "-s -w"

Rust

Código Rust (arquivos .rs) é compilado através do comando cargo. O Cargo pode ser usado para gerenciar suas dependências e construir seu projeto. O código-fonte neste repositório pode ser compilado navegando até a pasta do projeto e executando o seguinte comando.

root@kitploit:~
cargo build

Se você quiser otimizar sua compilação para tamanho e remover informações de depuração, pode adicionar as seguintes flags. Consulte também a seção [profile.release] em cada arquivo Cargo.toml para algumas opções de opsec em tempo de compilação.

root@kitploit:~
cargo build --release

Dependências

C#

A maioria das soluções pode ser compilada sem dependências. Caso sejam necessárias dependências, um projeto do Visual Studio é fornecido com links para os pacotes NuGet apropriados.

Nim

A maioria dos programas Nim depende de uma biblioteca chamada "Winim" para interfacear com a API do Windows. Você pode instalar a biblioteca com o gerenciador de pacotes Nimble da seguinte forma (após instalar o Nim):

root@kitploit:~
nimble install winim

Golang

Algumas dependências são usadas no código-fonte deste repositório. Você pode instalá-las da seguinte forma (após instalar o Go):

root@kitploit:~
go mod tidy

Rust

Alguns exemplos dependem da crate windows-sys para chamar a API do Windows. Como estamos usando Cargo, os pacotes serão gerenciados automaticamente quando você compilar uma compilação de teste ou release.

Recursos

Os slides do workshop referenciam alguns recursos que você pode usar para começar. Recursos adicionais, como blogs relevantes ou trechos de código, estão listados nos arquivos README.md de cada exercício!

Baixar ferramenta