<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/2736

            參考:http://arxiv.org/pdf/1407.4923.pdf

            0x00 三星S voice


            三星s voice是類似apple siri以及google voice的一款語音助手軟件,通過此款軟件可以釋放雙手通過語音命令操作手機。執行如撥打電話、發送短信、拍照等功能。由此可見此軟件的權限是非常寬廣的。

            enter image description here

            App申請的權限如下:

            <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
            <uses-permission android:name="android.permission.READ_CALENDAR"/>
            <uses-permission android:name="android.permission.WRITE_CALENDAR"/>
            <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
            <uses-permission android:name="android.permission.CALL_PHONE"/>
            <uses-permission android:name="android.permission.INTERNET"/>
            <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
            <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
            <uses-permission android:name="android.permission.READ_CONTACTS"/>
            <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
            <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
            <uses-permission android:name="android.permission.READ_SMS"/>
            <uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>
            <uses-permission android:name="android.permission.RECEIVE_SMS"/>
            <uses-permission android:name="android.permission.RECORD_AUDIO"/>
            <uses-permission android:name="android.permission.SEND_SMS"/>
            <uses-permission android:name="android.permission.WRITE_SMS"/>
            <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
            <uses-permission android:name="android.permission.VIBRATE"/>
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
            <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"/>
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
            <uses-permission android:name="android.permission.BLUETOOTH"/>
            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
            <uses-permission android:name="android.permission.WAKE_LOCK"/>
            <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
            <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
            <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
            <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
            <uses-permission android:name="com.android.vending.BILLING"/>
            <uses-permission android:name="android.permission.GET_TASKS"/>
            <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
            <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
            <uses-permission android:name="com.sec.android.widgetapp.q1_penmemo.permission.READ"/>
            <uses-permission android:name="com.sec.android.widgetapp.q1_penmemo.permission.WRITE"/>
            <uses-permission android:name="com.sec.android.permission.READ_MEMO"/>
            <uses-permission android:name="com.sec.android.permission.WRITE_MEMO"/>
            <uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/>
            <uses-permission android:name="com.android.email.permission.READ_ATTACHMENT"/>
            <uses-permission android:name="com.sec.android.app.clockpackage.permission.READ_ALARM"/>
            <uses-permission android:name="com.sec.android.app.clockpackage.permission.WRITE_ALARM"/>
            <uses-permission android:name="com.sec.android.app.twdvfs.DVFS_BOOSTER_PERMISSION"/>
            <uses-permission android:name="android.Manifest.permission.DISABLE_KEYGUARD"/>
            <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
            <uses-permission android:name="com.infraware.provider.SNoteProvider.permission.READ"/>
            <uses-permission android:name="com.infraware.provider.SNoteProvider.permission.WRITE"/>
            <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
            <uses-permission android:name="android.permission.READ_CALL_LOG"/>
            <uses-permission android:name="com.sec.android.app.sns3.permission.SNS_FB_ACCESS_TOKEN"/>
            <uses-permission android:name="com.samsung.music.permission.READ_MUSIC_STORAGE"/>
            <uses-permission android:name="com.sec.android.daemonapp.ap.yonhapnews.permission.YONHAP_DAEMON_ACCESS_PROVIDER"/>
            <uses-permission android:name="com.sec.android.app.music.permission.READ_MUSICPROVIDER"/>
            

            0x01 Android permission


            應用在執行某項敏感操作時(例如發送短信)必須在程序安裝時就對此項權限進行申明

            參考:

            http://developer.android.com/guide/topics/manifest/uses-permission-element.html http://developer.android.com/guide/topics/manifest/manifest-intro.html#perms http://developer.android.com/reference/android/Manifest.permission.html

            enter image description here

            惡意軟件要獲取手機通訊錄中的聯系人信息就必須申請READ_CONTACTS 權限,讀取信必須申請READ_SMS ,發現短信要申請 SEND_SMS 權限。利用這一機制小伙伴如果發現某些不知名軟件申請這些權限就果斷點取消。更機智小伙伴就會利用權限管理軟件把看片神器的除網絡訪問權限以為的權限都關閉掉。

            enter image description here

            0x02 攻擊思路


            在權限管理軟件的控制下惡意軟件視乎難以再有所作為,是否有零權限的攻擊方法了? 這就要借助上文提到高權限軟件s voice了,我們可以偽裝一個惡意軟件不申請任何敏感權限再借助S voice“提升權限”達到攻擊效果。

            enter image description here

            0x03 Demo

            設計思路: 1、 設置intent啟動S Voice

            Intent intent = new Intent();
            intent.setAction("android.intent.action.VOICE_COMMAND");
            startActivity(intent);
            

            2、 調用MediaPalyer類播放攻擊語音

            private MediaPlayer mp4;
            mp4 = MediaPlayer.create(MainActivity.this, R.raw.confirm); 
            mp4.start();
            

            demo應用未申請任何權限

            enter image description here

            演示視頻: http://v.youku.com/v_show/id_XNzUyNzk3MzYw.html

            0x04 補充說明


            1. 因為google voice的谷歌類產品被嚴重河蟹基本無法使用,不考慮這種情況下音頻文件過大可使用google TTS 文字轉語音。
            2. 其他語音助手軟件:百度語音….
            3. 即使聲音很小也能成功被s voice識別,睡眠時小于55分貝不易被發現。可以通過監視系統狀態、傳感器判斷手機運行狀態。
            4. 安卓系統中錄音方法是synchronized,也就是通過sdk api多個應用是無法同時訪問麥克風的。想無聲攻擊可以考慮NDK。
            5. 通過傳感器、系統狀態信息判斷手機是否被使用,再未使用的情況下喚醒屏幕,發出攻擊指令。(s voice在屏幕關閉時候無法運行,用戶在使用時攻擊指令發聲易被發現)
            6. 鎖屏下攻擊思路:
            

            enter image description here

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线