自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (2)
  • 收藏
  • 关注

原创 问题慢慢解决-通过android emulator调试android kernel-内核条件断点遇到的问题和临时解决方案

在摸索到这个方案之后,,就准备调试内核了,预备下断点的地方是但是由于是android系统,上面三个函数会被频繁的触发,不知道哪次断下的是自己提供的进程触发的,所以准备使用条件断点,只在自己的进程触发下断下。这个条件断点的首要目标是获取aarch kernel的current观察高版本内核gdb相关代码,目标是获取SP_EL0的值。

2024-02-23 20:40:20 718

原创 mac m1调试aarch64 android kernel最终方案

这是之前的,调试android kernel的方案还是太笨重了然后,看GeekCon AVSS 2023 Qualifier,通过sdk-repo-linux_aarch64-emulator-8632828.zip 进行启动完整编译的aosp + kernnl,和 android studio下载的镜像可以正常调试,自己编译的就是不行,总是报错在mac m1上调试,可以查看内存信息,但是一下断点,就报错搜不出原因,仅,说是emulator版本低了。

2024-02-21 13:15:07 809

原创 pingpong

该漏洞发生在内核网络协议栈网络层的实现中(ping_unhash()),client端向服务器端发起连接(connect()函数)操作时,未考虑到hlist_nulls_node节点删除的特殊性(node->pprev不为null,而是LIST_POISON2),从而导致了UAF漏洞。描述下面图片中的代码来自:https://github.com/torvalds/linux/tree/v3.10-rc1即为类似题目解压密码:63BBC624A1238F6434B37EEAA4535D6C。

2024-02-20 14:11:41 842

原创 tee漏洞学习-翻译-3:TrustZone exploit for MSM8974

在这篇博文中,我们将介绍利用上一篇文章中描述的 TrustZone 漏洞的完整过程。在开发此漏洞时,我只使用了我值得信赖的(个人)Nexus 5 设备。这意味着下面写入的所有内存地址和其他特定信息均取自该设备。如果有人想要重新创建下面描述的确切研究,或者出于任何其他原因,我当时设备的确切版本是:KTU84P。

2024-02-14 00:02:46 1374 2

原创 QWB-2018-core | 栈溢出

core_write:将用户态的内容写入内核态全局变量name中。

2024-02-13 22:01:30 439

原创 cakectf-2021-hwdbg - “/dev/mem“

出题意图是了解"/dev/mem"下面有两种方式进行提权。修改内核数据进行提权。

2024-02-11 23:28:01 390

原创 armv8 qemu bios uart hello world 实现

defined。

2024-02-10 21:00:28 723

原创 tsgctf-2021-lkgit-无锁竞争-userfaultfd

类似,但是这个的【2】提供了一个往占位结构体写数据的功能,但这里略微复杂一点。结合异步并行调用+userfaultfd,再尝试看看没有没有问题。单看,ioctl中的三个方法,好像都没有问题。用户态传递过来的参数。用户态传递过来的参数。

2024-02-09 01:18:35 1432

原创 zer0pts-2020-memo:由文件偏移处理不正确--引发的堆溢出

smep,smap,kaslr,pti都开启了。

2024-02-08 20:56:33 332

原创 SECCON-2020-kstack:userfaultfd + setxattr + double free

启动脚本#!/bin/shqemu-system-x86_64 \ -m 128M \ -kernel ./bzImage \ -initrd ./rootfs.cpio \ -append "root=/dev/ram rw console=ttyS0 oops=panic panic=1 kaslr quiet" \ -cpu kvm64,+smep \ -net user -net nic -device e1000 \ -no-reboot

2024-02-08 19:39:07 1417

原创 ncstisc-2018-babydriver:UAF

只可开启了smep保护。

2024-02-08 16:20:50 406

原创 midnightsun-2018-flitbip:任意地址写

题目提供了一个新的系统调用号,调用号为333addr和bit。作用:对addr地址存储数据的第bit位与1进行异或(起始下标是第0位)限制:使用全局变量限制异或功能的次数,进入系统调用检查flit_count是否大于等于1如果等于1,则直接退出小于1,则对数据进行异或,并增加flit_count的值也就是正常情况下,该系统调用的异或功能只能起作用一次题目问题:系统调用未对传递的addr参数做检查,可以传入内核空间的地址。由于未开启。

2024-02-08 15:33:47 856

原创 attack demo - USMA

允许普通用户进程可以映射内核态内存并且修改内核代码段,通过这个方法,我们可以绕过Linux内核中的CFI缓解措施,在内核态中执行任意代码。

2024-02-06 03:37:48 396

原创 tee漏洞学习-翻译-2:探索 Qualcomm TrustZone的实现

该地址指向由内核分配的“scm_response”缓冲区,但也由 TrustZone 内核验证以确保它实际上是“允许”范围内的物理地址 - 即对应于 Linux 内核内存的物理地址,而不是 TrustZone 二进制文件中的内存位置。现在我们了解了 SCM 调用的工作原理,并且已经在 TrustZone 内核中找到了用于处理这些 SCM 调用的处理函数,我们可以开始反汇编 SCM 调用以尝试查找其中之一的漏洞。正如您在上图中看到的,引导加载程序映像包含一个名为“tz”的映像,这就是我们要查找的映像。

2024-02-05 12:48:24 1272 1

原创 一个查看armv8系统寄存器-值-含义的方式

找到解压后的目录替换脚本中的dir_path路径运行。

2024-02-05 03:12:12 805

原创 tee-pwn-00-HITCON 2018-Super Hexagon-biso.bin包含的内容

尝试IDA64-arm大端-aarch64,有内容了(amie插件识别不了大端的系统寄存器)操作了TTBR0_EL1,TTBR1_EL1,这个应该是EL1的kernel了。没有出来,通过ida分别指定架构arm,armv8,看起来不是字符串的就用。识别出来,能处理EL3,大概就是EL3相关的处理程序了。放到IDA64-armv8里面试试,不像字符串的就按。发现有调用EL3,EL2的指令,但是插件出了些问题。通过binwalk分析各段的内容,啥都没分析出来。好像还少一个S-EL0,之后再分析。

2024-02-02 10:23:47 793

原创 optee编译&&调试

使用的是 ubuntu22.04需要提前设置好网络安装必要的库下载配置 repo,将~/bin/repo中首行的python修改为下载optee并编译在第一个窗口,输入ccontinue,继续运行Normal world是linux系统,直接输入用户名root,就进入终端Secure World是optee-os的日志输出。

2024-01-27 15:50:22 450

原创 tee漏洞学习-翻译-1:从任何上下文中获取 TrustZone 内核中的任意代码执行

根据 ARM Ltd. 的说法,TrustZone 是:“…针对各种客户端和服务器计算平台(包括手机、平板电脑、可穿戴设备和企业系统)的全系统安全方法。该技术支持的应用程序极其多样化,但包括支付保护技术、数字版权管理、BYOD 以及一系列安全的企业解决方案。简而言之,这意味着 TrustZone 是一个旨在在目标设备上启用“安全执行”的系统。为了执行安全的 TrustZone 代码,需要指定一个特定的处理器。该处理器可以执行非安全代码(在“正常世界”中)和安全代码(在“安全世界”中)。

2024-01-25 12:44:24 1077

原创 完美调试android-goldfish(linux kernel) aarch64的方法

在Mac m1上的android studio中创建aarch64模拟器,抽取里面system的文件,放到文件系统中。用的是 android-ndk-r18b。下载goldfish源码,并提取。然后使用下面的脚本生成文件系统。根据自己实际的位置改一改)和x86_64中设置一致(配置goldfish。

2024-01-23 20:52:50 671

原创 一些aarch64 pwn

包含了arm,aarch64,一些基本上示例和解决方案和分析(主要是练习arm/aarch64 rop)一个堆相关的,主要是讲rop的题 insomnihack-teaser-2019 nyanc。从x86_64过来,把这个看完,arm-aarch64基本上心里有底了,讲的蛮好的。和x86_64的差别不大,就是需要注意一下arm-lr,aarch64-x30。没找到题目,唉,就是不让你看源程序,函数返回时sp加了多少,就是让你烦躁。包含了arm,aarch64,多种漏洞类型都有。一些题目,给会的人讲的。

2024-01-23 02:18:34 373

原创 cve-2022-0847 dirty pipe 摘录

https://blog.csdn.net/Breeze_CAT/article/details/123393188 图解。https://bsauce.github.io/2022/04/03/CVE-2022-0847/ 汇总。https://www.anquanke.com/post/id/269886 代码详解。https://xz.aliyun.com/t/11016 提权。msfvenom 生成 shellcode。

2024-01-18 01:15:40 376

原创 制作基于ubuntu-base的文件系统,用于sudo,网络内核cve调试

新增和修改的内容大部分是在内存缓存中的,还没有写进rootfs.img中需要执行sync将文件缓存写入磁盘效果^C。

2024-01-17 20:14:27 1246

原创 26_corCTF 2022-cache-of-castaways

8500x6512独立KMEM_CACHE的6字节堆溢出。

2024-01-16 21:37:41 354

原创 Memory Deduplication Attacks

Memory Deduplication 是一种减少系统上使用的内存量的优化。这个想法是,相似的进程可能具有相似的内存内容,因此通过将具有相同内容的内存页指向相同的物理地址并将它们标记为写时复制,可以节省大量内存。Linux 通过(KSM)来实现这一点,顾名思义,它通过将具有相同内容的页面指向相同的物理内存来“合并”它们。KSM 将以可配置的时间间隔定期运行,每次扫描多个页面以查找要合并的相同内容。请注意,默认情况下可能未启用 KSM。

2024-01-15 21:16:33 974

原创 理解x86_64 Paging(Page Map Level 4)

总的来说,这里并没有太多新内容,处理大页面时唯一的其他区别是,需要对地址应用不同的位掩码来获取页面物理地址的位,同时计算 1GB 对齐意味着页内虚拟地址的物理地址我们需要使用基于 1GB 对齐而不是 4KB 对齐的掩码。对于所有这些图,“X”表示该位可以是 0 或 1,否则,如果将某个位设置为特定值,则该值要么是架构所需要的,要么是图中所示的特定编码所需要的。这与设置了页面大小位的 PUD 条目非常相似,唯一改变的是,由于该级别 2MB 页面的对齐较小,因此设置的保留位较少。

2024-01-15 20:22:34 1026

原创 how2heap-2.23-17-house_of_roman

https://ctf-wiki.org/pwn/linux/user-mode/heap/ptmalloc2/house-of-roman/

2024-01-10 16:18:01 276

原创 how2heap-2.23-16-house_of_orange

house of orange

2024-01-08 20:32:27 526

原创 how2heap-2.23-15-house_of_einherjar

时,想着在被poison_null_byte的chunk上方进行布局利用,当时想到的利用方式原来就是这个。

2024-01-08 20:11:28 381

原创 how2heap-2.23-14-house_of_force

使用的是 orbStack ubuntu18.04 编译的glibc。

2024-01-08 19:53:14 313

原创 how2heap-2.23-13-house_of_lore

接下来,需要把伪造的bck成功卸载下来(重新分配出来),就需要把上面的代码重新走一遍,同时还需要绕过代码【2】处的检查,所以需要再伪造出一个chunk,才能使伪造的bck卸载下来。如果存在溢出,可以修改victim的bk字段,那bck就是我们伪造的bck,但是在代码【2】处的检查需要绕过,需要在伪造的bck处正确填写当前victim的地址。当执行到代码【1】处时,victim是需要从small bin链表中摘除的最后一个chunk,bck是链表中倒数第二个chunk,bin是链表头。

2024-01-08 19:47:20 386

原创 how2heap-2.23-12-house_of_spirit

将一个地址伪造成符合fast bin大小的chunk,将其释放进fastbin中,同时伪造其中的fd指针,达到任意地址分配伪造的chunk的大小,为什么是fast bin大小范围内的chunk?_int_free【1】目的因为是要释放伪造的chunk,在伪造chunk释放后需要挂到bins中,需要有堆管理器相关的结构体【2】目的需要绕过对chunk地址的对其检查【3】目的会根据chunk的IS_MMAPPED位,判断是通过进行释放,还是通过_int_free进行释放当然,下面这样写都可以。

2024-01-08 19:07:46 344

原创 how2heap-2.23-11-poison_null_byte

当然不止这一种,下面最简单的形式。

2024-01-08 00:08:21 1285

原创 how2heap-2.23-09-chunk_extend_and_overlapping

原因:符合fastbin chunk大小的chunk被释放时,只根据chunk的size将其放入到特定的fastbinY中。

2024-01-06 17:43:41 389

原创 how2heap-2.23-08-large_bin_attack

pwngdb命令,方便源码调试。

2024-01-06 14:16:36 1668

原创 how2heap-2.23-07-unsafe_unlink

在glibc-2.23的malloc.c中搜索unlink,找到unlink的使用场景_int_free。

2024-01-05 10:12:35 931

原创 how2heap-2.23-06-unsorted_bin_into_stack

和利用场景不一样,反而好理解一些。

2024-01-04 20:01:05 385

原创 how2heap-2.23-05-unsorted_bin_attack

从unsorted bin的bk中,获取最旧的chunk,之后再根据chunk->bk,从最旧到最新开始遍历,尝试在unsorted bin链表中找到合适的chunk。然后chunk a就脱链(怎么脱链,放到哪里的逻辑,在修正的代码之后),unsorted bin和chunk b开始修正其fd,bk,修正的代码就是上面的。unsorted bin attack的效果就是在指定的位置,写入unsorted bin头结点的首地址,就是那个所谓的较大的值。就发生在chunk脱链,

2024-01-04 18:55:37 913

原创 how2heap-2.23-04-unsorted_bin_leak

unsorted bin leak原理:将chunk从unsorted bin申请回来时,chunk中保存的与unsorted bin相关的地址没有被清除,可以通过该地址获取libc的基地址。

2024-01-04 15:49:10 944

原创 how2heap-2.23-03-fastbin_dup_consolidate

因为large chunk需要的空间较大,会尝试将fastbin中的chunk合并转移到unsortedbin,并将相邻下一chunk的pre_in_use置0。在通过申请large chunk时,会触发malloc_consolidate,会将chunk a放入到unsorted bin->small bin,此时下一个chunk b的prev_inuse清零。现在就可以在chunk a中伪造chunk,释放下一个chunk b,从而产生unlink,通过unlink进行利用。

2024-01-04 14:45:38 441

原创 how2heap-2.23-02-fastbin_dup_into_stack

fastbin_dup_into_stack和fastbin_dup没啥区别 https://blog.csdn.net/u014679440/article/details/135383465。仅仅是欲修改的位置,在栈中。

2024-01-04 13:28:07 325

0001-TIPS-2020-hxp-kernel-rop : ret2user

0001-TIPS-2020-hxp-kernel-rop : ret2user

2023-06-19

手写ButterKnife

手写ButterKnife

2022-07-17

ollvm-out-llvm.tar.xz

在llvm源码之外移植的ollvm

2021-02-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除