Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Майкл_Сикорски,_Эндрю_Хониг_Вскрытие_покажет!_Практический_анализ.pdf
Скачиваний:
18
Добавлен:
19.04.2024
Размер:
17.17 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

17

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Методы противодействия виртуальным машинам

Иногда для защиты от анализа авторы вредоносного ПО применяют методы противодействия виртуальным машинам (или анти-ВМ). С их помощью вредоносные программы пытаются определить, выполняются ли они внутри виртуальной машины, и в случае положительного ответа могут поменять свое поведение или просто отказаться работать. Естественно, это создает проблемы для аналитика безопасности.

Методики анти-ВМ чаще всего можно встретить во вредоносных программах, которые распространяются в больших масштабах: в ботах, запугивающем или шпионском ПО. В основном из-за того, что приманки часто работают в виртуальных машинах, а также потому, что этот тип зараженного кода нацелен на компьютеры среднестатистических пользователей, которые редко используют ВМ.

Популярность вредоносного ПО с поддержкой анти-ВМ в последнее время начала снижаться: это можно объяснить возросшим использованием виртуализации. Раньше злоумышленники применяли приемы анти-ВМ, потому что, по их мнению, только аналитики безопасности стали бы запускать их программы в виртуальных машинах. Однако в наши дни и администраторы, и обычные пользователи часто применяют виртуальные машины, чтобы облегчить переустановку системы (виртуальные машины позволяют легко вернуться к предыдущему снимку). Авторы вредоносного ПО начинают понимать, что виртуальная система тоже может быть ценной мишенью для атаки. По мере распространения виртуализации методики противодействия ей будут все менее популярными.

Поскольку приемы анти-ВМ в основном нацелены против VMware, далее мы сосредоточимся именно на этом программном продукте. Будут рассмотрены самые популярные методы, а также способы защиты от них, основанные на изменении некоторых настроек, удалении ПО и редактировании исполняемого файла.

Признаки присутствия VMware

Среда VMware оставляет множество следов в системе, особенно после установки VMware Tools. Эти следы присутствуют в файловой системе, реестре и списке процессов, чем может воспользоваться злоумышленник.

Например, на рис. 17.1 показан список процессов в стандартном образе VMware после установки VMware Tools. Обратите внимание на три процесса: VMwareService.exe,

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Глава 17. Методы противодействия виртуальным машинам  401

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

VMwareTray.exe и VMwareUser.exe. Вредонос может легко их выявить, выполнив поиск по строке VMware.

Рис. 17.1. Список процессов в образе VMware с запущенным пакетом VMware Tools

Процесс VMwareService.exe представляет собой службу VMware Tools Service и является потомком процесса services.exe. Его можно найти в реестре среди установленных в системе служб или в списке, который можно получить с помощью следующей команды:

C:\> net start | findstr VMware

VMware Physical Disk Helper Service

VMware Tools Service

Следы можно найти как в реестре, так и в установочном каталоге C:\Program Files\VMware\VMware Tools. Быстрый поиск в реестре виртуальной машины по слову VMware вернет ключи, представленные ниже. Они содержат сведения о виртуальном жестком диске, адаптерах и мыши.

[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\ Logical Unit Id 0]

"Identifier"="VMware Virtual IDE Hard Drive" "Type"="DiskPeripheral"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reinstall\0000] "DeviceDesc"="VMware Accelerated AMD PCNet Adapter"

"DisplayName"="VMware Accelerated AMD PCNet Adapter"

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

w

 

 

to

 

 

402  Часть V  •  Противодействие обратному проектированию

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

"Mfg"="VMware, Inc."

"ProviderName"="VMware, Inc."

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96F-E325-11CE-BFC1- 08002BE10318}\0000]

"LocationInformationOverride"="plugged into PS/2 mouse port" "InfPath"="oem13.inf"

"InfSection"="VMMouse" "ProviderName"="VMware, Inc.

Как уже говорилось в главе 2, есть несколько способов подключения виртуальной машины к сети, и все они позволяют использовать отдельный виртуальный сетевой интерфейс (NIC). Поскольку программе VMware пригодится виртуализировать NIC, она должна создать MAC-адрес для виртуальной машины, что, в зависимости от конфигурации, может выдать факт ее использования.

Первые три байта MAC-адреса обычно принадлежат изготовителю адаптера, и значение 00:0C:29 закреплено за VMware. Остальные байты часто меняются от версии к версии, но автору вредоносного ПО достаточно проверить только первые три.

Вредонос может обнаружить VMware и по другому оборудованию, такому как материнская плата. Если вы видите в зараженном коде проверку версии аппаратного обеспечения, это может быть попыткой обнаружения VMware. Ищите код, который проверяет MAC-адреса и версии устройств, и модифицируйте его таким образом, чтобы избежать этих проверок.

От самых базовых признаков наличия VMware можно избавиться, если удалить из системы VMware Tools или же остановить службу VMware Tools Service, используя следующую команду:

net stop "VMware Tools Service"

Вы также можете предотвратить поиск признаков. Например, если во вредоносном коде содержатся строки, связанные с VMware (такие как net start | findstr VMware, VMMouse, VMwareTray.exe или VMware Virtual IDE Hard Drive), можете быть уверены, что он пытается обнаружить виртуальную машину. IDA Pro позволяет легко найти такие участки, используя ссылки на строки, и избежать обнаружения, обеспечив тем самым корректную работу вредоносной программы.

Защита от поиска следов VMware

Противодействие вредоносному ПО, которое ищет признаки наличия VMware, часто представляет собой простую двухэтапную процедуру: обнаружение проверки и ее модификация. Представьте, что при сканировании файла vmt.exe с помощью утилиты strings была найдена строка "VMwareTray.exe" и перекрестная ссылка на нее. Следуя по этой ссылке, мы переходим к адресу 0x401098, как показано в дизассемблированном коде в листинге 17.1 .

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Глава 17. Методы противодействия виртуальным машинам  403

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Листинг 17.1. Дизассемблированный фрагмент vmt.exe содержит код для выявления следов VMware

0040102D

call

ds:CreateToolhelp32Snapshot

00401033

lea ecx,

[ebp+processentry32]

00401039

mov ebx,

eax

0040103B

push ecx

; lppe

0040103C

push ebx

; hSnapshot

0040103D

mov [ebp+processentry32.dwSize], 22Ch

00401047

call ds:Process32FirstW

0040104D

mov esi,

ds:WideCharToMultiByte

00401053

mov edi,

ds:strncmp

00401059

lea esp,

[esp+0]

00401060

loc_401060:

 

; CODE XREF: sub_401000+B7j

00401060

push

0

; lpUsedDefaultChar

00401062

push

0

; lpDefaultChar

00401064

push

104h

; cbMultiByte

00401069

lea edx,

[ebp+Str1]

0040106F

push edx

; lpMultiByteStr

00401070

push 0FFFFFFFFh ; cchWideChar

00401072

lea eax,

[ebp+processentry32.szExeFile]

00401078

push eax

; lpWideCharStr

00401079

push

0

; dwFlags

0040107B

push

3

; CodePage

0040107D

call

esi

; WideCharToMultiByte

0040107F

lea eax,

[ebp+Str1]

00401085

lea edx,

[eax+1]

00401088

loc_401088:

 

; CODE XREF: sub_401000+8Dj

00401088

mov cl, [eax]

0040108A

inc eax

 

0040108B

test cl,

cl

0040108D

jnz short loc_401088

0040108F

sub eax,

edx

00401091

push eax

; MaxCount

00401092

lea ecx,

[ebp+Str1]

00401098

push offset Str2 ; "VMwareTray.exe"

0040109D

push ecx

; Str1

0040109E

call edi

; strncmp

004010A0

add esp,

0Ch

004010A3

test eax, eax

004010A5

jz short

loc_4010C0

004010A7

lea edx,

[ebp+processentry32]

004010AD

push edx

; lppe

004010AE

push ebx

; hSnapshot

004010AF

call ds:Process32NextW

004010B5

test eax, eax

004010B7

jnz short loc_401060

...

 

 

 

004010C0

loc_4010C0:

 

; CODE XREF: sub_401000+A5j

004010C0

push 0

; Code

004010C2

call ds:exit