日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何開始對Android應(yīng)用的逆向分析?

本文是我的關(guān)于如何開始Android逆向系列文章的第一部分。在文末提供了一個文檔,你可以根據(jù)該文檔說明部署同我一樣的實驗環(huán)境。

在了解android應(yīng)用的逆向之前,你必須對android平臺及其架構(gòu)和android應(yīng)用程序的構(gòu)建塊(組件)已有了一個較好的理解。如果你并不了解這些,那么我建議你先參閱以下鏈接,然后再繼續(xù)瀏覽本文。

  • Android平臺架構(gòu)
  • Android應(yīng)用程序及其組件
  • Android應(yīng)用程序及其架構(gòu)(PPT)

我當(dāng)前的實驗室環(huán)境如下:

  • 主機(jī)系統(tǒng)為windows,其中安裝了virtual box 和 genymotion
  • virtual box 和 genymotion的設(shè)備都處于橋接模式
  • Android 4.4 (kitkat API version 19)
  • 在virtual box中,kali linux也同時運行(與genymotion一起)

注:該設(shè)置并非固定,你可以根據(jù)自身需求環(huán)境進(jìn)行調(diào)整。例如,你也可以使用kali linux作為你的主機(jī)系統(tǒng),并在上面安裝genymotion。

在正式開始我們的逆向之旅前,我想先向大家介紹一下名為adb(android debugger bridge)的工具/服務(wù)器。它可以幫助我們連接,獲取數(shù)據(jù)并將指令傳遞給遠(yuǎn)程Android設(shè)備(調(diào)試模式可以通過設(shè)備設(shè)置中的開發(fā)者模式打開)。當(dāng)前情況下,我們將使用genymotion設(shè)備(虛擬設(shè)備)。

對于安卓應(yīng)用的逆向,這里有一個非常好的可供我們學(xué)習(xí)和練習(xí)的apk - DIVA ( Damn insecure and vulnerable mobile Application )。這是一個由Payatu的安全分析師開發(fā)的脆弱安卓應(yīng)用。下面我們也將以該應(yīng)用為例:

首先,讓我們來啟動genymotion設(shè)備:

  • 在Windows/Linux中搜索Genymotion應(yīng)用
  • Start genymotion

選中你想要啟動的設(shè)備,然后點擊Start按鈕。

如果你以上步驟正確執(zhí)行,則應(yīng)該能看到類似以下的界面:

可以看到Android設(shè)備已經(jīng)啟動,現(xiàn)在我們來啟動虛擬機(jī)中的kali linux。步驟如下:

  • 啟動virtual box
  • 從中啟動kali虛擬機(jī)

注:這兩個虛擬機(jī)處于橋接模式。如果有DHCP服務(wù)器,則需要連接到路由器或網(wǎng)絡(luò)。

現(xiàn)在兩臺機(jī)器都已啟動,下面讓我們來檢查下kali和Android設(shè)備之間的連接情況。為此,我們需要獲取Android設(shè)備的IP地址。

  • 導(dǎo)航到設(shè)置菜單
  • 單擊WiFi選項
  • 你會在網(wǎng)絡(luò)中看到WiredSSID
  • 長按“WiredSSID”選項
  • 你會看到如下所示界面

獲取IP后我們回到kali終端,并鍵入以下命令檢查連接情況:

 
 
 
 
  1. adb connect 192.168.20.74 

如果命令正確執(zhí)行,你將會看到以下輸出。

現(xiàn)在讓我們通過執(zhí)行以下命令,來驗證設(shè)備是否真正連接:

 
 
 
 
  1. adb devices 

通過確認(rèn)我們得知設(shè)備已連接到IP地址192.168.20.74和5555端口(adb默認(rèn)的連接端口為5555)。

現(xiàn)在,我們就可以在Android設(shè)備上執(zhí)行不同的adb命令了。通過-h選項查看可用參數(shù):

 
 
 
 
  1. adb -h 

在幫助信息中會為你列出所有可用的參數(shù)選項。下面是一些在逆向中時常會用到的命令:

ADB 調(diào)試

 
 
 
 
  1. adb devices – Lists all the connected devices  
  2. adb forward – used for forwarding socket connections  
  3. adb kill-serve 

無線

 
 
 
 
  1. adb connect – connects to the remote device 
  2. adb usb – connects to the USB attached device 

包管理器

 
 
 
 
  1. adb install – install a package adb uninstall – uninstall a package adb shell pm list packages – used for displaying lists of packages installed adb shell pm path – used for displaying package path on device adb shell pm clear 

文件管理器

 
 
 
 
  1. adb pull – used for pulling / downloading a file adb push – used for pushing / uploading a file adb shell ls – used for displaying list of files and directories in the current directory adb shell cd – used for changing the directory adb shell rm- used for removing a file adb shell mkdir – used for creating a directory adb shell touch – used for creating a file adb shell pwd – used for displaying the current path adb shell cp – used for copying a file adb shell mv – used for moving a file 

網(wǎng)絡(luò)

 
 
 
 
  1. adb shell netstat – used for displaying the statistics for network connection adb shell ping – used for pinging a host / IP adb shell netcfg adb shell ip 

Logcat

 
 
 
 
  1. adb logcat adb shell dumpsys adb shell dumpstate 

截圖

 
 
 
 
  1. adb shell screencap adb shell screenrecord 

系統(tǒng)

 
 
 
 
  1. adb root adb sideload adb shell ps adb shell top adb shell getprop adb shell setprop 

在了解adb命令后,下面我們來安裝DIVA(Android應(yīng)用程序)。

注:請將該應(yīng)用下載安裝至你的kali機(jī)器上,因為所有的adb命令都將從kali中觸發(fā)。

執(zhí)行以下命令安裝該應(yīng)用:

 
 
 
 
  1. adb install diva-beta.apk 

現(xiàn)在,我們已經(jīng)完成了diva-beta.apk的安裝。讓我們來驗證下該應(yīng)用是否已在我們的設(shè)備中成功安裝。

可以看到應(yīng)用程序已被正確安裝,并可在設(shè)備的菜單中使用。

讓我們通過單擊該應(yīng)用程的圖標(biāo)來啟動它。你將看到如下啟動界面:

當(dāng)前,DIVA為我們準(zhǔn)備了以下挑戰(zhàn):

不安全的日志記錄 硬編碼問題 – 第1部分 不安全的數(shù)據(jù)存儲 – 第1部分 不安全的數(shù)據(jù)存儲 – 第2部分 不安全的數(shù)據(jù)存儲 – 第3部分 不安全的數(shù)據(jù)存儲 – 第4部分 輸入驗證問題 – 第1部分 輸入驗證問題 – 第2部分 訪問控制問題 – 第1部分 訪問控制問題 – 第2部分 訪問控制問題 – 第3部分 硬編碼問題 – 第2部分 輸入驗證問題 – 第3部分

我們將逐一解決上述挑戰(zhàn),讓你了解Android應(yīng)用中的不同漏洞。對于第一項挑戰(zhàn),即不安全日志記錄,我們可以通過adb命令來檢查diva應(yīng)用的日志記錄。命令如下:

 
 
 
 
  1. adb logcat 

如果命令正確執(zhí)行,你將會看到如下所示內(nèi)容:

可以看到這里的日志記錄非常的雜亂,因為它顯示了許多不同的日志記錄數(shù)據(jù)(整個設(shè)備)。為了讓我們看起來更加清晰,我將使用grep命令。但在此之前,我們需要首先獲取該應(yīng)用程序包的進(jìn)程ID。命令如下:

 
 
 
 
  1. adb shell ps | grep diva 

如果命令正確執(zhí)行,你將會看到如下所示內(nèi)容:

adb shell是用于通過adb發(fā)送任何shell指令的命令;ps作為shell指令發(fā)送,ps的輸出提供給grep命令。Grep是一個非常棒的用于搜索相關(guān)字符串的工具,在本例中我們搜索的字符串為“diva”。

從輸出結(jié)果中我們得知,diva的pid為1654,包名稱為“jakhar.aseem.diva”

現(xiàn)在,讓我們以組合的形式使用logcat和grep命令:

 
 
 
 
  1. adb logcat | grep 1654 

你將看到與該特定進(jìn)程(即diva)相關(guān)的所有日志。

實驗環(huán)境設(shè)置文檔


文章標(biāo)題:如何開始對Android應(yīng)用的逆向分析?
文章路徑:http://www.5511xx.com/article/cdhiepp.html