APP测试环境工具
ssooking Lv5

Android SDK

https://www.androiddevtools.cn/

https://stackoverflow.com/questions/2677431/where-to-install-android-sdk-on-mac-os-x

https://www.androidcentral.com/installing-android-sdk-windows-mac-and-linux-tutorial

1、MacOS使用brew安装

1
2
brew cask install android-sdk
brew install android-build-tools

You will have to add the ANDROID_HOME to profile (.zshrc or .bashrc)

1
export ANDROID_HOME=/usr/local/share/android-sdk

该方法安装时会出现未验证证书问题,参考下文解决方法。

2、通过Android Studio安装,参考链接

手工安装SDK环境

  • SDK tools
  • SDK platform-tools
  • SDK build-tools(可选)

国内镜像:https://mirrors.cloud.tencent.com/AndroidSDK/

1、sdk tools

1
2
3
4
wget https://dl.google.com/android/repository/sdk-tools-darwin-4333796.zip
unzip sdk-tools-darwin-4333796.zip
mkdir /usr/local/opt/android-sdk
mv tools /usr/local/opt/android-sdk

2、sdk platform-tools

1
2
3
下载地址 https://developer.android.com/studio/releases/platform-tools
unzip xxx.platform-tools_r30.0.4-darwin.zip
mv platform-tools /usr/local/opt/android-sdk

参考 安装adb调试工具

3、sdk build tools(可选)

build-tools_r28.0.2:android9

build-tools_r30.0.1: android11

下载对应压缩包,解压后放到/usr/local/opt/android-sdk/build-tools

最后添加环境变量

1
2
3
4
5
export ANDROID_SDK_ROOT=/usr/local/opt/android-sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/tools
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
export PATH=$PATH:$ANDROID_SDK_ROOT/build-tools

或者

1
2
export ANDROID_HOME=/usr/local/opt/android-sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools

添加完环境变量后测试命令

1
2
3
4
$ adb version
Android Debug Bridge version 1.0.41
Version 30.0.4-6686687
Installed as /usr/local/opt/android-sdk//platform-tools/adb

安装SDK时可能遇到的问题

解决未验证license问题

1
2
3
4
5
File /Users/ssooking/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 28.0.3 in /usr/local/opt/android-sdk/licenses
Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
Checking the license for package Android SDK Platform 28 in /usr/local/opt/android-sdk/licenses
Warning: License for package Android SDK Platform 28 not accepted.

解决方法

1
2
cd /usr/local/opt/android-sdk/tools/bin
./sdkmanager --licenses

一路输入y,接受证书。成功后,/usr/local/opt/android-sdk/会生成licenses目录

编译项目时找不到SDK路径

1
2
3
4
5
6
7
8
9
10
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

这个问题是找不到SDK路径,可以到 android/ 文件夹下找到 local.properties 文件,如果没有就创建一个,然后在里面修改对应的sdk路径。修改local.properties

1
sdk.dir = /usr/local/opt/android-sdk/

MacOS ADB问题

如果您的Mac已安装EasyTether应用程序,则可能会干扰ADB。

在此页面中,您可以执行以下命令:

1
sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext 

这将卸载您的EasyTether扩展。如果您需要重新启用EasyTether进行网络共享,可以使用:

1
sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext 

反编译工具

常用工具

无论是什么平台,反编译APK都离不开apktool、dex2jar、jd-gui :

  • apktool:一款Apk逆向工具,有编译、反编译、签名等功能。
  • dex2jar:作用主要是将dex文件转换成jar文件,转换成jar借助JD-GUI来查看反编译class代码;
  • jd-gui:一款Java反编译器GUI,可以查看到dex反编译后的class代码,通常需要配合dex2jar使用;
  • objdump:反编译Android原生库(C/C++),以及ARM平台的的二进制可执行文件
  • https://github.com/Jermic/Android-Crack-Tool

Android反编译——Mac篇

其他工具:jadx-gui、classyshark、bytecode-viewer

Mac安装

1
2
3
4
5
6
7
8
9
10
# Install apktool
brew install apktool

# Install dex2jar
wget https://nchc.dl.sourceforge.net/project/dex2jar/dex2jar-2.0.zip
unzip dex2jar-2.0.zip
cd dex2jar-2.0
sudo chmod +x d2j-dex2jar.sh
sudo chmod +x d2j_invoke.sh
./d2j-dex2jar.sh

apktool会被安装在:

/usr/local/Cellar/apktool/[version]/ linked to /usr/local/bin/apktool

为了使用方便,可以给dex2jar设置软链接:

1
2
sudo mv dex2jar-2.0 /usr/local/Cellar/
sudo ln -s /usr/local/Cellar/dex2jar-2.0/d2j-dex2jar.sh /usr/local/bin/d2j-dex2jar

Android抓包工具

手机端

PC端

  • BurpSuite
  • Charles
  • Fildder

抓https需要先安装工具提供的证书

1.启动Burp Suite,Proxy > Options > Import/Export CA certificate

以der格式导出Burp证书,保存为.cer/.crt文件。例如cacert.cer/ cacert.crt

2.在Android的/sdcard/中推送cacert.cer证书

1
adb push ~/TMPFile/burp123.cer /sdcard/Download/

3.打开手机设置,选择从SD卡安装CA证书,选择cacert.cer或者crt文件。

Android 7.0及以下:设置→安全→从SD卡安装CA证书

Android 7.0以上:设置→安全→加密与凭据→从SD卡/存储设备安装CA证书

如果证书安装正常,在设置→安全→可信凭证→用户下看到PortSwigger。

Android 7.0及以上版本证书问题

https://www.theburpsuite.com/2020/05/intercepting-android-application-https.html

Android 7.0及更高版本,Google已实施了一些安全功能以减少攻击面。面向API级别24+的应用程序不再信任用户安装的证书颁发机构(CA)。可以在此处阅读更多信息。

  • 用户证书存储路径在/data/misc/user/0/cacerts-added/

  • 系统证书存储路径在/system/etc/security/cacerts

我们可以将Burp或者Charles的证书作为系统信任证书安装。

导出Burp der格式的证书后,使用openssl来进行转换。然后使用adb将<hash>.0文件push到模拟器的/system/etc/security/文件夹中,并将权限修改为644。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
openssl x509 -inform DER -in burp.der -out burp.pem  
openssl x509 -inform PEM -subject_hash_old -in burp.pem | head -1
cp burp.pem 9a5ba575.0
adb push 9a5ba575.0 /data/local/tmp



adb shell
su
mount -o remount,rw /system
cd /data/local/tmp
cp 9a5ba575.0 /system/etc/security/cacerts/
cd /system/etc/security/cacerts
chmod 644 9a5ba575.0
reboot

openssl x509 -inform DER -in PortSwiggerCA.crt -out PortSwiggerCA.pem
openssl x509 -inform PEM -subject_hash_old -in PortSwiggerCA.pem|head -1
mv cacert.pem <hash>.0

adb push <hash>.0 /system/etc/security/cacerts
adb shell chmod 644 /system/etc/security/cacerts/<hash>.0


# OK
$ ls | grep cacert
cacert.der

# 转换成PEM文件
$ openssl x509 -in cacert.der -inform DER -outform PEM -out cacert.pem

# 提取hash
$ openssl x509 -inform PEM -subject_hash -in cacert.pem | head -1
7bf17d07

# 生成新的带指纹的证书文件7bf17d07.0
$ cat cacert.pem > 7bf17d07.0
openssl x509 -inform PEM -text -in cacert.pem -out /dev/null >> 7bf17d07.0
//openssl x509 -inform PEM -fingerprint -sha1 -in cacert.pem -out /dev/null >> 7bf17d07.0



$ adb push 7bf17d07.0 /data/local/tmp

$ adb shell
raphael:/ $ su (这里需要点击手机root权限授权弹框)
raphael:/ # mount -o rw,remount /
raphael:/ # mv /data/local/tmp/7bf17d07.0 /system/etc/security/cacerts/7bf17d07.0
raphael:/ # chmod 644 /system/etc/security/cacerts/7bf17d07.0

Android使用证书的哈希值并在末尾添加.0来重命名和存储证书。如果安装了多个设备的Burpsuite CA证书,则末尾序号会进行递增,如9a5ba575.1。

例如,我的cacert.cer证书存储为9a5ba575.0。通过输入su进入adb shell并成为root用户,然后输入。

1
2
3
4
5
6
7
8
9
10
adb shell
su
cd /data/misc/user/0/cacerts-added/
blueline:/data/misc/user/0/cacerts-added # ls
9a5ba575.0 9a5ba575.1

cp 9a5ba575.1 /system/etc/security/cacerts/
cd /system/etc/security/cacerts
chmod 644 9a5ba575.1
reboot

也可以利用Magisk的一个插件模块自动实现这样的功能。

在Magisk中安装Magisk Trust User CertsMoveCertificates模块。此模块会将所有安装的用户证书添加到Android系统信任证书存储中。

1.单击此处 下载最新版本的.zip文件。

2.将下载的zip文件推送到Android设备的/sdcard/Download/

3.打开Magisk,转到模块,单击加号,然后选择MagiskTrustUserCerts.zip文件路径以安装该模块。单击重新启动以激活该模块。

4.打开Magisk并转到模块以检查是否已安装Always Trust User Certificates模块。

这样以普通用户身份安装在/data/misc/user/0/cacerts-added/下的Burp Suite CA,在重启手机后将同样安装在/system/etc/security/cacerts作为系统信任证书。

https://medium.com/bugbountywriteup/android-pentesting-lab-4a6fe1a1d2e0

burpsuite导出证书为der格式

Use Openssl to convert DER to PEM and rename to <cert-hash>.0

1
2
3
4
# Convert certificate format from DER to PEM
$ openssl x509 -inform DER -in cacert.der -out cacert.pem #Display the "hash" of the certificate subject name
$ openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1 # Move cert.pem and rename to <hash>.0
$ mv cacert.pem 9a5ba575.0

https://www.bbsmax.com/R/Vx5ML2YYJN/

https://www.bbsmax.com/A/o75NX24ezW/

抓包工具:https://www.zhihu.com/question/20467503

设置抓包代理

配置模拟器的代理网络

设置→Wi-Fi→ WiredSSID→ 修改网络 →代理→手动设置

鼠标长按 wiredSSID—》修改网络:

手动设置代理为burpsuite 添加的代理地址

Android调试工具

Objection

1
sudo -H pip3 install objection

实际上,只要计算机上安装了objection,Frida也会自动被安装。

https://nosec.org/home/detail/2192.html

使用objection

1
2
objection -g com.xxx.xx explore
xxxx [usb] #android sslpinning disable --quiet #绕过证书SSL Pinning
1
2
3
4
5
6
7
8
9
10
11
# Hook Java方法
android hooking watch class_method com.xxx.xxx.methodName --dump-args --dump-backtrace --dump-return

# Hook Java类
android hooking watch class com.xxx.xxx

http://91fans.com.cn/post/pxxone/
# 有的情况下, 我们可以快速测试和hook来查看关键key(较为简单的app)使用objection来实现,这样连代码都不用写就可以完成需求。 比如我们用jadx观察可疑点,然后上hook

# 注意这里是直接hook类,她会打印内中所有函数
android hooking watch class_method xxx.xxx.xxx --dump-args --dump-backtrace --dump-return

Spawn方式Hook

从Objection的使用操作中我们可以发现,Obejction采用Attach附加模式进行Hook,这可能会让我们错过较早的Hook时机,可以通过如下的代码启动Objection,引号中的objection命令会在启动时就注入App。

1
objection -g packageName explore --startup-command 'android hooking watch xxx' 

首先加载App,进入交互式分析环境。 objection -g 包名 explore

1
objection -g com.xunmeng.pxxx explore

然后Hook这两个类:

1
2
android hooking watch class 'com.aimi.android.common.service.d$a'
android hooking watch class 'com.xunmeng.pxxx.secure.s'

这样可以一次性把这两个类下所有的函数都Hook,方便咱们定位到底是哪个函数来做了 anti-token 计算

1:objection1

现形了,很明显是 com.xunmeng.pxxx.secure.s.a 函数,不过又遇到一个问题,a函数有好几个重载,而且也看不到他们的入参和返回值?

这时候就可以使用 android hooking watch class_method 来hook函数,并且打印出入参和返回值:

1
android hooking watch class_method 'com.xunmeng.pxxx.secure.s.a' --dump-args --dump-return

frida

Android Hook工具之Frida 安装配置教程

Frida是一款基于Python + JavaScript的Hook调试框架,可以将自己编写的JavaScript代码注入到Windows,MACOS,Linux, iOS,Android和QNX 的应用中从而进行Hook,其实Frida功能不仅仅是Hook,还包括以下这些功能:

1
2
3
sudo -H pip3 install frida-tools
sudo pip3 install frida-tools --upgrade
sudo python3 -m pip install frida-tools

如果安装时报错如下:

1
error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>

解决方法是去Applications的Python下找到Install Certificates.command,执行后重新安装frida-tools即可

安装时到编译阶段时,可能会卡住,需要手工安装

1
Building wheel for frida (setup.py) ... \

在上面的安装命令输出结果中找到frida版本,直接下载对应平台的frida Python库的安装包,frida python库地址:https://pypi.org/project/frida/#files。

这里需要注意下载的版本,比如当前系统是macOS10.15,Python是3.8,就应该下载frida-12.7.11-py3.8-macosx-10.6-intel.egg、frida-15.1.9-py3.8-macosx-10.9-x86_64.egg 。

egg文件是一种打包,后缀名可以改成rar,直接解压缩,按照源码的形式安装,即把egg文件和egg文件解压出来的文件夹直接复制到Python的第三方库文件夹…Lib\site-packages中。

默认python路径/Library/Python/3.8/site-packages/

下载完成后直接安装:

1
2
sudo easy_install frida-12.11.17-py3.8-macosx-11.0-arm64.egg
sudo python3 -m easy_install frida-12.11.17-py3.8-macosx-11.0-arm64.egg

安装完成后,在终端中输入frida-ps命令查看,如果能显示当前系统进程则证明安装成功

frida-server

注意:frida-server需要以root权限运行

直接去frida release 下载对应的版本即可

注意:frida-server的版本必须跟宿主机的frida版本保持一致。比如宿主机Frida版本是12.7.6,Android手机是arm64的,则应该下载:frida-server-12.7.6-android-arm64.xz。

忘记frida版本可以使用frida --version命令查看。如果不知道 Android架构信息,可以 adb shell 然后执行cat /proc/cpuinfo命令查看。

如果是在模拟器进行调试,下载frida-server-x.x.x-android-x86_64或者x86的;

如果使用实体手机进行调试,下载frida-server-x.x.x-android-arm

注意:genymotion是32位,需要下载frida-server-xx.x.x-android-x86.xz

下载后解压文件,并将二进制文件重命名为: frida-server, 并使用adb push命令推送到手机中

1
2
3
4
5
6
adb push frida-server /data/local/tmp/


adb push frida-server-15.1.9-android-x86_64 /data/local/tmp/
adb shell "chmod 777 /data/local/tmp/frida-server-15.1.9-android-x86_64"
adb shell "nohup /data/local/tmp/frida-server-15.1.9-android-x86_64 &"

推送完成后将frida-sever赋予执行的权限,并启动frida-server,使用以下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
adb shell
su
cd /data/local/tmp/
chmod 777 frida-server
nohup ./frida-server &

或者
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"

#如果要监听端口:
./frida-server 0.0.0.0:8888


#Unable to load SELinux policy from the kernel: Failed to open file “/sys/fs/selinux/policy”: Permission denied
adb shell "su -c setenforce 0"
ps -e | grep frida-server
kill -9 your_process_id

如果执行frida-server时出现卡死的情况,可以参考

然后在终端中执行

1
2
3
4
frida-ps -U

frida-ps -Uai #查看手机进程的名字及包名
objection -g com.szlanyou.iov explore

应该就会看到如下进程列表了

1
2
3
4
5
PID  Name
----- ----------
30141 adbd
23825 android.process.acore
11070

参数-U 代表USB,意思让Frida检查USB设备,使用frida-ps -R 也可以,但是需要进行转发。执行adb forward tcp:27042 tcp:27042后执行frida-ps -R也可以看到手机上的进程.
到此为止,Frida工作环境已经准备好了,下一篇文章介绍一下Android Hook工具之Frida 基础使用

如果frida-server没有正常运行,会出现以下情况的报错

1
Failed to enumerate processes: unable to connect to remote frida-server: Unexpected lack of content trying to read a line
1
2
3
4
5
6
frida-ps -Uai
PID Name Identifier
---- ------------- -------------------------------
290 Mail com.apple.mobilemail

objection -g 209 device_type

是的,您可以通过指定-N/ --network标志然后提供给远程设备--host--port使用Frida在explore命令之前监听的位置来连接到远程设备。像这样objection -N -h 192.168.0.1 -p 27042 explore

1
2
3
4
5
6
7
我修改了LaunchDaemon的plist,以启动frida-server侦听ip地址。ssh连接似乎也可行,但异议会超时。
iPad上的ps:
ps aux root 1030 0.0 0.3 683248 2776 ?? Ss 11:27PM 0:00.03 /usr/sbin/frida-server -l 10.0.1.132:27042

这就是我在Linux系统上得到的

~ # objection -N -h 10.0.1.132 -p 27042 explore

最后分享一个小工具:frida-server start/stop 脚本

注入进程https://zhuanlan.kanxue.com/article-350.htm

在 iPhone 上部署 Frida 框架的官方教程(含越狱和非越狱环境,英文):www.frida.re/docs/ios/ 116 给frida 做了个图形界面,动态分析iOS 应用 - iOS逆向论坛

frida基本命令

1
2
3
4
5
frida-ls-devices
frida-ps -Uai

frida-discover <PID of calendar app>

调试某个PID的进程

1
2
3
4
5
6
7
frida-ps -Uai
PID Name Identifier
---- ------------- -------------------------------
290 Mail com.apple.mobilemail


objection -g 209 explore
1
2
3
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> .zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile
echo 'eval "$(pyenv init -)"' >> /etc/profile
  • 强制启动一个应用进程
    frida -U --no-pause -f [应用包名]
    使用-f选项表示强制启动一个应用程序,--no-pause选项表示不中断应用程序的启动,如果不使用这个选项总是会遇到 在强制启动应用程序2秒左右后程序自动退出,
    例: 强制启动Chrome并attach到当前进程
1
frida -U --no-pause -f com.android.chrome

使用Frida框架进行hook 去壳

Frida使用手册:https://github.com/hookmaster/frida-all-in-one

免Root运行Frida

https://github.com/WooyunDota/DroidDrops/blob/master/2018/Frida.Android.Practice.md

Frida提供了免root的Hook方案,即手动注入frida-gadget库, Objection对其进行了封装,但实际没啥用(搞逆向的怎么会没一台root机器)。除此之外,Objection提供了对IOS的Hook,以及对sslunpinng的处理,Hook剪切板/Root检测等,但实际使用中用处不大,一般会选择其他专门的工具,此处不提。

详情参考Objection github目录下objection—console—helpfiles

FridaGadget注入源程序
首先在原APK的lib目录下分别加入各自架构的FridaGadget库 https://github.com/frida/frida/releases/
并在同目录下写入配置文件(执行哪个脚本) 配置文件名就是库名的so前加config.

使用objection自动完成frida gadget注入到apk中.

兼容性较差,不是很推荐.

1
2
» pip3 install -U objection
» objection patchapk -s yourapp.apk

其他

Magisk,它现在有个超强的Magisk Hide功能,能隐藏root状态。

https://www.52pojie.cn/thread-1048786-1-1.html

Frida GUI Tools

Zentracer

  • 点击打开 “设置” 应用;
  • 选择 Action → Match RegEx
  • 输入E:java.io.File,点击add,然后关闭窗口
  • 输入M:java.io.File,模糊匹配
  • 点击 Action → Start

hook类所有方法

https://www.cxyzjd.com/article/m0_37696990/104787127

Dwarf对类或方法查添断点

菜单栏java下面有两个选项
class: 点击class会弹出JVM instector,该标签主要用于对指定的类 构造器及类的方法进行下断点
trace:点击trace会弹出JVM trace标签,该签主要用于对指定类进行调用关系的展示

Dwarf断点移除或清空后,该断点不可再次添加,如果需要添加需要重启应用程序:即菜单process->restart 快捷键F9

在断点处停下时,会出现一个JVM debugger标签,可以此时可以看到一些拦截到的变量值;

最右侧的threads则显示当前当前线程,可以选中内容右健=>resume进行断点释放。如果有多个断点则resume,右下角的日志栏也有相应信息

注:菜单process-> step F7 ,setp call f8 ,step block也可以释放断点,目前测试功能好像一样,释放断点后如需再次对该方法进行断点需要重启

trace列是要查看调用关系的类
class列是显示所有已加载的类,可以右键-》search进行过滤显示,选择要trace的类双击,然后在trace会添加上选择的类

APP审计工具

Android测试环境虚拟机:https://androidtamer.com/tamer4-release

https://github.com/facebook/mariana-trench 针对Android和Java的静态代码审计工具

https://bbs.pediy.com/thread-269196.htm

Android漏洞挖掘三板斧——drozer+Inspeckage(Xposed)+MobSF

https://github.com/LoRexxar/Kunlun-M

https://github.com/MobSF/Mobile-Security-Framework-MobSF

https://bbs.pediy.com/thread-269196.htm

1
2
3
4
5
6
7
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest



git clone https://github.com/LoRexxar/Kunlun-M.git && cd Kunlun-M
sudo docker build -t kunlun-m -f ./docker/Dockerfile .

MobileSF

https://mobsf.github.io/docs/

https://mp.weixin.qq.com/s/-4F5o54Sqo4YL85hzQr_rg

/Users/ssooking/.MobSF/config.py

如果 Dynamic Analyzer 没有检测到您的 android 设备,您需要ANALYZER_IDENTIFIER~/.MobSF/config.py环境变量中或通过环境变量手动配置ANALYZER_IDENTIFIER

例子:ANALYZER_IDENTIFIER = '192.168.56.101:5555'

可以从 Genymotion 标题栏中找到 Android 设备 IP,默认端口为5555.

1
./mac_run.sh 127.0.0.1:8000

推荐七个有代表性的免费APP应用安全测试工具:

1)OWASPZedAttackProxy(ZAP)

OWASPZAP是目前最流行的免费APP移动安全测试工具,由全球数百个志愿者维护。该工具可以在APP的开发和测试阶段自动查找安全漏洞。OWASPZAP同时还是高水平渗透测试专家非常喜爱的手动安全测试工具。

2)QARK(QuickAndroidReviewKit)

QARK是一种Android程序源代码安全漏洞分析工具。该工具有自己的开发社区,任何人都可以免费使用。QARK还会尝试提供提供动态生成的AndroidDebugBridge(ADB)命令来帮助核实潜在漏洞。

3)Devknox

对于使用AndroidStudio开发Android应用程序的开发者来说,Devknox是此类移动安全检测工具种的佼佼者,Devknox不但能检测基本的移动安全问题,还能向开发者提供问题修复的实时建议。

4)Drozer

Drozer是一个相当全面的Android安全与攻击框架,这个移动app安全测试工具能够通过进程间通讯机制(IPC)与其他Android应用和操作系统互动,这种互动机制使其有别于其他自动化扫描工具。

5)MobSF(MobileSecurityFramework)

MobileSecurityFramework是一个自动化的移动app安全测试工具,支持Android和iOS双平台,能够进行静态、动态分析以及webAPI测试。MobSF经常被用来对Android或iOSapp进行快速安全分析,支持二进制(APK&IPA)形式以及源代码的zip压缩包。

6)Mitmproxy

Mitmproxy是一个免费的开源工具,可以用于拦截、检测、修改或延迟app与后端服务之间的通讯数据,该工具的名字也可以看出这是一种类似中间人攻击的测试模式。当然,这也意味着该工具确实可以被黑客利用。

7)iMAS

iMAS也是一个开源移动app安全测试工具,可以帮开发者在开发阶段遵守安全开发规则,例如应用数据加密、密码提示、预防应用程序篡改、在iOS设备中部署企业安全策略等。无论是检查设备越狱,保护驻内存敏感信息还是防范二进制补丁,iMAS能为你的iOS程序在充满敌意的环境中提供安全保障。

参考:https://blog.csdn.net/u010278862/article/details/73240573
参考:https://blog.csdn.net/u013107656/article/details/52876312

在线安全测试工具

https://open.appscan.io/tools

Android调试分析

在抓包过程中看到:请求参数中包含了一个key, 它的值是加密的。

// 启动Monitor

cd /Users/mtdp/Library/Android/sdk/tools

./monitor

Monitor的logcat中,并未打印出换行的数据。

  • Post title:APP测试环境工具
  • Post author:ssooking
  • Create time:2019-09-16 14:36:00
  • Post link:https://ssooking.github.io/2019/09/app测试环境工具/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.