「Pwn」粗浅分析 House Of Muney

「Pwn」粗浅分析 House Of Muney

💡 原文中文,约9200字,阅读约需22分钟。
📝

内容提要

这篇文章介绍了一种名为"House of Muney"的堆利用技术,可以绕过ASLR实现代码执行。文章详细解释了该技术的利用条件和原理,并提供了相关的代码和演示。该技术需要能够溢出size位并分配大块内存。文章指出在2.40版本的libc上可能会出现问题。

🎯

关键要点

  • 介绍了一种名为'House of Muney'的堆利用技术,可以绕过ASLR实现代码执行。
  • 该技术的利用条件包括:Partial RELRO / No RELRO、能够分配较大的堆、能够改写堆的prev_size和size字段。
  • 在malloc时,如果大小大于mmap_threshold,则会利用mmap系统调用分配内存。
  • mmap_threshold在x86_64上一般为128KB。
  • mmap后,chunk的size第二位IS_MMAPED被设置为1,分配的位置靠近libc的高地址。
  • free操作时,完整性检查只检查chunk是否对齐,而不检查prev_size和size。
  • 通过修改chunk_size,可以覆盖libc的一部分,伪造Elf64_sym结构体以实现代码执行。
  • 需要注意GNU使用哈希操作和bloom filter来快速确定符号的存在。
  • 伪造Elf64_sym结构体时,需要记录相对于libc_base的偏移与变量的值。
  • 在2.40版本的libc上可能会出现问题,导致free操作失败。
➡️

继续阅读