日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

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

  • Android平臺架構
  • Android應用程序及其組件
  • Android應用程序及其架構(PPT)

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

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

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

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

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

首先,讓我們來啟動genymotion設備:

  • 在Windows/Linux中搜索Genymotion應用
  • Start genymotion

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

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

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

  • 啟動virtual box
  • 從中啟動kali虛擬機

注:這兩個虛擬機處于橋接模式。如果有DHCP服務器,則需要連接到路由器或網絡。

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

  • 導航到設置菜單
  • 單擊WiFi選項
  • 你會在網絡中看到WiredSSID
  • 長按“WiredSSID”選項
  • 你會看到如下所示界面

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

 
 
 
 
  1. adb connect 192.168.20.74 

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

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

 
 
 
 
  1. adb devices 

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

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

 
 
 
 
  1. adb -h 

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

ADB 調試

 
 
 
 
  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 

網絡

 
 
 
 
  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應用程序)。

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

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

 
 
 
 
  1. adb install diva-beta.apk 

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

可以看到應用程序已被正確安裝,并可在設備的菜單中使用。

讓我們通過單擊該應用程的圖標來啟動它。你將看到如下啟動界面:

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

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

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

 
 
 
 
  1. adb logcat 

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

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

 
 
 
 
  1. adb shell ps | grep diva 

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

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

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

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

 
 
 
 
  1. adb logcat | grep 1654 

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

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


網頁標題:如何開始對Android應用的逆向分析?
URL標題:http://www.dlmjj.cn/article/cdhiepp.html