安卓滲透框架-Drozer架構淺析--架構組成和自定義模塊

安卓滲透框架-Drozer架構淺析--架構組成和自定義模塊

標籤(空格分隔): Drozer Android Securityhtml


1. Drozer 簡介

Drozer是MWR Labs開發的一款針對Android系統的安全測試框架。Drozer能夠經過與Dalivik 虛擬機,以及其它應用程序的IPC端點以及底層操做系統的交互,避免正處於開發階段,或者部署於你的組織的android應用程序和設備暴露出不可接受的安全風險。java


2. Drozer的使用

網上關於Drozer如何使用的文章不少,這裏貼出來一兩篇比較好的:
中文版:http://www.freebuf.com/tools/26503.html
英文版:https://www.mwrinfosecurity.com/system/assets/937/original/mwri_drozer-user-guide_2015-03-23.pdfpython


3. Drozer 組成

Drozer 總共由如下幾個部分組成:

  1. Drozer Console ---- Drozer 的pc端用戶操做接口android

  2. Drozer agent ---- 安裝在安卓手機上的Drozer代理應用git

  3. Drozer Modules ---- Drozer所包含的能夠被利用的模塊,Exploit,Payloadgithub

  4. Drozer API ---- Drozer提供的 customize module 接口,用來編寫自定義module或者exploit,payload安全

  5. Drozer Common ---- 在console和agent之間傳輸和共享數據的一些組件bash

  6. Other: (optional)
    ----------Rogue agent:提供了遠程管理工具的代理
    ----------JAR agent:對Rogue agent進行了jar打包
    ----------Weasel: 能夠理解爲提供的和Rogue agent配套的高級payload服務器


4. Drozer Console

Drozer Console 是用python編寫而成的一個命令行工具,使用者能夠經過console鏈接到agent上對Dalvik VM 進行操做。網絡

接口是經過python的官方模塊cmdreadline等模塊實現,經過shlex解析命令,經過argparse解析參數。感興趣的能夠閱讀Drzer Console的相關源碼:

github地址:https://github.com/mwrlabs/drozer


5. agent

agent 是一個安裝在測試安卓機上輕量級app,而且只申請一個權限,是爲了用來和pc進行鏈接的。這個agent應用要求 Android API leven 7,兼容於Andriod 2.1以及以上的版本

(1) agent和console的鏈接方式

1. 直連方式(Direct Mode):

這一種連接方式,是須要在pc機上安裝adb工具,而且使用數據線將測試機連接在pc機上實現的,agent會在測試機上開啓一個服務器,而後經過adb開啓一個本地tcp通路:
adb forward tcp:31415 tcp:31415
這樣就能夠鏈接上agent的服務器了。具體操做請看使用教程。

2. 網絡連接方式(Infrastructure Mode):

這種方式是用過局域網去連接的,pc機開啓一個server,而後在agent上配置和server創建tcp連接,再使用終端連接上去。具體請查看使用教程。

(2) 具體鏈接形式(connections)

drozer 的connections是經過一種通用的二進制消息傳輸形式(protobuf,具體請查看google的protobuf開源項目)來傳輸Frame信息,在console端是一個python的線程,在agent端是java的一個線程,他們傳輸的消息有如下幾種:

1. 若是是SYSTEM_REQUEST,就傳輸的是SystemMessageHandler消息,SYSTEM_REQUEST指的是agent和console之間進行鏈接,交換狀態的消息,她能夠分爲兩種,SystemRequestSystemResponse

2. 若是是REFLECTION_REQUEST,就傳輸的是 ReflectionRequestHandler消息,REFLECTION_REQUEST指的是用戶在使用相關的exploit或者payload命令的時候傳輸的消息,也有兩種:ReflectionRequestReflectionResponse

agent源碼:https://github.com/mwrlabs/drozer-agent
傳輸消息格式和類型:https://github.com/mwrlabs/mercury-common

(3) 消息傳輸session

和http同樣,drozer的console和agent之間的傳輸也有session,當console和angent連接成功的時候,agent便會生成一個session,它是一個256位的hash字符串,後面的每一次通訊都必須帶上該session id


Drozer Modules

drozer擁有不少能夠直接利用的Module, Exploit, Payload.這些你能夠在drozer console中使用list命令查看相關module,也能夠在bash下使用drozer exploit list查看相關exploit,也能夠使用drozer payload list 來查看相關payload。具體使用方式請查看相關幫助。

全部的module源碼能夠在這裏查看:
https://github.com/mwrlabs/drozer-modules


Drozer API

Drozer 提供了module編寫接口,在安裝好drozer以後,就能夠使用python來用相關的庫了.
相關能夠查看官方文檔和相關博客:

  1. https://github.com/mwrlabs/drozer/wiki/Writing-a-Module

  2. http://appscan.360.cn/blog/?p=45

相關文章
相關標籤/搜索