AP渗透测试学习
1、测试指标

2、测试环境
SDK: Java JDK ,Android SDK
工具: 7zip dex2jar jd-gui apktool activity 劫持工具
3、安装包签名
在Android中,包名相同的两个APK会被认为是同一个应用,新版本覆盖旧版本的时候签名证书必须一致。如果APK没有使用自己的证书进行签名,将失去对版本管理主动权。
检测: jarsinger.exe -verify APK 文件路径 -verbose -certs
需要注意的是只有使用直接客户端的证书签名的时候,才认为是安全的,Debug 证书、第三方(开发)证书均存在安全风险。

2、反编译保护
测试客户端的安装程序,判断是否能够反编译成代码, JAva代码和SO文件是否存在代码混淆等保护,未做保护的Java 代码,可以分析器运行的逻辑,并对代码中的缺陷对客户端和服务器端进行测试
测试步骤,将APK当成ZIP并解压,得到Classes.dex文件,使用 dex2java.bat 执行 dex2jar.bat classes.dex 文件路径

得到 classes.dex.jar 文件,然后使用 jd-GUI 打开 JAVA文件,可以得到JAVA代码
(注意,直接使用 smali2java打开 apk文件 ,也可以反编译 JAVA代码)
(注意:有时候使用 Apktool 能够解包并查看 Smali,但是dex2jar却不行,如果 dex2jar反编译失败的时候,可以试试能否恢复smali代码)
逆向之后如果源代码没有混淆则表明 不安全的,如果代码经过混淆,或者加壳措施,不能完整恢复代码,则是安全的
安全建议,建议客户端程序可以把关键的代码一JNI方式放在SO 库里,SO库中是经过编译的ARM汇编代码,可以对其进行夹壳保护,防止逆向分析。
3、应用完整性校验
测试客户端程序是否对自身完整性进行完整性校验,
java -jar apktool.jar d -f apk 文件路径 -o 解包目标文件夹

随便找一个解包目录里面的资源文件,修改它,推荐找logo之类的图进行修改。使用APKTool 将解包的目录重新打包成未签名的APK文件。 命令如下 :
java -jar apktool.jar b -f 待打包的文件夹 -O 输出的 apk路径

用SignAPK ,对未前面的APK文件进行签名,命令如下;
java -jar signapk.jar testkey.x509.pem testky.pk8 待签名 apk文件路径 签名 后输出apk 路径

将签名的APK安装 ,运行 ,确认是否存在自校验 需要注意之前安装的APK和修改之后的APK签名不同,就不能直接覆盖安装,二是需要卸载之前安装额APP。若应用完整性校验不适用MANIFEST.MF中的数据,且核心代码通过JNI技术写入 .so库,同时服务端进行相关校验,此时无风险。 若应用完整性与本地进行验证二不存在与其他问题或使用MANIFEST.MF 中的数据作为验证凭据(有新文件时它提示应用完整性验证失败) 此时低风险。 若在本地进行验证的基础上只通过MANIFEST,MF 对客户端原有文件进行校验二忽略性增文件校验,此时中风险,若未进行完整性校验此时高风险。
安全建议客户端每次开机启动时进行客户端自身的应用完整性校验,在验证逻辑中不适用MANIFEST.MF中的数据作为验证凭证,同时血药验证是否不属于客户端版本的新文件添加 ,验证过程服务器端完成。
组件安全:
描述 : 本项主要测试客户端是否包含后天服务,COntent Provider ,第三方调用和广播等组件,Internt权限的设置是否安全,应用不通过组成部分之间的机密数据传递是否安全,检查客户端是否存在组件劫持风险,产看客户端程序具有导出那些应用信息的权限,反编译APK文件之后,检查Android QMainfest文件中是否有多余的android:export 声明, 客户端是否存在导出其他应用信息的权限.
组件 ; 安卓APP 以组件未单位急性权限声明和生命周期管理
组件有什么用: 安卓系统额组件共有四张,主要用途分别是 :
Activity : 呈现可供用户交互的界面,是最常见的组件
Service : 长时间执行后台作业,常见于监控之类应用
Content Provice : 在多个APP之间共享数据,比如通讯录数据
Broadcast Receiver ;注册特定事假 ,并在其发生时激活。
什么是权限声明 : 安卓系统低音了许多权限声明项,分别对应一些操纵系统功能 .
权限声明有什么用 :
因为权限是以组件为单位,A组件调用组件B的的功能类访问操作系统API时,使用组件B的权限声明。 如果B作为导出组件,没有进行严格的访问控制,那么A就可以通过B来访问原本没有声明权限的功能构成本地权限提升。
使用APKtools解包 ,打开解包目录中的Androidmainfest.xml,对其中的声明的各个组件根据下面的规则判断是否可以导出.


AP渗透测试学习的更多相关文章
- 【渗透测试学习平台】 web for pentester -2.SQL注入
Example 1 字符类型的注入,无过滤 http://192.168.91.139/sqli/example1.php?name=root http://192.168.91.139/sqli/e ...
- 【渗透测试学习平台】 web for pentester -1.介绍与安装
web for pentester是国外安全研究者开发的的一款渗透测试平台,通过该平台你可以了解到常见的Web漏洞检测技术. 官网:https://www.pentesterlab.com 下载地址: ...
- 【渗透测试学习平台】 web for pentester -7.文件包含
Example 1 输入单引号,报错,得到物理路径 可通过../../../../etc/paaswd 读取敏感信息 可包含本地文件或远程文件 https://assets.pentesterlab. ...
- 渗透测试学习 二十九、kali安装,信息搜集,服务器扫描
kali安装,信息搜集,服务器扫描 kali介绍 Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统.由Offensive Security Ltd维护和资助.最先由 ...
- 渗透测试学习 十三、 SQLmap使用详解
SQLmap介绍 sqlmap是一个由python语言编写的开源的渗透测试工具,它主要是检测SQL注入漏洞,是一款功能强大的SQL漏洞检测利用工具. 他可以检测的数据库有:access.msSQL.M ...
- 渗透测试学习 三十一、MSF
术语 测试者利用系统程序或服务的漏洞进行攻击的一个过程——渗透攻击(exploit),攻击载荷(payload) 攻击者在目标系统上执行的一段代码,该代码具有反弹链接,创建用户.执行其他系统命令的功能 ...
- 渗透测试学习 九、 MSsql注入上
MSsql注入漏洞详解 (Asp.Aspx站,常见于棋牌网站.考试网站.大学网站.政府网站.游戏网站.OA办公系统) 大纲:msSQL数据库调用分析 msSQL注入原理 msSQL注入另类玩法 msS ...
- 渗透测试学习 二、Windows基础
系统目录 服务 端口 注册表 黑客常用DOS命令(在拿到shell时会用到) 一. 系统目录 Windows目录 系统的安装目录 System32àconfigàSAM文件 是用户密码的 ...
- 2019-10-28:渗透测试学习,sqlmap的使用,笔记
sqlmap工具的使用sql注入工具,明小子,啊D,萝卜头,穿山甲,sqlmap等开源自动化注入利用工具,支持的数据库有12种,在/plugins中可以看到支持的数据库种类,在所有注入利用工具中是最好 ...
- 渗透测试学习 二十八、WAF绕过详解
大纲: WAF防护原理讲解 目录扫描绕过WAF 手工注入绕过WAF sqlmap绕过WAF 编写salmap绕过WAF 过WAF一句话编写讲解 菜刀连接绕过WAF webshell上传绕过WAF 提权 ...
随机推荐
- 使用svn.externals(外链)提升美术多个svn目录的svn up速度
svn up多个目录耗时大 svn上的美术资源项目,在打包机上对一个很久没有变化的目录进行svn up也是需要消耗不少时间的,特别打包时需要对多个目录进行svn up,比如空跑54个目录的svn up ...
- C/C++ Npcap包实现ARP欺骗
npcap 是Nmap自带的一个数据包处理工具,Nmap底层就是使用这个包进行收发包的,该库,是可以进行二次开发的,不过使用C语言开发费劲,在进行渗透任务时,还是使用Python构建数据包高效,唯一的 ...
- C# 中类与继承等概念
C#是一种现代的.面向对象的编程语言,其中类和继承是面向对象编程语言中非常重要的概念,类和继承是C#中面向对象编程的基本概念,可以用于创建复杂的应用程序和模块,而多态和接口可以使程序更加灵活和可扩展. ...
- npm sill idealTree buildDeps安装卡住问题
1.解决方式1 1.1设置淘宝镜像 npm config set registry http://registry.npm.taobao.org/ npm config get registry 参考 ...
- Web 3.0 - 圈里的百科
Web3.0只是由业内人员制造出来的概念词语,最常见的解释是,网站内的信息可以直接和其他网站相关信息进行交互,能通过第三方信息平台同时对多家网站的信息进行整合使用:用户在互联网上拥有自己的数据,并能在 ...
- Mygin之错误恢复Recover中间件
本篇是mygin这个系列的最后一篇.如果想自己动手实现一个类似Gin的Web框架,建议从 mgin第一篇开始, 总代码行数有效行数只有600多行 github源码 mygin 目的 实现错误处理机制 ...
- 将实体光盘制作成光盘映像iso文件
春节假期整理历史物件时发现一些书籍的光盘,虽然买了多年但一直没有看过,因为自己在用的电脑都没有光驱.正好老爸的电脑是带光驱的,想着趁过节把这些光盘的内容读取出来存在NAS上方便后续使用. 使用Ultr ...
- SESSION会话机制解析
Windows Session(会话)的概念 会话 session 是由代表单个用户登录会话的所有进程和系统对象组成的.其中的对象包括所有的窗口,桌面和windows stations.桌面是特定se ...
- Loading进度条
- [Spring]Junit单元测试时取不到本地文件问题
Junit单元测试时取不到本地文件问题 问题 当使用Junit进行单元测试时,遇到了以下问题: 2022-10-24 16:13:19.902 [main] ERROR zonetop.gisboot ...