一、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錯誤時,進行如下操作:
建立名為 .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
