冬令营Day6:安卓提权漏洞基础、原理、利用和发现方法简介
安卓NativeLib和Kernel简介和攻击面
安卓底层安全架构简介
安卓开源问题
什么是开源?
谷歌使用HAL接口
安卓碎片化问题:厂商和系统
安卓底层安全框架及攻击缓释技术
自主访问控制
基于uid、gid
容易被突破
强制访问控制
SELinux
攻破较为困难
极大降低攻击后危害
验证启动模式(Verified Boot)
通过硬件密钥,逐步验证整个系统
一旦出厂之后,不可修改
修改之后系统无法启动(测试,解锁BootLoader后可以)
6.0后开始支持,7.0之后更加严格
代码签名和平台密钥
无法刷入任何非签名镜像(不解锁BootLoader)
System级别的签名验证(系统APP)
安卓系统启动
init的过程
Root相关基础知识
名词解释
rwx之外的权限s位
BootLoader(解锁、刷机)
Recovery(twrp、验证签名、OTA更新)
Root类型(时间)
永久Root
临时Root
取消Root
Root方式
直接使用Recovery刷入su和deamon-su
使用BootLoader替换Recovery之后,再刷 ...
Frida
运行Frida
adb shell /data/local/tmp/frida-server-12.8.6
看下端口号
这两个好像没啥用
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
检查frida是否连接成功
frida-ps -U
Frida基础
123456789101112131415161718import frida, sys//hook代码,采用javascript编写jscode = """//javascript代码,重点"""def on_message(message, data): if message['type'] == 'send': print("[*] {0}".format(message['payload'])) else: print(messa ...
冬令营Day4:CTF移动安全解题与出题
CTF中的移动安全
平台
安卓
iOS
类型
逆向
PWN(组件漏洞、WebView漏洞、Native漏洞)
Misc(流量包取证、抓包)
总体以逆向为主、考察一些安卓基本知识
一些移动安全的CTF
腾讯游戏安全技术竞赛(多以逆向为主)
OGeek(OPPO的)
Trend Micro CTF(比较切合实际)
DEFCON、Google CTF、XCTF、强网杯等等
CTF逆向基础
CTF简介
主流的两种形式 -> 对抗赛和解题赛
WEB
涉及常见的Web漏洞、诸如诸如、XSS、文件包括、代码执行、上传等漏洞
Crypto密码学
考察各种加解密技术、现代加密技术或出题者自创的加密技术、主要考察密码学等技术
Misc安全杂项
涉及流量分析、电子取证、数据分析、隐写等等,覆盖面比较广,主要考察选手的各种基础知识
Reverse逆向工程
涉及到软件逆向、破解技术等等,要求有较强的反汇编扎实功底(但是现在基本不用学习汇编了,当然要功夫到家还是得学习),主要考察参赛选手的逆向分析功能
PWN漏洞利用
攻破、取得权限,主要考察选手对漏洞的挖掘和利用能 ...
Drozer的安装和使用
安装
https://blog.csdn.net/muier/article/details/49929863
https://www.jianshu.com/p/168cdd3daa1d
就是各种pip就可以
由于Drozer是py2版本,所以需要各种pip2的安装,在cp安装过程的时候要记得用pip2,由于mac上没有pip2所以先要去安装一下
brew install python@2
使用
本文使用sieve.apk进行演示
进入Drozer
手机上打开drozer agent开启调试
adb转发端口
adb forward tcp:31415 tcp:31415
打开终端输入
drozer console connect
出现这个就成功了
1234567891011121314 .. ..:. ..o.. .r.. ..a.. . ....... . ..nd ro..idsnemesisand..pr .otectoran ...
冬令营Day3:移动恶意应用分析
写在前面
:
这天有点无聊。。。所以真的没啥内容(或者说过于硬核了)
恶意代码概述
攻击手段、方面概述
恶意代码逆向
静态分析
静态分析工具
Smaliviewer
APKTool、baksmali
Dex2jar/jd-gui
JEB
IDA
AndroidKiller
AndroidGuard
Virustotal
反混淆: http://apk-deguard.com/
分析方法
快速定位法
敏感api查找
支付宝薅羊毛剪切板口令
对比法
白应用比较
代码流程法
从AndroidManifest.xml
遍历法
利用JEB等软件或者写脚本进行分析
动态分析
动态分析工具
Andebug
IDA
smali hook
xposed/substrate/frida
Wireshark/tcpdump/burpsuite/findler2
分析系统
DroidBox
AndroGuard
Inspeckage 基于Xposed
RMS(antiy)
cuckoo http://cuckoosandbox.org/
人工实践分 ...
EMUI预装组件攻击(提权攻击)
Day1
老师要我们去pull华为的所有系统应用。。。
检查AdnroidManifest.xml文件里的Service和Broadcast Receiver的权限
这里记录一下一些操作
1234adb shell pm list packages#列出包名adb shell pm path com.huawei.android.karaoke#得到路径$package:/hw_product/app/HwKaraoke/HwKaraoke.apkadb pull /hw_product/app/HwKaraoke/HwKaraoke.apk $电脑路径 #拉出安装包
emm无功而返,甚至学了点python和shell文件处理
1234while read linedo $line >> /Users/zrzz/Programme/CTF/XMan/check/123.txtdone < /Users/zrzz/Programme/CTF/XMan/check/.txt
123456from os import systemfp = open('/Us ...
冬令营Day2:移动应用程序逆向
安卓应用程序结构
AndroidManifest.xml(清单文件)
dex(java代码编译后的文件)
res(ui布局、颜色、字符资源文件)
lib(第三方库)
assets(静态的音视频文件)
META.INF(签名)
安卓应用四大组件
Activity
Service
Broadcast Receiver
Content Provider
反编译
dex反编译
dex -> smali
baksmali
dex -> smali -> java
Jeb
apktool
dex2jar
so反编译
elf -> arm指令
IDA
Radare2
Ghidra
arm -> C++
IDA f5
Ghidra
定位逆向目标
关键字定位
关键字
Grep
反编译的静态代码
Dump动态代码
监控文件变化
资源定位
定位UI中的资源变量名
ddms
uiautomatorviewer
dumpsys
res目录中对应的索引值
在smali代码中grep所有对该索引值的引用
日志定位
a ...
冬令营Day1:移动应用程序渗透测试
Android系统架构
应用层
内置应用和安装应用
应用框架层(Java)
为开发人员提供的各种API 用java编写 分为活动管理、位置管理器、包管理器等等
系统运行库层(native)
分为C/C++程序库和Android运行时库
JVM(java)、DVM(dalvik)、ART(arm)虚拟机
硬件抽象层(HAL)
位于操作系统内核与硬件电路之间的接口层,其目的在于把接口抽象化。
Linux内核层
Android运行机制
init启动
按下电源键->系统启动->BootLoader->Linux内核->init进程(init.rc)
通过一个init.cpp启动zygote进程再启动systemserver进程
Android应用渗透测试
工具使用
ADB、Frida、Burp、Jadx
关于frida安装的时候可能会有目录报错和权限报错,视情况加上pip3.8 python -m easy_install sudo等等
可以看这里https://refate.github.io/2019/01/13/rida_install/
安装包签名校验
jar ...
Java环境配置
近日因为DDMS和Jadx的一些问题,把原来的环境重新弄了个遍,目前系统里是1.8和1.6,用Jenv管理
JDK下载
1.6及以前在Apple支持上下载,之后在Oracle上下载
高版本环境下安装低版本JDK
例如我安装1.6的时候会出现
在Stack Overflow上给出了回答,打开脚本编辑器
12345678set theDMG to choose file with prompt "Please select javaforosx.dmg:" of type {"dmg"}do shell script "hdiutil mount " & quoted form of POSIX path of theDMGdo shell script "pkgutil --expand /Volumes/Java\\ for\\ macOS\\ 2017-001/JavaForOSX.pkg ~/tmp"do shell script "hdiutil unmoun ...
IDA动态调试
安装命令
adb install xxx
推送
adb push /Users/zrzz/Programme/CTF/mobile/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/dbgsrv/android_server /data/local/tmp
赋予权限
adb shell chmod 755 /data/local/tmp/android_server
启动调试服务器
adb shell su -c "/data/local/tmp/android_server"
进行端口转发
adb forward tcp:23946 tcp:23946
运行app 打开IDA Pro
依次点击菜单栏上的"debugger - attach - remote Armlinux/android debugger",在弹出的窗口中填充以下内容:
12Hostname:localhostPort:23946
在弹出的窗口中选择要调试的app的数据包名,然后点击"ok"按钮
...







