Побег из VM Ware крис касперски ака мыщъх Хакер, номер #087, стр. 087-072-3 Backdoor Для управления виртуальной машиной многие эмуляторы используют специальный (и по обыкновению недокументированный) back door-механизм вроде того, что есть в soft-ice (см. INT 03h в Interrupt List'е Ральфа Брауна). Virtual PC использует для той же цели инвалидные инструкции процессора, например 0Fh 3Fh 07h 0Bh, а VM Ware - "магический" порт ввода/вывода. Остановимся на VM Ware как на самом популярном эмуляторе. Чтобы передать back door-команду на выполнение, необходимо выполнить следующие действия: * в регистр EAX занести магическое число 564D5868h ('VMXh' в ASCII-представлении); * в регистр DX занести магическое число 5658h (номер порта, 'VX' в ASCII); * в регистр CX занести номер команды, а в регистр EBX ее параметры; * выполнить команду IN EAX, DX (or OUT DX, EAX); * если программа исполняется не под VM Ware (или VM Ware был предварительно пропатчен) на прикладном уровне защищенного режима возникнет исключение типа "нарушение доступа"; * при выполнении под VM Ware регистр EBX будет содержать магическое число 564D5868h ('VMXh' в ASCII-представлении), а в остальных регистрах — возвращенные данные (если они есть); VM Ware поддерживает большое количество самых различных команд, подробно исследованных Ken'ом Kato и описанных в его статье VMware's back (http://chitchat.at.infoseek.co.jp/vmware/backdoor.html). Здесь можно найти и установку даты/времени, и работу с буфером обмена, и даже механизм удаленного вызова процедур (RPC), но потенциально опасных команд среди них нет. Вирус не может просто взять и вырваться из виртуальной машины! Или… все-таки сможет? Свыше двух десятков команд еще остаются неисследованными и неясно, зачем они и почему. Никто не знает, какие возможности нас ждут… Из всех команд, исследованных на сегодняшний день, самой опасной была и остается 0Ch (Connect/disconnect a device), отвечающая за подключение/отключение IDE-, SCSI- и USB-устройств. У вируса существует шикарная возможность подключить физический диск основной системы и нагадить на него по полной программе (VM Ware позволяет создавать виртуальные диски на основе физических). Еще вирус может дотянуться до "USB-свистка" и заразить все имеющиеся на нем исполняемые файлы, которые кто-нибудь обязательно запустит на основной машине. Короче, возможностей много. Для защиты рекомендуется пропатчить VM Ware, изменив магический номер на что-то еще. Неофициальная заплатка лежит здесь: http://honeynet.rstack.org/tools/vmpatch.c, официальных пока нет и, по-видимому, в обозримом будущем и не предвидится. Но даже залатанная система по-прежнему остается уязвимой, поскольку подобрать нужные магические числа можно и брутфорсом, так что вариантов не так уж и много — 16-битный номер порта, плюс 32-битный "пирожок" дают менее 48 значимых битов! "Менее" — это за вычетом стандартных номеров портов, которые нельзя использовать. На врезке программа, демонстрирующая взаимодействия с виртуальной машиной через бэкдор-интерфейс и определяющая версию VM Ware (на экран она не выводится). |