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
antivmdetection — Script para criar modelos para usar com VirtualBox para dificultar a detecção de VM | Kitploit
Ferramentas/GitHubGitHub/nsmfoo/antivmdetection
Evasão de IDS/IPSAnálise de MalwareAnti-Bot
GitHubnsmfoo/antivmdetection

antivmdetection

Script para criar modelos para usar com VirtualBox para dificultar a detecção de VM

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

Antivmdetection

Contexto

Um script para ajudar a criar templates, que podem ser usados com VirtualBox para dificultar a deteção de VM.

A minha primeira publicação sobre o assunto foi em 2012 e, desde então, foi atualizada esporadicamente. O formato de blogue pode não ter sido a melhor forma de publicar a informação e algumas pessoas criaram scripts interessantes e "fáceis de aplicar" com base no conteúdo.

Para facilitar a adição de novos conteúdos, decidi fazer exatamente o mesmo.

O objetivo deste script é utilizar as definições disponíveis sem modificar a base do VirtualBox. Há quem faça coisas realmente interessantes ao modificar o VirtualBox, mas isso está fora do âmbito deste script. Acredito que esta abordagem tem os seus méritos, pois (espero) não quebra a cada nova versão do VirtualBox. Ao longo do tempo, também incluí "coisas" que não estão diretamente relacionadas com VM, mas sim com o que o malware utiliza para identificar instalações. Espero que não se importem..

O script principal criará os seguintes ficheiros:

  • Um script shell, que pode ser usado como template, para ser executado a partir do sistema anfitrião e aplicado à VM que pretende modificar.
  • Um dump do DSDT, utilizado no script template acima.
  • Um ficheiro Windows Powershell para ser utilizado no interior do convidado, para tratar das definições que não podem ser alteradas a partir do anfitrião. Este script terá de ser executado duas vezes: uma para as alterações que requerem reinicialização e a segunda para as coisas teimosas que reaparecem ao reiniciar.

Utilização

Gerar script a partir do anfitrião

  • Instalar dependências sudo apt install python3-pip libcdio-utils acpica-tools mesa-utils smartmontools
  • Instalar módulos Python: sudo pip3 install -r requirements.txt
  • Descarregar os seguintes binários Windows e extraí-los no diretório antivmdetection: wget https://download.sysinternals.com/files/VolumeId.zip https://www.nirsoft.net/utils/devmanview-x64.zip (versão x64).
  • Criar ficheiros de texto para computador e utilizador: hostname > computer.lst, whoami > user.lst. Modifique se pretender usar nomes de máquina e utilizadores diferentes para as VMs (recomenda-se preencher os ficheiros com uma longa lista de nomes de utilizador e computador).
  • Executar o script Python como sudo sudo python3 antivmdetect.py
  • Tornar o script anfitrião gerado executável pelo utilizador atual sudo chmod a+x xxxxx.sh
  • Se receber a seguinte mensagem: "ACPI tables bigger than 64KB (VERR_TOO_MUCH_DATA)", isto deve-se a uma limitação do Virtualbox. Para mais contexto, consulte este caso: https://github.com/nsmfoo/antivmdetection/issues/37 . Não verificado como funcional, mas https://www.tonymacx86.com/dsdt-database pode ser um bom recurso...

Configurar a VM

  • Crie a VM mas não a inicie; saia também da interface gráfica do VirtualBox. O script shell precisa de ser executado antes da instalação!.
  • Verifique se "I/O APIC" está ativado (System > Motherboard tab).
  • Verifique se "Paravirtualization Interface" está definido como "None" (System > Acceleration tab).
  • Altere a contagem de CPUs para 2 ou mais, se possível.
  • Defina o IP da VM (File > Host Network Manager > Configure Adapter Manually > IPV4 address).
  • O script espera que o layout de armazenamento seja o seguinte: + IDE: Primary master (Disk) e Primary slave (CD-ROM) + * ATA: Port 0 (Disk) e Port 1 (CD-ROM)
  • Execute o script como utilizador atual (porque as VMs estão localizadas no diretório home do utilizador atual): /bin/bash xxxxx.sh my-virtual-machine-name
  • Instale o Sistema Operativo Windows (Suporta W7 e W10)

Executar script a partir do interior da VM

  • Mova o script batch (xxxx.ps1) para o convidado recém-instalado.

  • Execute o script batch no interior do convidado. Lembre-se de que a maioria das definições modificadas são revertidas após cada reinicialização. Portanto, faça-o executar no arranque, se necessário.

  • A partir da versão 0.1.4, algumas definições aplicadas exigem uma reinicialização. Execute o script batch uma vez; o convidado será reiniciado. Em seguida, execute o script novamente para finalizar a configuração.

  • Antes de aplicar o script batch no interior do convidado, desative o UAC (necessita reinicialização), caso contrário não conseguirá modificar o registo com o script.

  • Para utilizadores do Windows 10: execute o script PS como administrador (clique direito em cmd.exe -> executar como administrador, navegue até ao script PS e execute).

  • Se aplicado corretamente, uma execução do Pafish resultará nisto (não é necessário modificar o Virtualbox).

  • Note que este script faz outras coisas não cobertas pelo Pafish (por exemplo, artefactos do W10)

alt text

Notas

  • Quando o script antivmdetect não encontra valores adequados para usar, comenta essas definições no script recém-criado com um "#". Estas necessitam de revisão manual, pois podem ter impacto no que é exibido na VM.

Histórico de Versões

  • 0.1.9:
    Compatível com Python3
    Primeira tentativa de extrair o disco correto, que tem sido fonte de dores de cabeça para muitos. (Issue #35 (e algumas outras issues antigas), obrigado @oaustin)
    Melhorias no tratamento de strings no script shell (Issue #35 e #36 e PR #44, obrigado @oaustin, @dashjuvi e @corownik)
    Adicionado um link para um recurso DSDT online (Issue #37, obrigado @MasterCATZ)
    Atualizado o README para tornar as instruções de instalação mais claras, obrigado @jorants (issue #38)
    Verificar se o dump DSDT foi realmente criado, obrigado @nov3mb3r (Issue: #42)
    Adicionado um aviso de licença, obrigado @obilodeau (issue #43)
    Limpeza de código: removido suporte a discos RAID por falta de acesso a hardware de servidor... e muitas outras pequenas melhorias

  • 0.1.8:
    Melhorado suporte para Windows 10
    Correção de markup fundida de @bryant1410 (PR #14)
    Resolvido um problema para utilizadores de macOS + VBox/VMWare Fusion ao criar os templates.
    Criar o template a partir de uma máquina virtual não é a melhor forma, independentemente... (issue #12 e possivelmente #15)

  • 0.1.7:
    Windows 10 agora suportado (feedback bem-vindo)
    Vários novos artefactos "corrigidos" para instalações W10
    Nova dependência: mesa-utils
    Correção de bug fundida de @Fullmetal5 (#10)
    Várias correções de código diversas
    READme atualizado

  • 0.1.6:
    Adicionado um pop-up após a segunda execução, para tornar mais claro que está pronto
    Adicionada uma função que cria algumas instâncias do notepad. Esta funcionalidade será alargada em versões futuras
    Refeita a função RandomDate, obrigado a @Antelox por me alertar para o problema com a antiga (#8)
    O Acpidump fornecido com versões antigas do Ubuntu não suporta a opção "-s". Isto é agora tratado com uma mensagem de erro. Obrigado a @Antelox por esta issue (#7)
    Devmanview.exe não era removido após a segunda execução, corrigido

  • 0.1.5:
    Adicionado suporte para associar e desassociar (desativado por predefinição) extensões de ficheiro. Referência: https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
    Adicionado suporte para buffer de clipboard fornecido pelo utilizador. Se não estiver presente, será gerada uma string aleatória. Preencha o ficheiro com Honeytokens à sua escolha
    Removido suporte a XP
    Convertidas as secções do script batch para Powershell. Mais lógica movida para o script convidado; em suma, há menos razão para criar/regenerar o template frequentemente, pois mais itens são aleatorizados no convidado. Adicionada uma função que aleatoriza a imagem de fundo do ambiente de trabalho Adicionada uma função que cria documentos de "todo o tipo" no convidado Adicionada uma função que cria documentos de "todo o tipo" no convidado e os move para o lixo Aleatorização do DigitalProductId em mais duas localizações: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId. Usar Paravirtualization Interface: None (verificado com VBox 5.1.4) – Verificação atualizada para refletir esta alteração. Presumo que esta alteração no VBox tenha surgido graças a TiTi87, obrigado!

/Mikael

Feedback é sempre bem-vindo! =)

Baixar ferramenta







  • 0.1.4:
    Corrigido um bug para utilizadores de python-dmidecode 3.10.13-3, este foi todo meu...
    Adicionada uma função que aleatoriza o VolumeID (novo pré-requisito: VolumeID.exe). Esta informação é, por exemplo, recolhida pelo Rovnix
    Adicionada uma função que aleatoriza o nome de utilizador e nome de computador/anfitrião (novos pré-requisitos: listas de nomes de utilizador e computador)
    Primeira tentativa de adicionar informação ao buffer da clipboard, ideia (comando) veio de um tweet de @shanselman. Será melhorado na próxima versão
    READme atualizado: novas dependências e novas funcionalidades que requerem reinicialização

  • 0.1.3:
    Copiar e definir a string da marca da CPU.
    Verificar se um dispositivo de áudio está associado ao convidado. Referência: http://www.joesecurity.org/reports/report-61f847bcb69d0fe86ad7a4ba3f057be5.html
    Verificar arquitetura do SO vs binário DevManView.
    Aleatorização do ProductId em mais duas localizações:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId.
    Limpar a chave de produto do Windows do registo (para evitar que alguém a roube...).
    Editar o DigitalProductId (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId) para corresponder ao novo ProductId.

  • 0.1.2:
    Verificar se a interface de paravirtualização Legacy está a ser utilizada (o uso da interface Legacy mitigará a deteção "cpuid feature").

  • 0.1.1:
    Verificar contagem de CPUs (Menos de 2 == alerta).
    Verificar tamanho de memória (Menos de 2GB == alerta).
    Verificar se o IP/intervalo IP predefinido está a ser utilizado para vboxnet0 (pode ignorar a notificação se não o utilizar).
    Aleatorização do ProductId.
    Merge do PR #3 de r-sierra (Obrigado pela ajuda!).
    Corrigido um bug no AcpiCreatorId (Obrigado @Nadacsc por me reportar isso!).
    Corrigido um bug na interpretação do DmiBIOSReleaseDate.
    Corrigido um bug no DmiBIOSReleaseDate, para lidar tanto com a variante "predefinida" mal escrita como com a correta (Obrigado @WanpengQian por me reportar isso!).
    A inclusão do DevManView não funcionou como esperado; deve estar corrigida nesta versão.
    Suporte para controlador SATA também (anteriormente apenas as definições IDE eram modificadas)
    READme atualizado

  • 0.1.0:
    Resolvida a deteção WMI tornada famosa pela HT. Adicionado
    DevManView.exe (à sua escolha de arquitetura) aos pré-requisitos.

  • < 0.1.0 Nenhum histórico de versão mantido antes disto, é preciso começar por algum lado, suponho.