0%

一、binfmt_misc介绍

binfmt_misc是Linux内核的一项功能,其使得内核可识别任意类型的可执行文件格式并传递至特定的用户空间应用程序,如模拟器和虚拟机。例如在装有qemu的x86-64的Linux中可以直接执行ARM64程序不需要指明使用qemu。

阅读全文 »

前言

本文总结了在Android上利用漏洞时遇到的一些新的保护机制以及在真机上的内核漏洞利用和调试技巧。虽然Android底层为Linux内核,但是相比较下Android内核更加难利用,主要体现在真机不能实时调试,可能开启了BTI保护、PAC保护和CFI保护,同时在近年新出的一些手机如Pixel 10开启了内存标记访问保护Memory Tagging Extension(MTE),本文还将介绍MTE保护在用户态时的一个特殊的绕过方法。

真机内核利用适配

阅读全文 »

通过注册一系列printf处理函数来实现了一个虚拟机

其中虚拟机指令片段在0x3140处

阅读全文 »

Allocator

Android 4

先申请一些堆,间接释放后,再申请一些堆,由于UAF,此时堆指针数组里肯定有两个一样的指针,为了找出哪些数组下标里存的指针一样,可以通过show泄漏堆中的数据进行两两比较,建立一个map。然后利用UAF把其中一个下标对应的指针delete进行释放,那么此时可以通过另一个下标对释放后的堆进行操作。这里我们可以堆喷FileIO对象,堆喷成功后可以通过show泄漏so库的地址,然后伪造vtable后进行触发即可。

阅读全文 »

2024年5月25日,奇安信天工实验室安全研究员赵海,出席国际知名极客大会GEEKCON 2024 INTERNATIONAL,发表《TI C2000 DSP Chip Hacking》的议题演讲并作技术展示。

议题披露了TI C2000 DSP芯片下隐藏了20多年之久的CSM/DCSM锁密机制绕过漏洞,该漏洞由于设计缺陷难以修复。

芯片介绍

阅读全文 »

前言

全球著名防火墙公司Palo Alto Networks近日在官网公布了一个CVE-2024-3400的漏洞信息,该漏洞存在于部分PAN-OS系统的GlobalProtect功能中,在某些配置打开的情况下,攻击者可以对运行该系统的设备进行未授权RCE,并且拿到系统的root权限,本文以研究学习为目的对漏洞的成因进行详细的分析。

影响版本

阅读全文 »

WebAssembly 安全研究总结

WebAssembly是什么

  WebAssembly(简称wasm) 是一种可移植、体积小、加载快并且能够在浏览器上运行的一种程序文件。其能够在JavaScript通过接口进行调用执行。开发者们一直都比较关心JS的运行速度问题,V8引擎在JS的运行速度方面做了巨大的优化,但是少数情况下我们进行大量本地运算的时候,仍然可能遇到性能瓶颈,这个时候webassembly的作用就凸现出来了。例如AutoCAD利用编译器将其沉淀了30多年的代码直接编译成WebAssembly,同时性能基于之前的普通Web应用得到了很大的提升。
  C/C++/Rust源代码可以被编译为WebAssembly文件,然后JS层就可以对其进行调用。WebAssembly文件中存储着字节码,位于JavaScript引擎中的WebAssembly虚拟机将会执行字节码。字节码的执行有两种方式,一种是在运行时边读取opcode边执行,另一种则是在执行前将整个WebAssembly JIT翻译为本地汇编代码,然后直接跳转到汇编代码执行。V8采用的是第二种方式。

阅读全文 »

菜单题,add功能有一个off by null,glibc为2.35

Glibc 2.25 会检查P->fd->bk == P && P->bk->fd == P && size == prev_size,可以将large bin申请回来后,利用原来残留在fd_nextsize,bk_nextsize的指针来作为fakechunk的fd和bk,那么只需要在fd_nextsize对应堆块的bk位置低字节覆盖指向P,同理bk_nextsize对应堆块的fd位置低字节覆盖指向P,由于add时会添加’\0’,因此覆盖最少为2字节,这会导致指针的第2字节固定为0,那么就需要构造堆风水使得fakechunk的地址以X0YY结尾,由于ASLR的原因,X可以出现为0的时候,成功率为1/16。
伪造好chunk以后,利用off by null修改下一个堆块的prev_in_use,然后释放后unlink构造overlap chunk,最后先申请到_IO_2_1_stdout_劫持,泄漏environ拿到栈地址,然后申请到栈上写ROP。

阅读全文 »

首先是GET_PARAMETER可以泄漏ELF地址

然后SET_PARAMETER可以设置好后面需要用到的flag标志

阅读全文 »

wasmtime的预编译程序,用IDA进行分析,找到字符串

在gdb中对字符串进行硬件读断点rwatch *addr,然后在一个函数断下,根据断下的函数一直向上找上层函数,最终发现这个地方很可能是主菜单逻辑

阅读全文 »