
Inception é uma ferramenta de manipulação física de memória e hacking que explora DMA baseado em PCI. A ferramenta pode atacar através de FireWire, Thunderbolt, ExpressCard, PC Card e qualquer outra interface PCI/PCIe.
Nota: esta ferramenta não está mais em desenvolvimento ativo; em vez disso, veja o PCILeech.
O Inception é uma ferramenta de manipulação de memória física e hacking que explora DMA baseado em PCI. A ferramenta pode atacar por meio de interfaces FireWire, Thunderbolt, ExpressCard, PC Card e qualquer outra interface de hardware PCI/PCIe.
O Inception tem como objetivo fornecer uma maneira relativamente rápida, estável, fácil e extensível de executar ataques de memória intrusivos e não intrusivos contra computadores ativos usando DMA.
Os módulos do Inception funcionam da seguinte forma: ao apresentar um diretório de unidade do Serial Bus Protocol 2 (SBP-2) à máquina vítima por meio de uma interface IEEE1394 FireWire, o sistema operacional da vítima pensa que um dispositivo SBP-2 foi conectado à porta FireWire. Como os dispositivos SBP-2 utilizam Direct Memory Access (DMA) para transferências rápidas e grandes de dados em massa (por exemplo, discos rígidos FireWire e câmeras digitais), a vítima baixa a guarda e ativa o DMA para o dispositivo. A ferramenta agora tem acesso total de leitura/escrita aos 4 GB inferiores da RAM da vítima.
Uma vez que o DMA é concedido, a ferramenta procura, nas páginas de memória disponíveis, assinaturas em determinados offsets no código do sistema operacional. Quando encontradas, a ferramenta manipula esse código. Por exemplo, no módulo unlock, a ferramenta contorna o módulo de autenticação de senha do sistema operacional que é acionado quando uma senha incorreta é inserida.
Depois de executar esse módulo, você deve conseguir entrar na máquina da vítima usando qualquer senha.
Uma analogia para essa operação é plantar uma ideia na memória da máquina; a ideia de que toda senha está correta. Em outras palavras, o equivalente a uma [inception de memória] [1].
O Inception é de graça, como cerveja, e é um projeto paralelo meu.
Os especialistas forenses do mundo, governos e agências de siglas de três letras já estão usando [ferramentas semelhantes] [2]. Portanto, se você é um dissidente ou enfrenta um regime opressor, esta ferramenta ilustra por que OPSEC é importante. Nunca deixe seu laptop fora de vista.
[OS X > 10.7.2] [6] e [Windows > 8.1] [7] desativam o DMA FireWire quando o usuário bloqueou o sistema operacional e, assim, impedem o Inception. A ferramenta ainda funcionará enquanto um usuário estiver conectado. No entanto, esse é um cenário de ataque menos provável na vida real.
Além disso, [OS X Mavericks > 10.8.2 em Ivy Bridge (Macs >= 2012)] [8] habilitaram o VT-D, bloqueando efetivamente as solicitações de DMA e frustrando todos os módulos do Inception mesmo quando o usuário está conectado. Procure por entradas vtd[0] fault no seu log/console.
Embora essas duas ressalvas reduzam gradualmente o número de cenários em que esta ferramenta é útil, em março de 2015 [70% das máquinas ainda estão vulneráveis] [9].
A ferramenta utiliza a biblioteca libforensic1394, cortesia de Freddie Witherden, sob uma licença LGPL.
O Inception requer:
O Linux é atualmente recomendado no lado atacante devido às interfaces FireWire problemáticas no OS X. Observe que Thunderbolt direto para Thunderbolt não funciona; você precisa de um adaptador FireWire. Os resultados podem variar ao tentar usar Thunderbolt no Linux.
Em distribuições baseadas em Debian, os comandos de instalação podem ser resumidos como (aplique sudo conforme necessário se você não for root):
apt-get install git cmake g++ python3 python3-pip
No OS X, você pode instalar os requisitos da ferramenta com o [homebrew] [4]:
brew install git cmake python3
Após instalar os requisitos, baixe e instale o libforensic1394:
wget https://freddie.witherden.org/tools/libforensic1394/releases/libforensic1394-0.2.tar.gz -O - | tar xz
cd libforensic1394-0.2
cmake CMakeLists.txt
make install
cd python
python3 setup.py install
git clone git://github.com/carmaa/inception.git
cd inception
./setup.py install
O script de configuração deve ser capaz de instalar as dependências se você tiver o pip instalado.
Basta digitar:
incept [module name]
Para uma descrição mais completa e atualizada, execute:
incept -h
ou consulte a [página inicial da ferramenta] [5].
A partir da versão 0.4.0, o Inception foi modularizado. Os módulos atuais e suas funcionalidades estão descritos abaixo.
Para opções detalhadas de uso, execute:
incept [module name] -h
O módulo unlock pode desbloquear (qualquer senha é aceita) e escalar privilégios para Administrador/root em quase* qualquer máquina ligada à qual você tenha acesso físico. O módulo foi criado principalmente para fazer sua mágica em computadores que utilizam criptografia de disco completa, como BitLocker, FileVault, TrueCrypt ou Pointsec. Existem muitas outras (e melhores) maneiras de invadir uma máquina que não usa criptografia.
O módulo unlock é estável em máquinas com 4 GiB de memória principal ou menos. Se o alvo tiver mais do que isso, você precisará de sorte para encontrar as assinaturas mapeadas em um quadro de página de memória física que a ferramenta possa alcançar.
Nesta versão, ele é capaz de desbloquear os seguintes sistemas operacionais x86 e x64: