APP滲透簡介

主要講述APP與Web滲透的區別、如何開展APP滲透、會用到哪些工具,如何使用、有哪些常見漏洞以及危害。

#0x00 APP滲透與Web滲透的區別

APP滲透分爲逆向、接口滲透。接口滲透和常規的Web滲透是一樣的流程,不多介紹,主要講逆向方面帶來的影響。

1、攻擊面不同

以下是APP滲透所涉及到的攻擊面。
在這裏插入圖片描述
對圖中的三個方面進行細分
客戶端:

  • 反編譯
  • 調試
  • 加密/簽名破解
  • 輸入記錄
  • 導出組件
  • 進程注入

數據傳輸

  • 信息泄露
  • 傳輸數據篡改
  • 重放攻擊

服務端

  • 心血
  • ST2
  • 注入
  • 跨站
  • 越權執行
  • 上傳下載
  • 弱口令

我們可以看出來,數據傳輸和服務端的攻擊內容,其實就是我們平時測試Web都會涉及到的。APP滲透除了數據傳輸和服務端之外,還涉及到了一個客戶端的內容。

2、攻擊對象不同

攻擊面覆蓋有不同,攻擊的對象也會有所不同。除了獲取服務器數據和權限之外,客戶端的攻擊對象還包括了大量的使用用戶。

舉個已經上新聞的例子:
在這裏插入圖片描述
可以看出來,攻擊者是對APP進行破解植入後門,通過非法渠道發佈給其他使用者,從而達到牟利的目的。

還有很多看不見的灰黑產業,目前也將注意力轉移至客戶端,比如外掛,各大平臺輔助軟件等。

就不一一舉例子了。

總之,攻擊的對象不單單是公司的數據和服務器,開始轉向大量的客戶端使用者。

#0x01 APP滲透工具

開展工作需要工具,我們從常用幾個工具的使用或原理方面來介紹。

1、逆向工具

Apktool

Apktool是Google提供的APK編譯工具,能夠反編譯及回編譯apk,同時安裝反編譯系統apk所需要的framework-res框架,清理上次反編譯文件夾等功能,需要java支持。

根據介紹可以看到,apktool主要分爲d[decode]、b[build]兩部分。

d就是拆解apk包,b是把拆解後的apk包重新打包成apk。
在這裏插入圖片描述
使用也非常簡單

apktool d source.apk -o dst_uncrack
apktool b dst_uncrack -o source.apk

IDA

IDA是一款功能強大的逆向工程軟件,集成了的靜態分析、動態分析,進程監聽調用以及代碼分析流程圖等功能,支持.so .exe .o等格式。

IDA基本逆向必備,功能很豐富,下載和使用暫且不說,後面我會逐漸根據不同實際情況來一一介紹。

Jeb

Jeb是一個功能強大的爲安全專業人士設計的Android應用程序的反編譯工具。用於逆向工程或審計APK文件,可以提高效率減少許多工程師的分析時間。無需額外的工具,就可以將smali彙編轉成Java代碼。
它的功能比較全,和強大。有分包合併、動態調試、smali彙編轉Java僞代碼功能。

Jeb基於Java開發,使用之前需要有java環境,支持跨平臺運行。
選擇不同平臺的腳本,直接跟上目標APK即可。
在這裏插入圖片描述
按tab可以將jeb反編譯的smali代碼轉成Java僞代碼。
在這裏插入圖片描述

2、抓包工具

  • Charles

  • Wireshark

  • Burpsuit

這三個工具用的比較多,這裏就不做過多展開了。

3、滲透框架:

Xpose

Xposed是基於Android的Hook工具,和Frida相比,它是一款靜態的Hook框架,不影響程序運行。

原理:
爲方便理解Xposed原理先簡單瞭解下我們平時用的Android手機體系是啥樣子的。
在這裏插入圖片描述
Xpose直接替換了Zygote進程,所有的應用程序都需要Zygote開闢進程運行,所以Xpose就相當於控制了運行的APP,所以手機必須得root,才能拿到Zygote替換權限。使用Xpose得先root。
在這裏插入圖片描述

Xpose是在虛擬器啓動之前

Frida

簡介:Frida是個輕量級別的hook框架。
1、什麼是hook?
可以簡單理解爲鉤子,鉤住目標函數,當函數被執行時,我們可以通過鉤子來修改函數傳入參數和函數執行結果。
2、hook有什麼作用?
當我們找到了關鍵函數,就可以通過hook,控制其輸入輸出,達到破解的目的。
這在實際場景中作用非常廣泛,比如外掛修改內存參數、繞過安全檢測、繞過驗證令牌等等。

frida分爲客戶端和服務端,服務端可通過以下地址進行下載,根據系統平臺不同選擇對應版本:
https://github.com/frida/frida/releases

工作原理

是一種動態插樁工具,可以插入一些代碼到原生app的內存空間去,(動態地監視和修改其行爲),這些原生平臺可以是Win、Mac、Linux、Android或者iOS。

動靜態修改內存實現作弊一直是剛需,比如各種外掛。Frida的強大之處是如何在無源碼,不可調試的純黑盒情況下修改內存數據。

Frida基於編譯型語言的特性,機器碼在CPU和內存上執行的過程中,控制其內部數據的交互和跳轉。

使用

需要將對應平臺和版本的frida-server推送至目標載體。然後執行./frida-server
frida客戶端可以在命令中查看在這裏插入圖片描述

#0x02 常見漏洞以及危害

1、Java代碼保護

使用Jeb直接反編譯,如果沒有經過加固,直接可以拿到可讀性較高的源代碼,可以閱讀代碼邏輯。
在這裏插入圖片描述

2、防止二次打包

apktool可以直接重新打包。

當程序被篡改需要重新安裝時,二次打包是必經的過程。如果有加密算法阻止二次打包,那麼破解者必須花費更大精力來進行對抗。
在這裏插入圖片描述

3、反調試保護

1、準備一臺Root手機,連接至PC;
2、使用adb向目標手機推送IDA Pro的Android調試器;
3、在手機上運行android_server;
4、端口轉發adb forward tcp:23946 tcp:23946
5、打開IDA Pro進行Remote debug,在進程列表中選擇目標進程的包名;嘗試Attach該進程,並進行調試。

遠程調試成功界面,顯示的是彙編代碼。
在這裏插入圖片描述
進一步下斷點,按F5將ARM彙編轉成僞C代碼,就可以透明地監視、修改、控制程序的運行了。
在這裏插入圖片描述
危害:所有的軟件在彙編層面上來說都是開源的,靜態分析配合動態調試,爲破解、植入後門、惡意代碼等提供了基礎。增加反調試機制,給破解者帶來阻力。

4、Native代碼注入檢測

可以讀APP的運行內存、以及接收api相關數據,或者注入代碼。
在這裏插入圖片描述

在這裏插入圖片描述
危害:App沒有使用反調試技術對運行時的程序進行保護。攻擊者可以通過動態調試的方法,對App進行逆向、跟蹤等。同時,攻擊者還可以利用調試技術,在運行時的App內存中注入惡意代碼,達到截獲運行時數據的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章