Skip to content

Latest commit

 

History

History
179 lines (115 loc) · 7.06 KB

Android安全.md

File metadata and controls

179 lines (115 loc) · 7.06 KB

Android安全


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


抓包方法

抓取流量


手机设置网络代理

模拟器打开 wifi 设置选项,长按点击 修改网络

代理选择本机的 IP 地址

在 burp 的选项中添加监听项

模拟器访问 http://burp 下载 ca 证书

到文件管理器中,将下载的 cacert.der 改为 .cer 后缀

到设置-安全

选择从 SD 卡安装

选择 .cer 文件安装

随便命名,用途选 vpn和应用


模拟器设置全局代理

代理服务器设置为 burp 监听端口

已夜神模拟器为例,使用的网络进程有:NoxVMHandle Frontend

NoxVMHandle Frontend 进程对应的应用程序文件加入代理规则。

重启模拟器,模拟器安装 burp 的 CA 证书,记得 ca 文件名改成 .crt,抓包测试


Root 后导证书到系统域中


ssl-pinning 证书锁定

SSL/TLS Pinning 提供了两种锁定方式: Certificate Pinning 和 Public Key Pinning

  • 证书锁定

    需要将 APP 代码内置仅接受指定域名的证书,而不接受操作系统或浏览器内置的 CA 根证书对应的任何证书,通过这种授权方式,保障了 APP 与服务端通信的唯一性和安全性,因此我们移动端 APP 与服务端(例如 API 网关)之间的通信是可以保证绝对安全。但是 CA 签发证书都存在有效期问题,所以缺点是在证书续期后需要将证书重新内置到 APP 中。

  • 公钥锁定

    提取证书中的公钥并内置到移动端 APP 中,通过与服务器对比公钥值来验证连接的合法性,在制作证书密钥时,公钥在证书的续期前后都可以保持不变(即密钥对不变),所以可以避免证书有效期问题。

证书锁定旨在解决移动端 APP 与服务端通信的唯一性,实际通信过程中,如果锁定过程失败,那么客户端 APP 将拒绝针对服务器的所有 SSL/TLS 请求,FaceBook/Twitter 则通过证书锁定以防止 Charles/Fiddler 等抓包工具中间人攻击


APK渗透

案例

在线检测

在线反编译器

反编译工具

信息收集

  • TheKingOfDuck/ApkAnalyser - 一键提取安卓应用中可能存在的敏感信息。
  • dwisiswant0/apkleaks - Scanning APK file for URIs, endpoints & secrets.
  • 从反编译的 apk 文件中提取相关域名链接/IP
    grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" -r xxx --color=auto
    grep -E "https?://[a-zA-Z0-9\.\/_&=@$%?~#-]*" -r xxx --color=auto
  • 通过正则提取一些敏感信息
    apktool d app_name.apk
    grep -EHirn "accesskey|admin|aes|api_key|apikey|checkClientTrusted|crypt|http:|https:|password|pinning|secret|SHA256|SharedPreferences|superuser|token|X509TrustManager|insert into" APKfolder/

APK-Exploits

CVE-2019-6447 ESFileExplorers 任意文件读取

  • 简介

    基于 Android 平台的 ES File Explorer File Manager application 4.1.9.7.4 及之前版本中存在安全漏洞,该漏洞源于 ES 应用程序在运行一次之后,TCP 59777 端口并未关闭依旧可以通过 HTTP 协议接收 JSON 数据。攻击者可通过向 TCP 59777 端口发送请求利用该漏洞读取任意文件或执行应用程序。

  • POC | Payload | exp


系统漏洞

Android's overlay attacks


Source & Reference