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 ...
随机推荐
- SpringBoot系列:使用原生JDBC实现对数据库的增删改查
application.yml spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306 ...
- QT框架中的缓存:为什么有QHash和QMap,还设计了QCache和QContiguousCache?
简介 本文介绍了QT框架中可用于缓存的几个数据类型各自的特点:通过本文读者可以了解到为什么有QHash和QMap,还设计了QCache和QContiguousCache? 目录 QHash和QMap有 ...
- [TK] 理想的正方形
题目描述 有一个整数组成的矩阵,现请你从中找出一个指定边长的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 题目分析 其实这道题和滑动窗口很像,而滑动窗口使用优先队列解决. 我们都知道优先队 ...
- for循环遍历的盗版笔记
遍历一个List有如下几种方法 5 6 是 java8 增强for循环底层由Iterator实现 增强for的出现时替代迭代器的,所以在遍历集合或者遍历数组就可以使用增强for去完成 增强for循 ...
- Linux进程调度-组调度及带宽控制
1. 概述 组调度(task_group)是使用Linux cgroup(control group)的cpu子系统来实现的,可以将进程进行分组,按组来分配CPU资源等. 比如,看一个实际的例子: A ...
- 内核级流量治理引擎Kmesh八大新特性解读
本文分享自华为云社区<内核级流量治理引擎 Kmesh v0.5 发布!进击的Sidecarless服务网格>,作者:云容器大未来. 我们非常高兴地宣布 Kmesh v0.5.0 的发布.首 ...
- 使用 KubeKey 在 AWS 高可用部署 Kubernetes
作者:李耀宗 介绍 对于生产环境,我们需要考虑 Kubernetes 集群的高可用性.本文教您部署如何在多台 AWS EC2 实例快速部署一套高可用的生产环境.要满足 Kubernetes 集群服务需 ...
- count(*)、count(1)哪个更快?面试必问:通宵整理的十道经典MySQL必问面试题
一.你是如何理解Count(*)和Count(1)的? 这两个并没有区别,不要觉得 count() 会查出全部字段,而 count(1) 不会.所以 count() 会更慢,你觉得 MySQL 作者会 ...
- 题解:「NOIP2022 提高组」种花
题解:「NOIP2022 提高组」种花 题目大意:给定一个 \(n \times m\) 的01矩阵,0表示可以种花,1表示土坑(无法种花),现在要在图上种出一个C型或F型(C,F横着的两条线的长度都 ...
- 在PyCharm中打包Python项目并将其运行到服务器上的方法
在PyCharm中打包Python项目并将其运行到服务器上的方法 在PyCharm中打包Python项目并将其运行到服务器上的过程,可以分解为几个关键步骤:创建项目.设置项目依赖.打包项目.配置服务器 ...