Vmware 的后门 (1) – [技术]
Vmware 的后门
后门简介
Vmware 后门是 vmware 和 vmware tools 通信的一个接口。例如,vmware-checkvm 程序就是利用这个后门检测自己是否运行在 vmware 里。
这个后门开在 IO 端口 0x5658。利用这个后门时,必需:
l EAX = 0x564D5868 ( “VMXh” )
l EBX 为参数,一般不用。
l ECX 低 16 位为功能号。其实是一个函数数组的索引。Vmware 调用对应的函数处理后门请求。 这个函数数组共有 36 个元素,但某些没有定义。ECX 的高 16 位为功能参数。
l EDX = 0x5658 ( “VX” ),为 IO 端口号。
通过读端口 (in) 命令调用后门。
后门详细描述
下表列出后门的各个功能。
0
未定义
1
getMhz 得到 CPU 速率
2
APM 函数族
3
getDiskGeo
4
getPtrLocation
5
setPtrLocation
6
得到宿主机剪贴板数据长度
7
读宿主机剪贴板数据
8
设置宿主机剪贴板数据长度
9
向宿主机剪贴板写数据
10
得到 vmware 版本
11
取设备信息
12
连接或断开设备
13
取 GUI 配置信息
14
设置 GUI 配置信息
15
取宿主机屏幕分辨率
16
未定义
17
未定义
18
osNotFound, vmware 提示插入引导盘
19
GetBiosUUID
20
取虚拟机内存大小
21
未定义
22
OS2 系统用到的一个函数
23
getTime,取宿主机时间
24
stopCatchup
25
未定义
26
未定义
27
未定义
28
initScsiIoprom
29
未定义
30
Message,通道函数族
31
rsvd0
32
rsvd1
33
rsvd2
34
ACPID 函数
35
未定义
应用
vmcall.s
vmcall.s 为 vm.c 提供 vmcall(uint32_t out[4],int cmd,uint32_t param) 函数,实现调用后门功能
.text
.align 2
.globl vmcall
.type vmcall,@function
vmcall:
pushl %ebp
movl %esp, %ebp
movl 0x8(%ebp),%eax
push %edi
push %ebx
push %ecx
push %edx
mov %eax,%edi
mov $0x564d5868,%edx
mov %edx,%eax
mov 0xc(%ebp),%edx
mov 0x10(%ebp),%ebx
mov %edx,%ecx
mov $0x5658,%edx
in (%dx),%eax
mov %eax,0x0(%edi)
mov %ebx,0x4(%edi)
mov %ecx,0x8(%edi)
pop %edx
暂无评论内容