【總結】APP客戶端滲透測試


一、app代碼未混淆
1、使用7zip解壓apk文件
2、執行命令:dex2jar.bat apk解壓后文件夾中的classes.dex文件
3、上述命令執行后會在apk文件夾中生成java源碼文件classes_dex2jar.jar
4、直接使用jd-gui打開上述文件查看代碼是否混淆
(可以嘗試直接使用Androidkiller打開apk文件)

二、app應用完整性
1、將apk文件復制到apktool目錄下
2、apktool對apk文件進行解包,命令:java -jar apktool_2.3.0.jar d apk文件
3、解包成功后會在當前文件夾下生成一個新的apk文件夾
4、進入新的apk文件夾下,找到相應logo,一般存在於res文件夾下的以mipmap開頭的幾個文件夾中,或者直接在apk文件夾下搜索launcher
5、隨便下載個png圖片,替換掉logo
6、替換成功后重新打包,執行命令:java -jar apktool_2.3.0.jar b apk文件夾
7、打包生成的apk文件默認存放在apk文件夾中dist文件夾下
8、對新生成的apk問價進行簽名,執行命令:java -jar signapk.jar testkey.x509.pem testkey.pk8 原apk文件名 新apk文件名

三、文件存儲安全性(參考https://www.52pojie.cn/thread-621516-1-1.html)
1、數據庫文件(adb或ddms導出數據庫文件,使用sqliteSpy打開數據庫文件查看是否泄露敏感信息)
2、客戶端存儲文件(adb或ddms查看客戶端存儲文件,如sharedpreferences文件等)

四、文件權限安全性
adb或ddms查看app文件權限,一般默認后三位為--x,即其他用戶組用戶不具備讀寫權限

五、組件安全性(drozer)

檢測攻擊面

run app.package.attacksurface [package name]

攻擊activity:

run app.activity.info -a [package name]

run app.activity.start --component [package name] [component name]

攻擊Content Provider(注入和遍歷):

run app.provider.info -a [package name]

run scanner.provider.finduris -a [package name]

run app.provider.query [uri]

run app.provider.update [uri] --selection [conditions] [selection arg] [column] [data]

run scanner.provider.sqltables -a [package name]

run scanner.provider.injection -a [package name]

run scanner.provider.traversal -a [package name]

攻擊Broadcast Receivers:

run app.broadcast.info -a [package name]

run app.broadcast.send --component [package name] [component name] --extra [type] [key] [value]

run app.broadcast.sniff --action [action]

攻擊Service:

run app.service.info -a [package name]

run app.service.start --action [action] --component [package name] [component name]

run app.service.send [package name] [component name] --msg [what] [arg1] [arg2] --extra [type] [key] [value] --bundle-as-obj

問題記錄:

查看apk版本等信息
D:\apptool\adt\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W>aapt.exe dump badging D:\apptool\test.apk

adb無法連接夜神模擬器shell的,多半是版本不同的原因,可嘗試將adb.exe改為nox_adb.exe復制到夜神模擬器安裝目錄下

執行run app.package,list命令無法獲取包名,可直接adb獲取包名,然后直接使用包名進行后續測試

運行dorzer顯示~/.drozer_config file錯誤時,進行如下操作:

檢查JDK是否安裝
環境變量是否正確配置(命令行下執行: javajavacjava -version 命令是否返回正常數據)
如果以上項目均正常的話可做如下修復:

建立名為 .drozer_config的文件,文件中添加如下內容:

[executables]
java=C:\Program Files (x86)\Java\jdk1.8.0_144\bin\java.exe
javac=C:\Program Files (x86)\Java\jdk1.8.0_144\bin\javac.exe

即java和javac的路徑,保存后存放到C:\Users\XXX\ 目錄下,其中XXX為當前用戶名目錄下,之后重新連接成功

如果在win7下此文件.drozer_config 無法命名,解決辦法

先把文件名改為1.drozer_config,然后使用命令 rename  1.drozer_config  .drozer_config 即可

一些常用命令:

adb.exe devices
adb.exe connect 127.0.0.1:62001

adb.exe shell
adb.exe pull /sdcard/xxx_db

adb.exe forward tcp:31415 tcp:31415

drozer.bat console devices

dorzer.bat console connect


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM