
Inception — это инструмент для физического манипулирования памятью и взлома, эксплуатирующий DMA на основе PCI. Инструмент может атаковать через FireWire, Thunderbolt, ExpressCard, PC Card и любые другие интерфейсы PCI/PCIe.
Note: Этот инструмент больше не находится в активной разработке, вместо него смотрите PCILeech.
Inception — это инструмент для манипуляции физической памятью и взлома, использующий DMA на основе PCI. Инструмент может атаковать через FireWire, Thunderbolt, ExpressCard, PC Card и любые другие аппаратные интерфейсы PCI/PCIe.
Inception стремится предоставить относительно быстрый, стабильный, простой и расширяемый способ выполнения интрузивных и неинтрузивных манипуляций с памятью живых компьютеров с использованием DMA.
Модули Inception работают следующим образом: предъявляя машине-жертве unit directory протокола Serial Bus Protocol 2 (SBP-2) через интерфейс IEEE1394 FireWire, инструмент заставляет операционную систему жертвы думать, что к порту FireWire подключено устройство SBP-2. Поскольку устройства SBP-2 используют прямой доступ к памяти (DMA) для быстрой передачи больших объёмов данных (например, FireWire-диски и цифровые видеокамеры), жертва опускает щиты и включает DMA для устройства. Теперь инструмент получает полный доступ на чтение и запись к нижним 4 ГБ ОЗУ жертвы.
Как только DMA предоставлен, инструмент ищет в доступных страницах памяти сигнатуры по определённым смещениям в коде операционной системы. Когда они найдены, инструмент модифицирует этот код. Например, в модуле unlock инструмент закорачивает модуль аутентификации пароля операционной системы, который срабатывает при вводе неверного пароля.
После запуска этого модуля вы сможете войти в машину-жертву, используя любой пароль.
Аналогия этой операции — внедрение идеи в память машины; идеи, что любой пароль верен. Другими словами, эквивалент [внедрения в память] [1].
Inception бесплатен как пиво и является моим побочным проектом.
Мировые эксперты по криминалистике, правительства и агентства с трёхбуквенными аббревиатурами уже используют [подобные инструменты] [2]. Поэтому если вы диссидент или живёте при репрессивном режиме, этот инструмент наглядно показывает, почему важна OPSEC. Никогда не оставляйте свой ноутбук без присмотра.
[OS X > 10.7.2] [6] и [Windows > 8.1] [7] отключают FireWire DMA, когда пользователь заблокировал ОС, и тем самым предотвращают inception. Инструмент по-прежнему работает, пока пользователь вошёл в систему. Однако в реальной жизни это менее вероятный сценарий атаки.
Кроме того, [OS X Mavericks > 10.8.2 на Ivy Bridge (>= 2012 Macs)] [8] включает VT-D, что фактически блокирует запросы DMA и сводит на нет все модули inception, даже когда пользователь вошёл в систему. Ищите записи vtd[0] fault в вашем журнале/консоли.
Хотя эти два предостережения со временем сократят количество сценариев, где этот инструмент полезен, по состоянию на март 2015 года [70 % машин по-прежнему уязвимы] [9].
Инструмент использует библиотеку libforensic1394, предоставленную Фредди Уизерденом (Freddie Witherden), под лицензией LGPL.
Inception требует:
На стороне атакующего в настоящее время рекомендуется Linux из-за проблемных интерфейсов FireWire в OS X. Обратите внимание, что прямое соединение Thunderbolt-to-Thunderbolt не работает, нужен переходник FireWire. При попытке использовать Thunderbolt в Linux результаты могут отличаться.
В дистрибутивах на основе Debian команды установки можно свести к следующему (примените sudo, если вы не root):
apt-get install git cmake g++ python3 python3-pip
В OS X можно установить требования инструмента с помощью [homebrew] [4]:
brew install git cmake python3
После установки требований загрузите и установите 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
Скрипт установки должен автоматически установить зависимости, если у вас установлен pip.
Просто введите:
incept [module name]
Для более полного и актуального описания выполните:
incept -h
или посетите [домашнюю страницу инструмента] [5].
Начиная с версии 0.4.0 Inception был модуляризирован. Текущие модули и их функциональность описаны ниже.
Подробные параметры использования смотрите, выполнив:
incept [module name] -h
Модуль unlock может разблокировать (принимая любой пароль) и повышать привилегии до администратора/root на почти* любой включённой машине, к которой у вас есть физический доступ. Модуль в первую очередь предназначен для своей магии против компьютеров, использующих полное шифрование диска, таких как BitLocker, FileVault, TrueCrypt или Pointsec. Есть множество других (и лучших) способов взломать машину без шифрования.
Модуль unlock стабильно работает на машинах с 4 ГиБ основной памяти или меньше. Если на цели больше, вам понадобится удача, чтобы найти сигнатуры, отображённые на кадр физической страницы памяти, доступный инструменту.
В этой версии он может разблокировать следующие операционные системы x86 и x64:
| ОС | Версия | Разблокировка экрана входа | Повышение привилегий |
|---|---|---|---|
| Windows 8 | 8.1 | Да (1) | Да (1) |
| Windows 8 | 8.0 | Да | Да |
| Windows 7 | SP1 | Да | Да |
| Windows 7 | SP0 | Да | Да |
| Windows Vista | SP2 | Да | Да |
| Windows Vista | SP1 | Да | Да |
| Windows Vista | SP0 | Да | Да |
| Windows XP | SP3 | Да | Да |
| Windows XP | SP2 | Да | Да |
| Windows XP | SP1 | ||
| Windows XP | SP0 | ||
| Mac OS X | Mavericks | Да (1) | Да (1) |
| Mac OS X | Mountain Lion | Да (1) | Да (1) |
| Mac OS X | Lion | Да (1) | Да (1) |
| Mac OS X | Snow Leopard | Да | Да |
| Mac OS X | Leopard | ||
| Ubuntu | Saucy | Да | Да |
| Ubuntu | Raring | Да | Да |
| Ubuntu | Quantal | Да | Да |
| Ubuntu | Precise | Да | Да |
| Ubuntu | Oneiric | Да | Да |
| Ubuntu | Natty | Да | Да |
| Linux Mint | 13 | Да | Да |
| Linux Mint | 12 | Да | Да |
| Linux Mint | 12 | Да | Да |
(1): См. предостережения выше.