
DLL Injection tool to unlock guest VMs
V M I n j e c t o r
(c) 2012 por Marco Batista
<marco.batista [at] secforce.com>
Licenciado sob GPLv3 (veja o arquivo LICENSE)
O VMInjector é uma ferramenta projetada para contornar as telas de autenticação de login de sistemas operacionais principais executados no VMware Workstation/Player, utilizando manipulação direta de memória.
O VMInjector é uma ferramenta que manipula a memória de convidados do VMware para contornar a tela de autenticação do sistema operacional. O VMware gerencia os recursos alocados para sistemas operacionais convidados, incluindo a memória RAM. O VMInjector injeta uma biblioteca DLL no processo do VMware para obter acesso aos recursos mapeados. A biblioteca DLL funciona analisando o espaço de memória pertencente ao processo do VMware e localizando o arquivo de RAM mapeado em memória, que corresponde à imagem da RAM do convidado. Ao manipular o arquivo de RAM alocado e corrigir a função responsável pela autenticação, um invasor obtém acesso não autorizado ao host virtual subjacente. Atualmente, o VMInjector consegue contornar sistemas operacionais Windows, Ubuntu e Mac OS X bloqueados. A correção na memória não é persistente, e reiniciar a máquina virtual convidada restaurará a funcionalidade normal da senha.
O VMInjector pode ser utilizado se a senha de um host virtual for esquecida e precisar ser redefinida. Mais comumente, esta ferramenta pode ser usada durante atividades de teste de penetração, quando o acesso a um host VMware é obtido e o atacante está procurando obter acesso adicional aos convidados em execução nesse host.
Máquina Windows (com acesso administrativo); Edição VMware Workstation ou Player; Uma VM convidada bloqueada;
O VMInjector consiste em 2 partes: O aplicativo de injeção de DLL (script Python ou executável convertido fornecido) Biblioteca DLL (x86 e x64)
A ferramenta suporta arquiteturas x86 e x64, fornecendo ambas as DLLs. Pode-se usar seu próprio injetor de DLL para selecionar a máquina virtual convidada em execução no host.
Para executar a ferramenta, execute o executável VMInjector (32 ou 64) fornecido a partir da linha de comando. O VMware executa cada convidado em um processo diferente. O VMInjector precisa ser apontado para o processo que executa o convidado que requer desbloqueio. Uma vez que o usuário escolhe um processo, ele injetará a DLL no alvo escolhido. Após a injeção da DLL, o usuário precisará especificar o SO, para que a correção na memória possa ser realizada.
Esta ferramenta é apenas para fins legais. O código é lançado sob a licença GPLv3.
Gostaria de agradecer a Michael Ligh por sua valiosa pesquisa sobre injeção de shellcode em máquinas virtuais convidadas em 2006.
Gostaria também de agradecer a Carsten Maartmann-Moe por seu trabalho no Inception, uma ferramenta que pode desbloquear máquinas Windows, Ubuntu e OS X bloqueadas usando o truque IEEE 1394 FireWire. Isso foi demonstrado pela primeira vez pela ferramenta (agora obsoleta) winlockpwn.