freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

HeapViewer:一款专注于漏洞利用开发的IDA Pro插件
2018-05-17 13:00:32

今天给大家介绍的是一款名叫 HeapViewer 的 IDA Pro 插件,它是一款专注于漏洞利用开发的工具,可用于对 glibc 堆进行测试。

工具要求

IDA PRO>= 6.9

glibc<= 2.27(x86,x64)

注:HeapViewer 当前仅支持 glibc malloc(ptmalloc2)。

功能介绍

1.   堆栈跟踪(malloc/free/calloc/realloc)

2.   查看区块分配信息

3.   Bin 信息查看(fastbins,unsortedbin, smallbins y largebins)

4.   Tcache 信息查看(glibc >= 2.26)

5.   图形化信息查看(bins/tcache)

6.   等等…

工具安装

直接将 heap_viewer.py 文件和 heap_viewer 文件夹拷贝到 IDA 的插件目录(plugin)中即可。

因为 IDA 并不会在调试会话中加载 libc-dbg 符号,所以在使用该插件之前需要生成一份配置文件(config.json)。首先,需要在远程 Linux 设备中安装 libc6-dbg 包,并执行脚本 utils\get_config.py。接下来,将生成的内容拷贝到 heap_viewer\config.json 文件中。

get_config.py

$python get_config.py

[*]config.json:

{

  "libc_offsets": {

    "32": {

      "mp_": 1921312,

      "main_arena": 1922976,

    },

    "64": {

      "mp_": 3883648,

      "main_arena": 3886144,

    }

  },

  "libc_version": "2.27"

}

如果你没有给定 libc 的 dbg 符号,你可以选择使用 get_main_arena 工具,然后拿到给定 libc 的 main_arena 偏移量,最后把 main_arena 偏移量写入 config.json 文件即可,这样就可以保证插件能够正常工作了。

样本:

$./main_arena_offset
[*]libc version:       2.27
[*]libc file:         /lib/i386-linux-gnu/libc-2.27.so
[*]libc address:       0xf7ceb000
[*]main_arena:         0xf7ec07a0
[*]main_arena offset:  0x1d57a0
$LD_PRELOAD=./libc_64.so.6 ./main_arena_offset
...

工具截图

堆栈跟踪器:

Arena&区块信息:

Tcache 实体:

Bins 信息查看:

Bin 数据图

Fastbin 数据图:

Tcache 信息图

查看 fake fastbin:

合并信息查看:

有用的 libc 偏移量:

工具开发者

Daniel García Gutiérrez - @danigargu

工具下载

HeapViewer:【点我下载

* 参考来源:heap-viewer,FB 小编 Alpha_h4ck 编译,转载请注明来自 FreeBuf.COM

# IDA Pro # HeapViewer
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者