Skip to content

Latest commit

 

History

History
234 lines (156 loc) · 8.66 KB

Android安全.md

File metadata and controls

234 lines (156 loc) · 8.66 KB

Android安全


免责声明

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


案例

CTF writeup


抓包方法

相关文章

mac + Android studio 抓包

cd
cd Library/Android/sdk/emulator
./emulator -list-avds
./emulator -avd test -writable-system

# 导出 burp 的证书 cacert.der
openssl x509 -inform DER -in cacert.der -out cacert.pem
openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1

mv cacert.pem 9a5ba575.0

cd
cd Library/Android/sdk/platform-tools
./adb devices

./adb root
./adb remount
./adb push 9a5ba575.0 /sdcard/

./adb shell
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
exit
./adb reboot

手机设置网络代理

模拟器打开 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/
  • s0md3v/Diggy
  • kelvinBen/AppInfoScanner

系统漏洞

Android's overlay attacks


ADB调试

相关资源

相关文章

Payload


绕过ROOT检测

相关文章