Побег из-под vm ware


Атака через back door


Для управления виртуальной машиной многие эмуляторы используют специальный (и, по обыкновению, недокументированный) back door механизм вроде того, что есть в soft-ice (см. INT 03h в Interrupt List'е Ральфа Брауна). Virtual PC использует для той же цели инвалидные инструкции процессора (например, 0Fh3Fh 07h 0Bh), а VM Ware "магический" порт ввода/вывода.

 

Рисунок 15 back-door интерфейс – мощное оружие, бьющие точно в цель

 

Остановимся на VM Ware как на самом популярном эмуляторе. Чтобы передать back door команду на выполнение, необходимо выполнить следующие действия:

 

q       в регистр EAX занести магическое число 564D5868h ('VMXh' в ASCII-представлении);

q       в регистр DX занести магическое число 5658h (номер порта, 'VX' в ASCII);

q       в регистр CX занести номер команды, а в регистр EBX ее параметры;

q       выполнить команду IN EAX, DX (or OUT DX, EAX);

q       если программа исполняется не под VM Ware (или VM Ware был предварительно пропатчен) на прикладном уровне защищенного режима возникнет исключение типа "нарушение доступа";

q       при выполнении под VM Ware регистр EBX будет содержать магическое число 564D5868h ('VMXh' в ASCII-представлении), а в остальных регистрах — возвращенные данные (если они есть);

 

VM Ware поддерживает большое количество самых различных команд, подробно исследованных Ken'ом Kato и описанных в его статье "VMware's back" (http://chitchat.at.infoseek.co.jp/vmware/backdoor.html). Здесь можно найти и установку даты/времени, и работу с буфером обмена и даже механизм удаленного вызова процедур (RPC), но… потенциально опасных команд среди них нет. Вирус не может просто взять и вырываться из виртуальной машины! Или… все-таки сможет? Свыше двух десятков команд еще остаются неисследованными и неясно зачем они и почему.


- Начало -  - Назад -  - Вперед -