
Inception est un outil de manipulation physique de la mémoire et de piratage exploitant le DMA basé sur PCI. L'outil peut attaquer via FireWire, Thunderbolt, ExpressCard, PC Card et toute autre interface PCI/PCIe.
Note : Cet outil n'est plus en développement actif, veuillez consulter PCILeech à la place.
Inception est un outil de manipulation et de piratage de la mémoire physique exploitant le DMA basé sur PCI. L'outil peut attaquer via FireWire, Thunderbolt, ExpressCard, PC Card et toute autre interface PCI/PCIe HW.
Inception vise à fournir un moyen relativement rapide, stable, simple et extensible de réaliser des piratages mémoire intrusifs et non intrusifs sur des ordinateurs en direct utilisant le DMA.
Les modules d'Inception fonctionnent comme suit : en présentant un répertoire d'unité Serial Bus Protocol 2 (SBP-2) à la machine victime via une interface IEEE1394 FireWire, le système d'exploitation victime pense qu'un périphérique SBP-2 s'est connecté au port FireWire. Étant donné que les périphériques SBP-2 utilisent l'accès direct à la mémoire (DMA) pour des transferts de données volumineux et rapides (par exemple, disques durs FireWire et caméscopes numériques), la victime abaisse ses défenses et active le DMA pour le périphérique. L'outil a désormais un accès complet en lecture/écriture aux 4 Go inférieurs de la RAM de la victime.
Une fois le DMA accordé, l'outil parcourt les pages mémoire disponibles à la recherche de signatures à certains offsets dans le code du système d'exploitation. Une fois trouvées, l'outil manipule ce code. Par exemple, dans le module unlock, l'outil court-circuite le module d'authentification par mot de passe du système d'exploitation qui est déclenché si un mot de passe incorrect est saisi.
Après avoir exécuté ce module, vous devriez pouvoir vous connecter à la machine victime en utilisant n'importe quel mot de passe.
Une analogie pour cette opération est de planter une idée dans la mémoire de la machine : l'idée que chaque mot de passe est correct. En d'autres termes, l'équivalent d'une [inception mémoire] [1].
Inception est gratuit comme une bière et c'est un projet personnel.
Les experts en criminalistique, les gouvernements et les agences à acronymes de trois lettres utilisent déjà [des outils similaires] [2]. Donc si vous êtes un dissident ou si vous faites face à un régime oppressif, cet outil illustre pourquoi la SÉCURITÉ OPÉRATIONNELLE (OPSEC) est importante. Ne laissez jamais votre ordinateur portable hors de vue.
[OS X > 10.7.2] [6] et [Windows > 8.1] [7] désactivent le DMA FireWire lorsque l'utilisateur a verrouillé le système d'exploitation et empêchent ainsi inception. L'outil fonctionnera toujours tant qu'un utilisateur est connecté. Cependant, c'est un scénario d'attaque moins probable dans la réalité.
De plus, [OS X Mavericks > 10.8.2 sur Ivy Bridge (>= Macs 2012)] [8] ont activé VT-D, bloquant efficacement les requêtes DMA et contrecarrant tous les modules inception même lorsque l'utilisateur est connecté. Recherchez les entrées vtd[0] fault dans votre journal/console.
Bien que ces deux mises en garde réduiront progressivement le nombre de scénarios où cet outil est utile, en mars 2015, [70 % des machines sont encore vulnérables] [9].
L'outil utilise la bibliothèque libforensic1394 gracieusement fournie par Freddie Witherden sous licence LGPL.
Inception nécessite :
Linux est actuellement recommandé côté attaquant en raison des interfaces FireWire boguées sur OS X. Notez que la connexion directe ThunderBolt à ThunderBolt ne fonctionne pas, vous avez besoin d'un adaptateur FireWire. Les résultats peuvent varier si vous tentez d'utiliser Thunderbolt sous Linux.
Sur les distributions basées sur Debian, les commandes d'installation peuvent être résumées comme suit (appliquez sudo si nécessaire si vous n'êtes pas root) :
apt-get install git cmake g++ python3 python3-pip
Sur OS X, vous pouvez installer les prérequis de l'outil avec [homebrew] [4] :
brew install git cmake python3
Après avoir installé les prérequis, téléchargez et installez 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
Le script d'installation devrait pouvoir installer les dépendances si vous avez pip installé.
Tapez simplement :
incept [nom du module]
Pour une description plus complète et à jour, veuillez exécuter :
incept -h
ou consultez la [page d'accueil de l'outil] [5].
Depuis la version 0.4.0, Inception a été modularisé. Les modules actuels et leurs fonctionnalités sont décrits ci-dessous.
Pour des options détaillées sur l'utilisation, exécutez :
incept [nom du module] -h
Le module unlock peut déverrouiller (n'importe quel mot de passe accepté) et élever les privilèges en Administrateur/root sur presque* toute machine allumée à laquelle vous avez un accès physique. Le module est principalement conçu pour faire ses miracles sur les ordinateurs qui utilisent le chiffrement complet du disque tel que BitLocker, FileVault, TrueCrypt ou Pointsec. Il existe de nombreuses autres (et meilleures) façons de pirater une machine qui n'utilise pas le chiffrement.
Le module unlock est stable sur les machines disposant de 4 Gio de mémoire principale ou moins. Si votre cible en a plus, vous devez avoir de la chance pour trouver les signatures mappées sur une trame de page mémoire physique que l'outil peut atteindre.
Dans cette version, il peut déverrouiller les systèmes d'exploitation x86 et x64 suivants :