python 测试app漏洞

您所在的位置:网站首页 adbopentools python 测试app漏洞

python 测试app漏洞

2024-01-30 13:00| 来源: 网络整理| 查看: 265

网安引领时代,弥天点亮未来   

2eb906e2dd6097fe645386fadbf34f5b.png 0x00目录 简述

Apktool

Apk反编译得到Java源代码

dex2jar

jd-gui.exe

劫持工具

使用方法

adb工具

PYTHON2.7

drozer工具安装及使用

使用drozer对app进行测试

2eb906e2dd6097fe645386fadbf34f5b.png 0x01APKTooL

apktool:简而言之就是获取资源文件,主要查看res文件下xml文件、AndroidManifest.xml和图片。

(注意:如果直接解压.apk文件,xml文件打开全部是乱码)

dex2jar:将apk反编译成Java源码(classes.dex转化成jar文件)

jd-gui:查看APK中classes.dex转化成出的jar文件,即源码文件

cc5ce047c05c87da15cd74f80ef0e090.png

Apktool

下载地址

https://ibotpeaches.github.io/Apktool/install/

03b584973bff4f7af406ccd5d18957a8.png

windows则下载放置同一目录名字一样放置在要检测的apk里最好方便检测

1503a61a5636d0a98ce5905f84d3acec.png

apktool.bat 不好下载可以用这个

@echo offsetlocalset BASENAME=apktool_chcp 65001 2>nul >nul set java_exe=java.exe if defined JAVA_HOME (set java_exe="%JAVA_HOME%\bin\java.exe") rem Find the highest version .jar available in the samedirectory as the scriptsetlocal EnableDelayedExpansionpushd "%~dp0"if exist apktool.jar ( setBASENAME=apktool gotoskipversioned)set max=0for /f "tokens=1* delims=-_.0" %%A in ('dir /b/a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB:skipversionedpopdsetlocal DisableDelayedExpansion rem Find out if the commandline is a parameterless .jaror directory, for fast unpack/repackif "%~1"=="" goto loadif not "%~2"=="" goto loadset ATTR=%~a1if "%ATTR:~0,1%"=="d" ( rem Directory,rebuild setfastCommand=b)if "%ATTR:~0,1%"=="-" if"%~x1"==".apk" ( rem APK file, unpack setfastCommand=d) :load%java_exe% -jar -Duser.language=en -Dfile.encoding=UTF8"%~dp0%BASENAME%%max%.jar" %fastCommand% %* rem Pause when ran non interactivelyfor /f "tokens=2" %%# in("%cmdcmdline%") do if /i "%%#" equ "/c" pause

0463a989cab64b0b3a8c7c59b8c01551.png

反编译后的文件如下

de0b759a697dd989d5d0394810e52735.png

将反编译后的文件重新打包

1718e0952448c1d5e8f28228c5cab7d5.png

目录文件内多了一个build、dist

bac11a6c56a7d66c90a9656ad6f21881.png

9df0eefae75b8ef69e610753497172c8.png

注意:

反编译时,可能会报bug:

Exception in thread “main” brut.androlib.AndrolibException: Could notdecode

这个问题,就是apktool.jar比较老旧的问题;apktools.jar下载官网。

2eb906e2dd6097fe645386fadbf34f5b.png 0x02  Apk反编译得到Java源代码

c4fa87cd797a6d32cd722ea47bb7f187.png

得到classes.dex 文件

它就是java文件编译再通过dx工具打包而成的,将获取到的classes.dex放到之前解压出来的工具dex2jar文件夹内

dex2jar

下载地址

https://sourceforge.net/projects/dex2jar/files/latest/download

839ccf3874faf451926a21811dcc4217.png

去执行命令在该目录下,然后生成jar文件

6bfdaf73862cf938f59051aff1758194.png

jd-gui.exe

下载地址:

https://www.sdbeta.com/plus/download.php?open=2&id=224579&uhash=6fd792195f5c2d1cd6f23471

使用jd-gui.exe去分析生成的classes-dex2jar.jar包

a430e2018d3626f32ff9d15ac15ab2f8.png

3d2cdb2f5d2e79ffb520a93b8bd31e2f.png

2eb906e2dd6097fe645386fadbf34f5b.png 0x03劫持工具

那么在实际检测该漏洞的时候,可以利用工具逆向、扫描源代码进行分析,查看代码在关键位置是否进行了一些报警,如toast。实现的方法为直接使用一个测试的apk对目标应用进行界面覆盖,观察目标应用是否进行了报警。

https://github.com/aloswoya/android_app

在styles.xml文件中利用样式配置将界面设置为透明

489f58c9ce03e0c9552dbcf466aefd86.png

d96ab6f0475ef381140aa9224289bc3c.png

a3dfd37bf3e23ba1b0949d1fc6e8acb5.png

68a5b0b934971e1ed5f5cab9db3116be.png

2eb906e2dd6097fe645386fadbf34f5b.png 0x04使用方法

adb工具

简介

adb是Android的一个很重要的调试工具,熟练掌握后可实现很多功能,比如有些手机的解锁、ROOT就会用到adb工具

安装过程

https://developer.android.com/studio/releases/platform-tools

82c060523a37fc7746fdbe487824bc65.png

由于网速的问题没下载下来,然后从其他网站上下载了一个比较旧的版本

75a58dc4e6fc0f029b71012c06dd500a.png

设置环境变量

48fdfbdd81d5d011de1d478df4d5b1a0.png

安装结果

d206a6255e3c62afe858026acee8cded.png

ac35a8d2705e646ff6c830ec6a34b324.png

33131c53ee5cf273e69c8e788c9dd711.png

669c0ccd86c72d9591e3adb57d882c48.png

cef5ea08cc8a636f1bd3ef9dedd66fd9.png

PYTHON2.7

下载地址

https://www.python.org/downloads/release/python-2718/

87f04295e4dfca5bfd9a1e1917d8366c.png

bfbf180b8cf1d994fc1353da270e9c61.png

安装结果

bb895a1be79f64e4af48ab1132c4d079.png

drozer工具安装及使用

 简介

drozer是一款针对Android系统的安全测试框架。

Drozer可以通过与Dalivik VM,其它应用程序的IPC端点以及底层操作系统的交互,避免正处于开发阶段,或者部署于的组织的android应用程序和设备暴露出不可接受的安全风险。

drozer提供了很多Android平台下的渗透测试exploit供你使用和分享。

对于远程漏洞,drozer能够生产shellcode帮助你部署drozer代理作为一个远程管理工具,最大化对设备的利用。

更快的Android安全评估drozer可以大大缩减Android安全评估的耗时,通过攻击测试暴露Android APP的漏洞。

基于真机的测试

drozer运行在Android模拟器和真实设备上,它不需要USB调试或其他开发即可使用。

自动化和扩展drozer有很多扩展模块,你可以找到他们进行测试以发现Android安全问题

安装过程

https://github.com/FSecureLABS/drozer/releases

9bf94bd17b794d98c4904debbf741969.png

6b4b64e832a5cc486fa1d08a8b5cd742.png

将agent.apk 导入模拟器里

fdfe68c0a2e3bfbae57b3622e406e77e.png

a1344e2d324a126a9d0cf9e77e738840.png

使用过程

5e29709eb57f99cc3c4e5947ed742e22.png

使用drozer对app进行测试

        官方直接指定的drozer支持命令及其命令说明列表如下 命令描述run执行驱动模块list显示可在当前会话中执行的所有drozer模块的列表。这将隐藏您没有适当权限运行的模块。shell在代理进程的上下文中,在设备上启动交互式Linux Shell。cd挂载特定的名称空间作为会话的根目录,以避免重复输入模块的全名。clean删除drozer在Android设备上存储的临时文件。contributors显示为系统中使用的drozer框架和模块做出贡献的人员列表。echo将文本打印到控制台。exit终止驱动程序会话。help显示有关特定命令或模块的帮助。load加载包含drozer命令的文件,并依次执行它们。module从Internet查找并安装其他drozer模块。permissions显示授予drozer代理的权限列表。set将值存储在变量中,该变量将作为环境变量传递给drozer生成的任何Linux shell。unset删除drozer传递给它产生的任何Linux shell的命名变量。

b5b62ee036d6c906b0731b8a2f4c0324.png

找到所要测试安卓应用程序的包名

9a47edf7071da84bb7c7a72d2c9d9ade.png

通过app.package.list模块获取要检测的app的包名dz> run app.package.listcom.android.providers.telephony com.android.providers.calendar com.android.providers.media com.android.wallpapercropper(com.android.wallpapercropper)com.android.documentsui com.android.externalstorage com.android.htmlviewer com.android.mms.service (MmsService)com.android.providers.downloads com.android.browser [Errno 0] Error 使用app.package.info模块查看apk基本信息dz> run app.package.info -acom.android.providers.downloads Package: com.android.providers.downloads ApplicationLabel: Process Name:android.process.media Version:5.1.1-500200917 Data Directory:/data/data/com.android.providers.downloads APK Path:/system/priv-app/DownloadProvider/DownloadProvider.apk UID: 10004 GID: [1028, 1015,1023, 1024, 2001, 3003, 3007] Shared Libraries:null Shared User ID:android.media Uses Permissions: -android.permission.RECEIVE_BOOT_COMPLETED -android.permission.ACCESS_DOWNLOAD_MANAGER -android.permission.ACCESS_CACHE_FILESYSTEM -android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS -android.permission.ACCESS_NETWORK_STATE -android.permission.INTERNET -android.permission.WRITE_EXTERNAL_STORAGE -android.permission.ACCESS_ALL_DOWNLOADS -android.permission.UPDATE_DEVICE_STATS -android.permission.CONNECTIVITY_INTERNAL -android.permission.MODIFY_NETWORK_ACCOUNTING -android.permission.CLEAR_APP_CACHE -android.permission.WAKE_LOCK -android.permission.READ_EXTERNAL_STORAGE DefinesPermissions: -android.permission.ACCESS_DOWNLOAD_MANAGER -android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED -android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS -android.permission.DOWNLOAD_CACHE_NON_PURGEABLE -android.permission.DOWNLOAD_WITHOUT_NOTIFICATION -android.permission.ACCESS_ALL_DOWNLOADS dz> run app.package.info -a/system/priv-app/DownloadProvider/DownloadProvider.apkcould not find the package: /system/priv-app/DownloadProvider/DownloadProvider.apkdz> run app.package.info -a DownloadProvider.apkcould not find the package: DownloadProvider.apkdz> run app.packag.list -f DownloadProvider.apkunknown module: 'app.packag.list'dz> run app.package.list -f DownloadProvider.apkdz> run app.package.info -acom.android.providers.downloadsPackage: com.android.providers.downloads ApplicationLabel: Process Name:android.process.media Version:5.1.1-500200917 Data Directory:/data/data/com.android.providers.downloads APK Path:/system/priv-app/DownloadProvider/DownloadProvider.apk UID: 10004 GID: [1028, 1015,1023, 1024, 2001, 3003, 3007] Shared Libraries:null Shared User ID:android.media Uses Permissions: - android.permission.RECEIVE_BOOT_COMPLETED -android.permission.ACCESS_DOWNLOAD_MANAGER -android.permission.ACCESS_CACHE_FILESYSTEM -android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS -android.permission.ACCESS_NETWORK_STATE -android.permission.INTERNET -android.permission.WRITE_EXTERNAL_STORAGE -android.permission.ACCESS_ALL_DOWNLOADS -android.permission.UPDATE_DEVICE_STATS -android.permission.CONNECTIVITY_INTERNAL -android.permission.MODIFY_NETWORK_ACCOUNTING -android.permission.CLEAR_APP_CACHE -android.permission.WAKE_LOCK -android.permission.READ_EXTERNAL_STORAGE DefinesPermissions: -android.permission.ACCESS_DOWNLOAD_MANAGER -android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED - android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS -android.permission.DOWNLOAD_CACHE_NON_PURGEABLE -android.permission.DOWNLOAD_WITHOUT_NOTIFICATION -android.permission.ACCESS_ALL_DOWNLOADS 使用app.package.attacksurface模块识别攻击面所谓攻击面,应该就是指可export的安卓四大组件(activaty、broadcast receiver、content provider、service) dz> run app.package.attacksurfacecom.android.providers.downloadsAttack Surface: 0 activitiesexported 0 broadcastreceivers exported 2 contentproviders exported 1 servicesexported Shared UID(android.media) 使用app.activity.info模块查看activity组件信息dz> run app.activity.info -acom.android.providers.downloadsPackage: com.android.providers.downloads No matchingactivities. 使用app.provider.info模块查看contentprovider组件信息dz> run app.provider.info -acom.android.providers.downloadsPackage: com.android.providers.downloads Authority:downloads ReadPermission: null WritePermission: null ContentProvider: com.android.providers.downloads.DownloadProvider MultiprocessAllowed: False Grant UriPermissions: True Uri PermissionPatterns: Path:/all_downloads/ Type:PATTERN_PREFIX Path:/my_downloads/ Type:PATTERN_PREFIX PathPermissions: Path:/my_downloads Type: PATTERN_PREFIX ReadPermission: android.permission.INTERNET WritePermission: android.permission.INTERNET Path:/all_downloads Type:PATTERN_PREFIX ReadPermission: android.permission.ACCESS_ALL_DOWNLOADS WritePermission: android.permission.ACCESS_ALL_DOWNLOADS Path:/download Type:PATTERN_PREFIX ReadPermission: android.permission.INTERNET WritePermission: android.permission.INTERNET Authority:com.android.providers.downloads.documents ReadPermission: android.permission.MANAGE_DOCUMENTS WritePermission: android.permission.MANAGE_DOCUMENTS ContentProvider: com.android.providers.downloads.DownloadStorageProvider MultiprocessAllowed: False Grant UriPermissions: True 使用app.service.info模块查看service组件信息dz> run app.service.info -acom.android.providers.downloadsPackage: com.android.providers.downloads com.android.providers.downloads.DownloadIdleService Permission:android.permission.BIND_JOB_SERVICE

安装apk文件

48f00183ec1accb5a8a76dc136072287.png

源码地址

https://github.com/aloswoya/android_app

目的:方法为直接使用一个测试的APK对目标应用进行界面覆盖,观察目标应用是否进行了报警。

ca3f6a31a2104f21545d19c46caf76fd.png

intent-filter> activity>   application>

8286390b1cdd92caac1942cf56bbdb6c.png

打包完成后,在测试apk开启的情况下,使用drozer来调用MainActivity:

run app.activity.start --component com.test.uihijackcom.test.uihijack.MainActivity

效果图如下:

4ccb806d42c2d6c1e90c8a83e2d9500c.png

修复建议

测试到缺陷后,开发方需要对程序进行修复,修复方法也很简单,

就是也去判断当前应用程序是否位于栈顶 (是否显示在前面),

如果在后台了,就进行一些如toast提示、震动、通知弹窗等等,告诉用于当前应用已经在后台运行了。

通过在线工具进行测试

1.腾讯金刚审计系统

http://service.security.tencent.com 

优点:包含了修复建议

2.阿里聚安全检测

网址: http://jaq.alibaba.com/

阿里聚安全下有自己的安全博客,包含一些:1.安全漏洞、2.病毒分析、3.技术研究、4.安全报告相关文档。

 3.360捉虫猎手检测结果

 网址: http://appscan.360.cn/

 4.爱加密

 网址:http://safe.ijiami.cn/analyze

优点:在导出的报告中可以看到对当前apk的评分

 5.百度MTC

 网址: http://mtc.baidu.com/

HijackActivity-劫持工具

https://github.com/rohitshampur/droidsheep/blob/master/%20droidsheep/DroidSheep_public/src/de/trier/infsec/koch/droidsheep/activities/HijackActivity.java

c3f5cc680db6496edd2b09284cf8083c.png

静态逆向分析工具-jeb;下载地址:http://www.uzzf.com/soft/313572.html

Android     Killer

Tcpdump数据抓包工具;下载地址:https://www.81857.net/soft/11276.html#xzq

xposed -     android hook框架[雷神模拟器或者夜神模拟器内搜索安装就行]

JustTrustMe -     xposed框架下信任所有证书的插件实现[giithub上搜索]或者查看https://blog.csdn.net/weixin_43650289/article/details/109105943

4d57342f9b55f6610c3a7aa256840776.png

0x05参考链接

https://www.freebuf.com/sectool/249725.html

https://blog.csdn.net/JiaoMaGe/article/details/103023839?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-103023839.nonecase&utm_term=activity%20%E7%95%8C%E9%9D%A2%E5%8A%AB%E6%8C%81%E5%B7%A5%E5%85%B7&spm=1000.2123.3001.4430

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

https://blog.csdn.net/wizardforcel/article/details/54755814

https://blog.csdn.net/nancyfh/article/details/81196070

https://www.cnblogs.com/zhaoyixiang/p/11236458.html

http://www.mamicode.com/info-detail-2486333.html

https://www.jianshu.com/p/7c0a6da594c8

https://www.cnblogs.com/lsdb/p/9441813.html

https://blog.csdn.net/weixin_39190897/article/details/108802836

47def92fe1519fb6d82a25f911e0d8ad.png

40e61a142cff5a18162c03b622d55bff.gif 

知识分享完了

喜欢别忘了关注我们哦~

予以风动,必降弥天之润!

   弥  天

安全实验室

ef0a490c83ddf25f324065954eedee82.png


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3