编译AOSP
环境准备 手机:Pixel系列(此次实验使用Pixel2,代号walleye),建议使用pixel和nexus系列进行操作,其他厂商手机不方便确认AOSP版本与对应的vendor二进制驱动文件; 确认需要编译的AOSP版本号(vendor驱动程序要和aosp版本匹配才行,所以需要参考官方的镜像是基于哪个版本的AOSP进行编译的) 到Nexus和Pixel设备的出厂映像找到目标系统对应的AOSP build号,注意手机型号。比如,此次实验需要给Pixel2刷入Android11的系统,而该系统对应的AOSP build号为RP1A.201005.004.A1如下图 根据上面的build号找到对应的AOSP版本号,我这里是android-11.0.0_r25 根据AOSP版本号,找到对应的驱动二进制文件,有几个就下几个(有些只有一个,有些有两个):Driver Binaries for Nexus and Pixel Devices Ubuntu18系统的虚拟机(老型号、老系统尽量使用老的Linux发行版进行操作),注意配置: 内存:至少至少16GB(如果内...
Java层怎么调用SO层中的方法(JNI)
静态注册MainActivity.java加载so文件、定义native方法并调用 –Android系统寻找–> SO文件(native-lib.cpp) –根据固定格式的方法名进行寻找–> stringFromJNI()方法执行,返回结果给Java层 MainActivity.java:通过System.loadLibrary方法加载指定的so文件,并在代码中声明需要调用的so方法(native关键字标识函数名) 123456789101112131415161718192021222324252627282930313233343536package com.example.applicationwithndk;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;import com.example.applicationwithndk.databinding.ActivityMainBinding;pu...
Mitmproxy使用
简单介绍Mitmproxy,一个结合python的CLI抓包工具,基于MITM形式,类似于BurpSuite。但是,与BurpSuite、Yakit、Charless等工具不同,mitmproxy更偏向于结合python,原生开发一些抓包过程中的插件脚本(addon),自由度更加高,适合用来做一些定制化、批量化的测试,这也是mitmproxy最核心、最强大的地方(python语法简单,容易开发;和burpsuite不同,mitmproxy无需关心额外的API,使得插件更加容易开发)。 拦截HTTP和HTTPS请求和响应并即时修改它们 保存完整的HTTP对话以供以之后重发和分析 重发HTTP对话的客户端 重发先前记录的服务的HTTP响应 反向代理模式将流量转发到指定的服务器 在macOS和Linux上实现透明代理模式 使用Python对HTTP流量进行脚本化修改 实时生成用于拦截的SSL / TLS证书 And much, much more… 更加详细的介绍可以参考官方文档:Mitmproxy Introduction 快速开始下载安装 官网地址:mitmproxy单...
工具使用
nuclei123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199...
iOS16无根越狱
无根越狱 vs 有根越狱iOS越狱和Android root都是利用系统/硬件的漏洞进行提权,获取root权限的操作。在iOS中越狱主要分为无根越狱(rootless)和有根越狱(rootful),这里的“根”指的就是根文件系统(”/“, rootfs),默认情况下挂载为只读模式,无法进行写入等操作。有根越狱利用漏洞重新将根文件系统挂载为可读可写的模式,并取得root权限执行原本受限的操作,就和Linux上用root身份基本是一样的。;无根越狱则不会重新挂载根文件系统,而是利用沙盒逃逸漏洞、用户级漏洞等系统层面的漏洞实现对操作系统中某些限制的绕过,取得一个受限的、不完整的root权限(比普通用户高,比完整root低)。即便rootless得到的是一个削弱的root,但是仍然可以执行很多特权操作,比如杀进程、改网络和运行daemon等等。 在iOS15之前,几乎采用有根越狱的方式,越狱工具利用漏洞获取完整的root权限,并且重新挂载整个根文件系统为可写模式,这样一来,用户可以获得完整的root体验,可以修改系统的一些资源、进行一些系统操作。但是,如果操作不当...
XSS浅析深出
漏洞分析 浏览器解析前端代码浏览器的作用:接收用户输入 ==> 发起网络请求 ==> 处理响应内容 ==> 展示处理结果,在整个生命周期内循环地完成这四件事。 浏览器本身是操作系统中的一个类似于python解释器、Java虚拟机的应用程序,可以用来解释代码,并且配合操作系统将代码编译成二进制,最终转换为高低电平输入给各个硬件,最终完成程序的执行,最终的结果就是用户在浏览器中看到的所有内容,其中包括浏览器本身以及访问网页后才能看到的界面,浏览器本体我们不做过多研究,这里只讨论网页内容。 前端代码大致分为:HTML/CSS/JavaScript 渲染引擎 解析:解析HTML,生成DOM树 ==> 解析CSS,生成CSSOM树 合成:DOM + CSSOM ==> RenderTree(渲染树) 布局:计算树节点在整个页面中的精确位置 绘制:在每个位置上绘制对应的像素点,最终构成一个完整的界面 JS引擎 浏览器中内置了JS引擎(例如,chrome的V8),所以可以执...
小米6刷机
背景设备 机型:MI6(sagit) 处理器:骁龙835 存储空间:64GB 原系统:MIUI11/Android9 意义Android9确实比较老,Google在安卓10/11上加入了一些新东西,某几个别的app可能没法兼容到Android9,总之,由于各个原因,现在将LineageOS(22.2)/Android15刷入到MI6机器上,做个记录,后续可做参考。 资源 WIN10/WIN11(准备好platform-tools) 小米官方BL解锁工具:https://cdn.cnbj1.fds.api.mi-img.com/flash-tool/miflash_unlock_7.6.727.43.zip 12345678910111213141516171819202122232425262728https://miuirom.xiaomi.com/rom/u1106245679/6.5.406.31/miflash_unlock-6.5.406.31.ziphttps://miuirom.xiaomi.com/rom/u1106...
优化安卓终端
一键SSH 手机root + 安装termux(看参考文章) 运行termux,进入termux虚拟终端界面,安装openssh(可以通过scrcpy在电脑上操控整个安卓,敲命令比较方便) 1pkg install openssh -y #安装完成之后的,会自动为每个用户生成主机公钥 给当前用户设置一个密码 12345# 查看当前用户(后面需要从这个用户登录ssh,暂时不能使用root身份登录)whoami# 设置密码passwd 配置密钥登录 电脑生成一对公私钥 12ssh-keygen -t ed25519 -f C:\Users\RedTeamer\.ssh\id_ed25519_mi10 -C "MI10_termux_ssh" 将公钥信息写入到手机 1231. 复制电脑上id_ed25519_mi10.pub文件中的所有内容2. 复制到手机中的autorized_keys文件中echo "YourPublicKey" >> ~/.ssh/authorized_keys ...
指纹对抗
Apatch 为什么要进行内核root 1234Magisk的修改集中在用户空间(boot.img里面加入magisk32/64、daemon、sepolicy补丁),/system/bin、/sbin、/proc/self/mounts会留下大量文件与挂载证据;App通过调用access()、stat()、fopen()等函数就可以检测到设备是否root。KernelSU/APatch/AKP在内核层面给用户授予root权限,用户空间几乎无感:没有su文件、没有额外挂载、不需要改动sepolicy,默认采用“白名单”机制——未被授权的普通App连su都调不到,所以传统“文件+挂载”几乎检测不到。常见的内核root工具有KernelSU、APatch、AKP等等,但是KSU适合GKI形式的安卓内核(内核>5.0),我这里测试机内核为4.4,所以采用APatch(APatch基于KSU魔改二开),https://apatch.dev/zh_CN/;但是app仍然可以调用内核一些接口,检测相关特征;想再深一点隐藏,就得继续在内核层把/proc/kallsyms、模块列表、s...
CSRF浅析深出
漏洞分析 身份验证 会话信息直接存储在cookie中:HTTP工作时本身是无状态的,无法记录状态信息(比如登录状态),浏览器有一个cookie机制——一旦浏览器本地保存有关于某个网站的一些信息,下一次请求时会默认携带上这些信息并放入到http请求头中的cookie字段中。此时,聪明的你想到了利用cookie机制维持用户的登录状态:用户一旦登录成功,后端服务器将表示用户身份的一些信息返回给浏览器,并让浏览器存储在cookie中,以后的请求中浏览器将自动携带cookie,后端服务器收到请求是就可以根据cookie中的信息查询数据库,然后判断用户是否存在、是否登录过,如果符合规则,再进行后面的业务操作。这样就实现了状态维持的效果,避免每次请求时都需要用户输入账号密码进行身份验证。值得注意的是,cookie本身是一种浏览器自动提交信息的机制/行为,并不表示具体的用户身份。 会话信息存储在session中:代表用户的信息如果存放到了客户端(浏览器),黑客就有控制的权限了,比如将user_id=1 ==> user_id=2,便可以以其他人的身份进行操作了,实现越权攻击。...
