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
PMD — Curso prático de desenvolvimento de malware para Windows: API hashing, DLL sideloading, execução de shellcode, manipulação de PE, hospedagem de payload e laboratórios de entrega. | Kitploit
Ferramentas/GitHubGitHub/rad9800/pmd
Engenharia ReversaShellcodeAnálise de MalwareAnálise de BináriosAprendizado e EducaçãoRed TeamingGeração de ShellcodeDesenvolvimento de PayloadsLabs e Prática
GitHubrad9800/pmd

PMD

Curso prático de desenvolvimento de malware para Windows: API hashing, DLL sideloading, execução de shellcode, manipulação de PE, hospedagem de payload e laboratórios de entrega.

15914há 1 anoRevisado 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

Desenvolvimento Prático de Malware

Exercício 1 - Configuração do Ambiente

  1. Configure uma máquina virtual Windows dentro de um hipervisor. a. Certifique-se de tirar um snapshot da sua instalação base.
  2. Baixe e instale o Visual Studio 2022 - https://visualstudio.microsoft.com/vs/ a. Selecione a carga de trabalho Desktop development with C++ ao instalar
  3. Baixe e instale:
    • DebugView++ - https://github.com/CobaltFusion/DebugViewPP
    • PE Bear - https://github.com/hasherezade/pe-bear
    • ProcMon - https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
    • Ghidra - https://www.ghidra-sre.org/
    • Everything - https://www.voidtools.com/

Adicionalmente (opcional), para uma experiência de engenharia reversa mais completa, configure os símbolos:

setx _NT_SYMBOL_PATH c:\Symbols;srv*c:\Symbols*https://msdl.microsoft.com/download/symbols

mkdir \symbols

  1. Abra PMD.sln no Visual Studio.

  2. Selecione o projeto setup e garanta que você consiga:

    a. Compilar o projeto

    b. Visualizar a instrução de impressão de debug no DebugView++.

Exercício 2 - Entendendo as Propriedades do PE

  1. Atualize as flags do compilador e do linker do projeto template para manipular as entradas da IAT e outras propriedades do PE.

    a. Familiarize-se com a resolução dinâmica de API e com a documentação da MSDN.

    b. Existem outras propriedades que se destacam? Se você executar o Strings.exe no binário, alguma string se destaca?

    c. Você consegue removê-las/atualizá-las?

Use qualquer ferramenta de sua escolha para concluir o exercício (ex.: dumpbin/PE Bear). Um wrapper ao redor do pefile foi fornecido em scripts\props.py (certifique-se de instalar as dependências).

  1. Baixe algumas amostras de malware do VXUG

    a. Quais são as principais diferenças entre executáveis benignos e maliciosos?

    b. Quais são as principais diferenças entre o nosso binário e os executáveis benignos?

Recursos Adicionais

  • https://learn.microsoft.com/en-us/cpp/build/reference/dumpbin-reference?view=msvc-170
  • https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
  • https://learn.microsoft.com/en-us/previous-versions/ms809762(v=msdn.10)
  • https://cloud.google.com/blog/topics/threat-intelligence/tracking-malware-import-hashing/
  • https://github.com/rad9800/misc/blob/main/generic/fix-entropy.cpp
  • https://github.com/rad9800/misc/blob/main/generic/stack-strings.cpp

Exercício 3 - Hash de API em Tempo de Compilação

O algoritmo de hash de API atualmente utilizado é o fnv1a.

  1. Abra o projeto solution e chame MessageBoxA usando o framework de hash de API.
  2. Use um algoritmo de hash diferente e garanta que você ainda consiga chamar MessageBoxA.

Recursos Adicionais

  • https://github.com/vxunderground/VX-API/tree/main/VX-API
  • https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxa

Exercício 4 - Encontrar e Explorar o DLL Hijacking

  1. Baixe o Cisco Webex (https://www.webex.com/downloads.html)

  2. Encontre o CiscoCollabHost e veja quais DLLs são carregadas

    • Use Procmon/PE Bear/Ghidra ou qualquer outra ferramenta!
  3. Abra o CiscoCollabHost no Ghidra e identifique diferentes maneiras de obter execução de código por meio de sideloading

  4. Edite o dll_template para fazer sideload do seu binário alvo. Verifique se você consegue ver a string de debug no DebugView++.

  5. Atualize o LastWriteTime e o CreationTime do dll_template.dll para corresponder aos da DLL alvo.

Recursos Adicionais

  • https://hijacklibs.net/
  • https://github.com/sadreck/Spartacus

Exercício 5 - Execução de Shellcode

  1. Compile e execute o projeto utilitário.

    a. Adicionalmente, considere executá-lo no seu sistema host.

  2. Copie a DLL identificada para o diretório x64/{Debug,Release} e atualize o código do loader.

  3. Atualize execute_sc para executar seu shellcode com uma função diferente, usando o framework de hash de API.

Recursos Adicionais

  • https://github.com/Wra7h/FlavorTown

Exercício 6 - Juntando Tudo

  1. Crie um novo projeto de DLL e junte: a. DLL Sideloading b. Execução de Shellcode a partir do Sideload
  2. Verifique se as propriedades do PE estão conforme o esperado.
  3. Compile seu payload em Release e empacote em um formato adequado para entrega.

Exercício 7 - Hospedagem de Payload

  1. Cadastre-se em um provedor de armazenamento em nuvem (ex.: AWS/CloudFlare)

  2. Empacote seu payload e faça o upload dele

    a. Adicionalmente, investigue maneiras de limitar/auditar o acesso aos downloads

  3. Tire um snapshot da sua VM

  4. Reverta para a VM base e execute seu cenário completo de "entrega"

    • ex.: levar um usuário até a URL e fazer com que ele baixe o arquivo. Garanta que funcione.

Exercício 8 - Construindo Payloads com Github Actions

  1. Crie um repositório Git com o conteúdo deste projeto
  2. Valide se você consegue executar a Action e se os artefatos funcionam
  3. Atualize .github\workflows\build.yml para fazer processamento adicional de pré/pós-processamento como você quiser, economizando tempo. Aqui estão algumas ideias:
    • Execute props.py e valide/inclua a saída
    • Automatize o empacotamento do payload em Python
    • Automatize a atualização de LastWriteTime e CreationTime para corresponder a um alvo
Baixar ferramenta