Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)
Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)
- Opening the doors and windows 0-click RCE on the Tesla Model3
- HEXACON2022 - 0-click RCE on the Tesla Model 3 by David Berard & Vincent Dehors
漏洞分析
ConnMan 处理 WIFI Portal 时的堆越界写,这部分协议特性称作:WISPR
WISPR 特性和漏洞:
Exploit 使用的漏洞为 CVE-2022-32292, count 和 pos 的计算有问题导致会修改相邻内存块中的 \x0a --> \x00
漏洞利用
堆布局原语:利用 http header 作为内存申请和释放原语
信息泄露
思路: byte 越界写 --> 劫持指针 --> DOUBLE FREE --> 1'st free & realloc with dhcp --> 2'st free && write libc ptr to dhcp mem --> leak.
通过布局让 receive_buffer 后面跟着一个 hashtable.values 指针数组,利用漏洞修改指针的 \x0a --> \x00,让两个指针指向同一块内存。
-
-
然后用 dhcp hostname 占位重叠内存。
利用 hashtable.values 的引用释放 hostname 所在内存,将块放到 unsorted bin --> 写入 libc 地址到 hostname
-
-
dhcp 返回 hostname 给攻击者
代码执行
方案一 (LIBC 2.29)
构造重叠堆块,然后劫持 tcache next 指针,任意地址写。

方案二 (LIBC 2.34)
劫持其他函数指针.
发送 CAN 报文
connman 可以用 raw socket 发送 can 报文,实现特定功能。
Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)的更多相关文章
- 利用userfaultfd + setxattr堆占位
利用userfaultfd + setxattr堆占位 很久之前便看到过这个技术的名字,但是由于自己的摆烂,一直没有管.今天终于找到时间好好看一下这个技术的利用方式.利用userfaultfd + s ...
- PHP利用二叉堆实现TopK-算法的方法详解
前言 在以往工作或者面试的时候常会碰到一个问题,如何实现海量TopN,就是在一个非常大的结果集里面快速找到最大的前10或前100个数,同时要保证 内存和速度的效率,我们可能第一个想法就是利用排序,然后 ...
- FastJson反序列化漏洞利用的三个细节 - TemplatesImpl的利用链
0. 前言 记录在FastJson反序列化RCE漏洞分析和利用时的一些细节问题. 1. TemplatesImpl的利用链 关于 parse 和 parseObject FastJson中的 pars ...
- commons-collections利用链学习总结
目录 1 基础 ConstantTransformer InvokeTransformer ChainedTransformer LazyMap TiedMapEntry TransformingCo ...
- JDK原生反序列化利用链7u21
前言 JDK 7u21以前只粗略的扫过一眼,一看使用了AnnotationInvocationHandler,就以为还是和 CC1 一样差不多的利用方式,但最近仔细看了下利用链发现事情并不简单- 7u ...
- fastjson反序列化-JdbcRowSetImpl利用链
fastjson反序列化-JdbcRowSetImpl利用链 JdbcRowSetImpl利用链 fastjson反序列化JdbcRowSetImpl - Afant1 - 博客园 (cnblogs. ...
- Apache Common-collection 反序列化利用链解析--TransformedMap链
Apache Common-collection 反序列化利用链解析 TransformedMap链 参考Java反序列化漏洞分析 - ssooking - 博客园 (cnblogs.com) poc ...
- 深入剖析CVE-2021-40444-Cabless利用链
背景 CVE-2021-40444为微软MHTML远程命令执行漏洞,攻击者可通过传播Microsoft Office文档,诱导目标点击文档从而在目标机器上执行任意代码.该漏洞最初的利用思路是使用下载c ...
- TemplatesImpl利用链
FastJson利用链 Fastjson的版本在1.2.22-1.2.24主要有两条链利用TemplatsImpl和JdbcRowSetImpl利用链先来学习TemplatsImpl利用链,这个与前面 ...
- Fastjson JdbcRowSetImpl利用链学习
JdbcRowSetImpl 接着继续学习fastjson的第二条链JdbcRowSetImpl,主要是利用jndi注入达到的攻击,而且没有什么利用限制,而且其原理就是setter的自动调用,具体se ...
随机推荐
- transaction_timeout:达到事务超时时终止会话
功能实现背景说明 我们已经有两个参数来控制长事务:statement_timeout 和 idle_in_transaction_session_timeout.但是,如果事务执行的命令足够短且不超过 ...
- 使用hexo进行github博客搭建
1.你必须建一个存储库,这个存储库要和你的github名称一致(不然就会404),如下图: 2.如果是window配置,需要安装git和node.js 3.下载hexo npm config set ...
- 线段树介绍(segment tree)
1.引入 给定一个区间\([1, n]\),希望你实现一种数据结构,支持以下操作: 1.修改\(i\)号节点的值. 2.询问区间\([i, j]\)中所有节点的和. 这不是树状数组板子 3.修改区间\ ...
- 封装JWT - 生成 jwt 和解析 jwt
1. ASP.NET Core 身份验证和授权验证的功能由Authentication,Authorization中间件提供 :app.UseAuthentication(),app.UseAutho ...
- kotlin类和对象—>属性与字段
1.声明属性,Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的 class Address { var name: String = "Ho ...
- 宏定义define的用法
#define read(x) scanf("%d",&x); 这行代码是一个宏定义,使用了 C 语言中的 #define 指令.它的作用是定义一个名为 read 的宏,用 ...
- 云原生爱好者周刊:Lens 5.2 发布,支持 M1 芯片
云原生一周动态要闻: Lens 5.2 发布 CNI 1.0.1 发布 K8ssandra 从 Helm 迁移到 Operator Amazon EKS Anywhere – 现在普遍可用于在本地创建 ...
- Analysis I Chapter 2 - By Professor Terence Tao
目录 2.1 The Peano Axioms 2.2 Addition - Exercises 2.2 - 2.3 Multiplication - Exercises 2.3 - Method o ...
- Java高并发synchronized讲解生产者消费者
问题描述 题目:两个线程操作一个变量,实现两个线程对同一个资源一个进行加1操作,另外一个进行减1操作,且需要交替实现,变量的初始值为0.即两个线程对同一个资源进行加一减一交替操作.话不多说,开干首先我 ...
- 文件操作(C语言)
1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用 ...