Android 滲透測試學習手冊 第二章 準備實驗環(huán)境

第二章 準備實驗環(huán)境

作者:Aditya Gupta

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

在上一章中,我們了解了 Android 安全性及其體系結構的基礎知識。 在本章中祭椰,我們將了解如何建立 Android 滲透測試實驗環(huán)境,其中包括下載和配置 Android SDK 和 Eclipse垫蛆。 我們將深入了解 ADB违孝,并了解如何創(chuàng)建和配置 Android 虛擬設備(AVD)。

2.1 建立開發(fā)環(huán)境

為了構建 Android 應用程序或創(chuàng)建 Android 虛擬設備集索,我們需要配置開發(fā)環(huán)境屿愚,以便運行這些應用程序。 因此务荆,我們需要做的第一件事是下載 Java 開發(fā)工具包(JDK)妆距,其中包括 Java 運行時環(huán)境(JRE):

  1. 為了下載 JDK,我們需要訪問http://www.oracle.com/technetwork/java/javase/downloads/index.html函匕,并根據(jù)我們所在的平臺下載 JDK 7娱据。

    就像下載它并運行下載的可執(zhí)行文件一樣簡單。 在以下屏幕截圖中盅惜,你可以看到我的系統(tǒng)上安裝了 Java:

  2. 一旦我們下載并安裝了 JDK中剩,我們需要在我們的系統(tǒng)上設置環(huán)境變量,以便可以從任何路徑執(zhí)行 Java抒寂。

    對于 Windows 用戶结啼,我們需要右鍵單擊My Computer(我的電腦)圖標,然后選擇Properties(屬性)選項屈芜。

  3. 接下來妆棒,我們需要從頂部選項卡列表中選擇Advanced system settings(高級系統(tǒng)設置)選項:

  4. 一旦我們進入了System Properties(系統(tǒng)屬性)對話框,在右下角,我們可以看到Environment Variables...(環(huán)境變量)選項糕珊。 當我們點擊它动分,我們可以看到另一個窗口,包含系統(tǒng)變量及其值红选,在System variables(系統(tǒng)變量)部分下:

  5. 在新的彈出對話框中澜公,我們需要單擊Variables(變量)下的PATH文本框,并鍵入 Java 安裝文件夾的路徑:

    對于 Mac OS X喇肋,我們需要編輯/.bash_profile文件坟乾,并將 Java 的路徑追加到PATH變量。

    在 Linux 機器中蝶防,我們需要編輯./bashrc文件并附加環(huán)境變量行甚侣。 這里是命令:

    $ nano ~/.bashrc
    $ export JAVA_HOME=`/usr/libexec/java_home -v 1.6` or export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
    

    你還可以通過從終端運行以下命令來檢查 Java 是否已正確安裝和配置:

    $ java --version
    
  6. 一旦我們下載并配置了 Java 的環(huán)境變量,我們需要執(zhí)行的下一步是下載http://developer.android.com/sdk/index.html中提供的 Android ADT 包间学。

    ADT 包是由 Android 團隊準備的一個完整的包殷费,包括配置了 ADT 插件,Android SDK 工具低葫,Android 平臺工具详羡,最新的 Android 平臺和模擬器的 Android 系統(tǒng)映像的 Eclipse。這大大簡化了早期下載和使用 Android SDK 配置 Eclipse 的整個過程嘿悬,因為現(xiàn)在的一切都已預先配置好了实柠。

  7. 一旦我們下載了 ADT 包,我們可以解壓它善涨,并打開 Eclipse 文件夾窒盐。

  8. 啟動時,ADT 包將要求我們配置 Eclipse 的工作區(qū)钢拧。workspace(工作空間)是所有 Android 應用程序開發(fā)項目及其文件將被存儲的位置蟹漓。在這種情況下,我已將所有內(nèi)容保留默認娶靡,并選中Use this as the default and do not ask me again(使用此為默認值,不再詢問我)復選框:

  9. 一旦完全啟動看锉,我們可以繼續(xù)創(chuàng)建 Android 虛擬設備姿锭。 Android 虛擬設備是配置用于特定版本的 Android 的模擬器配置。 模擬器是與 Android SDK 軟件包一起提供的虛擬設備伯铣,通過它呻此,開發(fā)人員可以運行正常設備的應用程序,并與他們在實際設備上進行交互腔寡。 這對于沒有 Android 設備但仍然想創(chuàng)建 Android 應用程序的開發(fā)者也很有用焚鲜。

這里要注意的一個有趣的特性是,在 Android 中,模擬器運行在 ARM 上忿磅,模擬的所有的事情與真實設備完全相同糯彬。 然而,在 iOS 中葱她,我們的模擬器只是模擬環(huán)境撩扒,并不擁有所有相同組件和平臺。

2.2 創(chuàng)建 Android 虛擬設備

為了創(chuàng)建Android虛擬設備吨些,我們需要執(zhí)行以下操作:

  1. 訪問 Eclipse 的頂部欄搓谆,然后點擊 Android 圖標旁邊的設備圖標。 這將打開一個新的Android Virtual Device Manager(Android 虛擬設備管理器)窗口豪墅,其中包含所有虛擬設備的列表泉手。 這是一個很好的選擇,通過點擊New(新建)按鈕偶器,創(chuàng)建一個新的虛擬設備斩萌。

  2. 我們還可以通過從終端運行 android 命令并訪問工具,然后管理 AVD 來啟動 Android 虛擬設備状囱。 或者术裸,我們可以簡單指定 AVD 名稱,并使用模擬器-avd [avd-name]命令來啟動特定的虛擬設備亭枷。

    這會打開一個新窗口袭艺,其中包含需要為 Android 虛擬設備配置的所有屬性(尚未創(chuàng)建)。 我們將配置所有選項叨粘,如下面的截圖所示:

  3. 一旦我們點擊OK并返回到 AVD 管理器窗口猾编,我們將看到我們新創(chuàng)建的 AVD。

  4. 現(xiàn)在升敲,只需選擇新的 AVD答倡,然后單擊Start...(開始)來啟動我們創(chuàng)建的虛擬設備。

    它可能需要很長時間驴党,來為你的第一次使用加載瘪撇,因為它正在配置所有的硬件和軟件配置,來給我們真正的電話般的體驗港庄。

  5. 在以前的配置中倔既,為了節(jié)省虛擬設備的啟動時間,選中Snapshot復選框也是一個不錯的選擇鹏氧。

  6. 一旦設備加載渤涌,我們現(xiàn)在可以訪問我們的命令提示符,并使用 android 命令檢查設備配置把还。 此二進制文件位于安裝中的/sdk/tools文件夾下的adt-bundle文件夾中实蓬。

  7. 我們還要設置位于sdk文件夾中的toolsplatform-tools文件夾的位置茸俭,就像我們之前使用環(huán)境變量一樣。

  8. 為了獲取我們系統(tǒng)中已連接(或加載)的設備的詳細配置信息安皱,可以運行以下命令:

    android list avd
    

    我們在下面的屏幕截圖中可以看到调鬓,上面的命令的輸出顯示了我們系統(tǒng)中所有現(xiàn)有 Android 虛擬設備的列表:

  9. 我們現(xiàn)在將繼續(xù),使用 ADB 或 Android Debug Bridge 開始使用設備练俐,我們在上一章中已經(jīng)看到袖迎。 我們還可以通過在終端中執(zhí)行emulator -avd [avdname]命令來運行模擬器。

2.3 滲透測試實用工具

現(xiàn)在腺晾,讓我們詳細了解一些有用的 Android 滲透測試實用工具燕锥,如 Android Debug Bridge,Burp Suite 和 APKTool悯蝉。

Android Debug Bridge

Android Debug Bridge 是一個客戶端 - 服務器程序归形,允許用戶與模擬器器或連接的 Android 設備交互。 它包括客戶端(在系統(tǒng)上運行)鼻由,處理通信的服務器(也在系統(tǒng)上運行)以及作為后臺進程在模擬器和設備上上運行的守護程序暇榴。 客戶端用于 ADB 通信的默認端口始終是 5037,設備使用從 5555 到 5585 的端口蕉世。

讓我們繼續(xù)蔼紧,通過運行adb devices命令開始與啟動的模擬器交互。 它將顯示模擬器已啟動并運行以及連接到 ADB:

C:\Users\adi0x90\Downloads\adt-bundle\sdk\platform-tools>adb devices
List of devices attached
emulator-5554   device

在某些情況下狠轻,即使模擬器正在運行或設備已連接奸例,你也不會在輸出中看到設備。 在這些情況下向楼,我們需要重新啟動 ADB 服務器查吊,殺死服務器,然后再次啟動它:

C:\Users\adi0x90\Downloads\adt-bundle\sdk\platform-tools>adb kill-server

C:\Users\adi0x90\Downloads\adt-bundle\sdk\platform-tools>adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

我們還可以使用pm(包管理器)工具獲取所有已安裝的軟件包的列表湖蜕,這可以在 ADB 中使用:

adb shell pm list packages

如下面的屏幕截圖所示逻卖,我們將獲得設備上安裝的所有軟件包的列表,這在以后的階段可能會有用:

此外昭抒,我們可以使用dumpsys meminfo然后是adb shell命令评也,獲取所有應用程序及其當前內(nèi)存占用的列表

我們還可以獲取logcat(這是一個讀取 Android 設備事件日志的工具),并將其保存到特定文件灭返,而不是在終端上打拥脸佟:

adb logcat -d -f /data/local/logcats.log 

此處的-d標志指定轉(zhuǎn)儲完整日志文件的并退出,-f標志指定寫入文件而不是在終端上打印婆殿。 這里我們使用/data/local位置诈乒,而不是任何其他位置罩扇,因為這個位置在大多數(shù)設備中是可寫的婆芦。

我們還可以使用df命令檢查文件系統(tǒng)以及可用空間和大信履ァ:

在 Android SDK 中還有另一個很棒的工具,稱為 MonkeyRunner消约。 此工具用于自動化和測試 Android 應用程序肠鲫,甚至與應用程序交互。 例如或粮,為了使用 10 個自動化觸摸导饲,敲擊和事件來測試應用程序,我們可以在adb shell中使用monkey 10命令:

root@generic:/ # monkey 10
monkey 10
Events injected: 10
## Network stats: elapsed time=9043ms (0ms mobile, 0ms wifi, 9043ms not connected)

這些是一些有用的工具和命令氯材,我們可以在 ADB 中使用它們渣锦。 我們現(xiàn)在將繼續(xù)下載一些我們將來使用的其他工具。

Burp Suite

我們將在接下來的章節(jié)中使用的最重要的工具之一是 Burp 代理氢哮。 我們將使用它來攔截和分析網(wǎng)絡流量袋毙。 應用程序中的許多安全漏洞可以通過攔截流量數(shù)據(jù)來評估和發(fā)現(xiàn)。 在以下步驟中執(zhí)行此操作:

  1. 我們現(xiàn)在從官方網(wǎng)站http://portswigger.net/burp/download.html下載 burp 代理冗尤。
    下載并安裝后听盖,你需要打開 Burp 窗口,它如以下屏幕截圖所示裂七。 你還可以使用以下命令安裝 Burp:

    java –jar burp-suite.jar
    

    我們在下面的截圖中可以看到皆看,我們運行了 Burp 并顯示了默認界面:

  2. 在 Burp Suite 工具中,我們需要通過單擊Proxy(代理)選項卡并訪問Options(選項)選項卡來配置代理設置背零。

  3. Options選項卡中腰吟,我們可以看到默認選項被選中,這是127.0.0.1:8080捉兴。 這意味著從我們的系統(tǒng)端口8080發(fā)送的所有流量將由 Burp Suite 攔截并且在它的窗口顯示蝎困。

  4. 我們還需要通過選擇默認代理127.0.0.1:8080并單擊Edit(編輯)來檢查隱藏的代理選項。

  5. 接下來倍啥,我們需要訪問Request handling(請求處理)選項卡禾乘,并選中Support invisible proxying (enable only if needed)(支持不可見代理(僅在需要時啟用))復選框:

  6. 最后,我們使用invisible選項運行代理:

  7. 一旦設置了代理虽缕,我們將啟動我們的模擬器與我們剛剛設置的代理始藕。 我們將使用以下模擬器命令來使用http-proxy選項:

    emulator -avd [name of the avd] -http-proxy 127.0.0.1:8080
    

    我們可以在下面的截圖中看到命令如何使用:

因此,我們已經(jīng)配置了 Burp 代理和模擬器氮趋,導致所有的模擬器流量現(xiàn)在會通過 Burp伍派。 在這里,你在訪問使用 SSL 的網(wǎng)站時可能會遇到問題剩胁,我們將在后面的章節(jié)中涉及這些問題诉植。

APKTool

Android 逆向工程中最重要的工具之一是 APKTool。 它為逆向第三方和封閉的二進制 Android 應用程序而設計昵观。 這個工具將是我們在未來章節(jié)中的逆向主題和惡意軟件分析的重點之一晾腔。 為了開始使用 APKTool舌稀,請執(zhí)行以下步驟:

  1. 為了下載 APKTool,我們需要訪問https://code.google.com/p/android-apktool/downloads/list灼擂。

    在這里壁查,我們需要下載兩個文件:apktool1.5.3.tar.bz2,其中包含 apktool 主二進制文件剔应,另一個文件取決于平臺 - 無論是 Windows睡腿,Mac OS X 還是 Linux。

  2. 一旦下載和配置完成峻贮,出于便利席怪,我們還需要將 APKTool 添加到我們的環(huán)境變量。 此外纤控,最好將 APKTool 設置為環(huán)境變量何恶,或者首先將其安裝在/usr/bin中。 然后我們可以從我們的終端運行 APKTool嚼黔,像下面的截圖這樣:

總結

在本章中细层,我們使用 Android SDK,ADB唬涧,APKTool 和 Burp Suite 建立了 Android 滲透測試環(huán)境疫赎。 這些是 Android 滲透測試者應該熟悉的最重要的工具。

在下一章中碎节,我們將學習如何逆向和審計 Android 應用程序捧搞。 我們還將使用一些工具,如 APKTool狮荔,dex2jar胎撇,jd-gui 和一些我們自己的命令行必殺技。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末殖氏,一起剝皮案震驚了整個濱河市晚树,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雅采,老刑警劉巖爵憎,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婚瓜,居然都是意外死亡宝鼓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門巴刻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愚铡,“玉大人,你說我怎么就攤上這事胡陪×ち龋” “怎么了正蛙?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長营曼。 經(jīng)常有香客問我,道長愚隧,這世上最難降的妖魔是什么蒂阱? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮狂塘,結果婚禮上录煤,老公的妹妹穿的比我還像新娘。我一直安慰自己荞胡,他們只是感情好妈踊,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泪漂,像睡著了一般廊营。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上萝勤,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天露筒,我揣著相機與錄音,去河邊找鬼敌卓。 笑死慎式,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的趟径。 我是一名探鬼主播瘪吏,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜗巧!你這毒婦竟也來了掌眠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤幕屹,失蹤者是張志新(化名)和其女友劉穎扇救,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體香嗓,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡迅腔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了靠娱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沧烈。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖像云,靈堂內(nèi)的尸體忽然破棺而出锌雀,到底是詐尸還是另有隱情蚂夕,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布腋逆,位于F島的核電站婿牍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惩歉。R本人自食惡果不足惜等脂,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撑蚌。 院中可真熱鬧上遥,春花似錦、人聲如沸争涌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亮垫。三九已至模软,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饮潦,已是汗流浹背撵摆。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留害晦,地道東北人再悼。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓置济,卻偏偏與公主長得像钦讳,于是被迫代替她去往敵國和親银室。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

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