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"按钮
...
Mobile基本知识
逆向过程
dex2jar(需要对文件添加管理员权限)
sudo chmod +x d2j_invoke.sh
sudo chmod +x d2j-jar2dex.sh
sudo chmod +xr classes.dex
sh d2j-dex2jar.sh classes.dex
keytool 使用方法
打包
apktool b xxx -o xxx-new.apk
生成keystore
keytool -genkeypair -alias $别名 -keyalg $密钥算法(RSA) -keystore $密钥库名称
查看签名
keytool -list -keystore $密钥库名称
签名
jarsigner -verbose -keystore $密钥库名称 -signedjar xxx_signed-new.apk xxx-new.apk $别名
adb
连接到mumu adb kill-server && adb server && adb shell
获取日志adb logcat -v time > Desktop/log.t ...