android渗透测试学习笔记

2019-01-17  ⋅   android逆向  

《Android渗透测试学习手册》写的学习笔记

摘要

  1. adb

工具

  • ProGuard 压缩、优化和混淆Java字节码的工具
  • DashO java混淆器代码保护

attify/lot exploitation/penetration testing
Drozer
Exploit-Me漏洞

Android Debug Bridge adb

删除锁屏密码
然后重启

adb shell
su
cd /data/system 
ls |grep key
rm gatekeeper.password.key
rm gatekeeper.pattern.key
reboot -r #重启
$ adb devices //连接设备

$ adb shell //与设备shell交互

    ps //正在运行的进程
        system 系统拥有
        root 根进程
        radio 电话和无线电相关的进程
        app_ 用户已下载的所有应用程序 正在运行

$ adb kill-server //杀死服务器
$ adb start-server //启动服务器

$ adb shell pm list packages //pm包管理器 工具获取所有已安装的软件包列表

$ adb shell dumpsys meminfo //获取所有应用程序及其当前内存列表

$ adb logcat -d -f /data/local/logcats.log
$ adb logcat -d -f /sdcard/xx.log // 保存logcat日志
    -d标志指定转储完整日志文件并退出
    -f标志指定写入文件而不是在终端打印

路径

二进制文件
/system/bin
/system/xbin

应用数据
/data/data

    应用程序 文件 数据库 缓存
    /data/data/xx.xx.xx # ls
    cache
    databases
    files
    lib

安装文件
/data/apk

Play商店应用
/data/app-private

密码锁定路径
password.key  gesture.key
/data/system

cd /data/system
rm gesture.key

组和权限
platform.xml
/system/etc/permissions/
cat platform.xml

sd卡
/mnt/sdcard/

version
cat /proc/version

命令

android虚拟设备的列表
android list avd

MonkeyRunner

adb shell
# monkey 10 //10个自动化触摸,敲击和事件来测试应用程序

Burp Suite

download

java -jar burp-suite.jar

启动模拟器与bp代理

emulator -avd [name of the avd] -http-proxy 127.0.0.1:8080
emulator.exe -avd AttifyAVD -http-proxy 127.0.0.1:8080

APKtool

download

apktool安装在/usr/bin中

.dex文件转换为smali文件

smali-wiki

反编译
apktool d [app-name].apk // d 标示反编译
构建
apktool b [decompiled folder name] [target-app-name].apk

Virtuous Ten Studio (VTS) 只能在Windows环境中运行

download

与Apktool类似功能,VTS提供一个漂亮的图形界面

dex2jar**

download

dex2jar

win:

d2j-dex2jar.bat "xx.apk" dex2jar xx.apk -> xx.jar

mac:

sh d2j-dex2jar.sh

JD-GUI

打开jar文件
download

签名

检查应用程序签名
$ jarsigner -verify -certs -verbose testing.apk

解压缩.apk文件 解析META-INF文件夹中出现的CERT.RSA文件的ASCII内容 以获取签名

$unzip testing.apk
$cd META-INF
$openssl pkcs7 -in CERT.RSA -print_certs -inform DER -out out.cer
$cat out.cer

Android启动流程

解锁引导加载程序
Nexus 7
$fastboot oem unlock

创建自己的Bootloader

在引导加载程序启动内核并启动init之后,它挂载Android系统运行的一些重要目录

/dev /sys /proc

init从配置文件init.rc和init.[device-name].rc中获取自己的配置,在某些情况下从位于相同位置的.sh文件获取自己的配置

$ls -l | grep 'init'

# cat init.rc

加载时使用的属性
location/system/build.prop
system/build.prop

一但所有东西被加载,init最后会加载一个称为Zygote的进程,负责以最小空间加载Dalvik虚拟机和共享库,来加快整个进程的加载速度。
一旦完成整个引导过程,系统发送BOOT_COMPLETED的广播,许多应用程序可能使用称为广播接收器的Android应用程序中的组件来监听。

Android应用程序拆解

  • Classes.dex 文件
  • AndroidManifest.xml 文件
  • META-INF 文件夹
  • resources.arsc 文件
  • res 文件夹
  • assets 文件夹
  • lib 文件夹

unzip -l simple_game.apk // -l 展示压缩包内容
file simple_game.apk //查看是否是一个有效的压缩包

审计Android应用**

ContentProvider(内容提供器)泄露

所有ContentProvider具有唯一的统一资源标识符(URI)以便被识别和查询。
命名标准惯例以content://开始
AndroidAPI版本低于17 ContentProvider默认属性时始终导出。
需要在AndroidManifest.xml文件检查ContentProvider

<provider
    android:name="com.test.example.DataProvider"
    android:authorities="com.test.example.DataProvider">
</provider>

example:

  1. 反编译apk
  2. 查看AnroidManifest.xml文件中的ContentProvider
  3. grep -R 'content://'
  4. adb install vulnerable-app.apk
  5. 创建另一个没有任何权限的app来查询ContentProvider,然后查询漏洞app的ContentProvider。
    adb shell content query --uri [URI of the content provider]
    adb shell content query --uri content://com.xx.xx.provider.NotePad/notes
    或者使用Drozer在app中找到泄漏的ContentProvider
  6. 将agent.apk安装到模拟器,.zip文件内
    启动模拟器转发端口(31415)
    adb install agent.apk
    adb forward tcp:31415 tcp:31415
  7. 启动app 单击 “Embedded Server(嵌入式服务器)” 没看懂
  8. 终端启动Drozer
    drozer console connect
  9. 运行app.provider.finduri模块来查找ContentProvider
    run app.provider.finduri com.threebanana.notes
  10. 运行app.provider.query 模块指定ContentProviderURI
    run app.provider.query conntent://com.threebanana.notes.provider.NotePad/notes --vertical
    如果Drozer能查询和显示来自ContentProvider的数据,意味着ContentProvider泄漏数据并存在漏洞
  11. 修复漏洞在创建ContentProvider时指定参数android:exported=false,或者创建一些新的权限,另一个应用程序在访问供应器之前必须请求它。

不安全的文件存储**

目录遍历或本地文件包含漏洞:读取系统文件

客户端注入攻击:sqlite注入

pdf

链接:
提取码: ddka

评论系统未开启,无法评论!

  1. 摘要
  2. 工具
  3. links
  4. Android Debug Bridge adb
    1. 路径
  5. 命令
  6. MonkeyRunner
  7. Burp Suite
  8. APKtool
  9. Virtuous Ten Studio (VTS) 只能在Windows环境中运行
  10. dex2jar**
  11. JD-GUI
  12. 签名
  13. Android启动流程
    1. 创建自己的Bootloader
  14. Android应用程序拆解
  15. 审计Android应用**
  16. 不安全的文件存储**
  17. pdf