Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)

发布时间 2023-11-20 15:06:50作者: hac425

Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)

漏洞分析

ConnMan 处理 WIFI Portal 时的堆越界写,这部分协议特性称作:WISPR

WISPR 特性和漏洞:

image

image


Exploit 使用的漏洞为 CVE-2022-32292, count 和 pos 的计算有问题导致会修改相邻内存块中的 \x0a --> \x00

image

漏洞利用

堆布局原语:利用 http header 作为内存申请和释放原语
image

信息泄露

思路: byte 越界写 --> 劫持指针 --> DOUBLE FREE --> 1'st free & realloc with dhcp --> 2'st free && write libc ptr to dhcp mem --> leak.

image

  1. 通过布局让 receive_buffer 后面跟着一个 hashtable.values 指针数组,利用漏洞修改指针的 \x0a --> \x00,让两个指针指向同一块内存。

    1. image
  2. 然后用 dhcp hostname 占位重叠内存。

  3. 利用 hashtable.values 的引用释放 hostname 所在内存,将块放到 unsorted bin --> 写入 libc 地址到 hostname

    1. image
  4. dhcp 返回 hostname 给攻击者

代码执行

方案一 (LIBC 2.29)

构造重叠堆块,然后劫持 tcache next 指针,任意地址写。

image


​​image​​

方案二 (LIBC 2.34)

劫持其他函数指针.

image

发送 CAN 报文

connman 可以用 raw socket 发送 can 报文,实现特定功能。

image