
Um bootkit de Prova de Conceito inspirado no ransomware Petya, escrito em Assembly, C e C++
Um bootkit de Prova de Conceito inspirado no ransomware Petya, escrito em Assembly, C e C++
Se você achar este projeto útil ou informativo, eu realmente agradeceria uma ⭐ no repositório. Seu apoio seria uma ótima motivação para eu continuar melhorando esta ferramenta.
OpenPetya é um projeto educacional projetado para estudar como bootkits e ransomware de baixo nível operam internamente.
O projeto se concentra em:
O OpenPetya NÃO tem a intenção de ser uma reimplementação exata de Petya ou NotPetya. Em vez disso, é uma Prova de Conceito simplificada, projetada para fins de aprendizado e pesquisa.
Vale mencionar que o OpenPetya não inclui funcionalidade de Command-and-Control (C2). Além disso, o OpenPetya armazena dados de backup da MFT em texto puro dentro de setores ocultos após a criptografia. Esse comportamento é intencionalmente projetado para fins educacionais, pois esses recursos são relativamente triviais em comparação com o bootloader principal e os mecanismos criptográficos implementados neste projeto. No entanto, você ainda pode modificar ou remover esses recursos, se necessário.
Nos últimos meses, venho estudando:
Ao pesquisar Petya e NotPetya, percebi que muitos recursos online apenas explicam brevemente o fluxo geral de trabalho, sem demonstrar como o processo de boot subjacente realmente funciona.
Além disso, muitos projetos existentes relacionados ao Petya dependem de binários de bootloader extraídos ou de componentes originais modificados, em vez de implementar a lógica do zero.
Portanto, decidi desenvolver o OpenPetya como um projeto prático para entender:
O projeto também faz parte da minha pesquisa contínua sobre bootkits, malware de baixo nível e internals de sistemas operacionais.
Artigos relacionados:
MBR Personalizado
O OpenPetya usa um Master Boot Record (MBR) personalizado para carregar o payload de estágio 2.
Bootloader de Estágio 2 Personalizado
O bootloader de estágio 2 contém a funcionalidade principal do projeto, incluindo:
Transição para o Protected Mode
O bootloader alterna do Real Mode de 16 bits para o Protected Mode de 32 bits antes de executar a lógica de nível superior.
Criptografia da MFT
Semelhante ao Petya original, o OpenPetya criptografa partes críticas da Master File Table (MFT) do NTFS usando Salsa20.
Validação de Senha
O OpenPetya valida a senha inserida antes da descriptografia para evitar corrupção irreversível causada por chaves inválidas.
Restauração Automática
Uma vez que a senha correta é inserida:
OpenPetya.exeAplicativo instalador e controlador em modo de usuário.
Funções:
mbr.binCódigo personalizado do Master Boot Record (MBR) responsável por:
stage2.binO payload principal do OpenPetya.
Responsabilidades:
O fluxo de trabalho do OpenPetya é resumido abaixo.
Os usuários instalam o OpenPetya usando OpenPetya.exe e escolhem uma senha.
A máquina é reinicializada manualmente ou por meio do mecanismo de BSOD (via NtRaiseHardError) fornecido pelo instalador.
Durante o boot, o MBR personalizado carrega o payload de estágio 2.
O payload de estágio 2 coloca a CPU no Protected Mode.
O OpenPetya criptografa partes selecionadas da Master File Table (MFT) do NTFS.
Após a criptografia, a máquina é reinicializada novamente.
Uma interface em tempo de boot solicita a senha ao usuário.
Se a senha estiver correta:
O Windows inicializa normalmente novamente.
Ao contrário do ransomware Petya original, o OpenPetya não tenta enganar os usuários com telas falsas de CHKDSK ou comportamento de engenharia social. O projeto é projetado puramente para fins educacionais e de pesquisa.
Você pode compilar o projeto usando os comandos abaixo.
make # Compila mbr.bin e stage2.bin
./build.exe # Compila OpenPetya.exe
Aviso: Execute-o em sua máquina virtual!
Os comandos abaixo mostram como instalar o MBR personalizado e o bootloader de estágio 2 (privilégio de Administrador é necessário):
OpenPetya.exe --list
OpenPetya.exe --drive 0 --install mbr.bin stage2.bin
Explicações detalhadas sobre:
NtRaiseHardError)Estão documentadas em este artigo.
Este projeto foi desenvolvido puramente para fins educacionais e de pesquisa.
O objetivo do OpenPetya é estudar:
NÃO use este projeto para atividades ilegais ou contra sistemas que você não possui ou para os quais não tem permissão explícita de teste.
O autor NÃO é responsável por qualquer uso indevido deste software.
Obrigado por conferir este projeto. Feedback e sugestões são bem-vindos.