一些用于泄露libc版本的工具

libc_database

  • ./add 用来添加libc库
./add /usr/lib/libc-2.21.so
  • ./find 用来查找libc版本
$ ./find printf 260
archive-glibc (id libc6_2.19-10ubuntu2_i386)
  • ./dump 用来输出libc中的一些函数的偏移
$ ./dump libc6_2.19-0ubuntu6.6_i386
offset___libc_start_main_ret = 0x19a83
offset_system = 0x00040190
offset_dup2 = 0x000db590
offset_recv = 0x000ed2d0
offset_str_bin_sh = 0x160a24

LibcSearcher 一个基于libc_database写的python库
例子

from LibcSearcher import *

#第二个参数,为已泄露的实际地址,或最后12位(比如:d90),int类型
obj = LibcSearcher("fgets", 0X7ff39014bd90)

obj.dump("system")        #system 偏移
obj.dump("str_bin_sh")    #/bin/sh 偏移
obj.dump("__libc_start_main_ret")    

libc database search一个用来查询libc版本的网站

image.png

onegadget 一个神奇的工具 用来找libc中能一个gadget就get到shell的偏移

使用

one_gadget /lib/x86_64-linux-gnu/libc.so.6
image.png

info proc map 查看各个库加载信息然后寻找 "/bin/sh" 字符串
strings: 查看文件中可见字符串
strings -a -t x /lib32/libc.so.6 | grep "/bin/sh"
objdump -d file | grep "ret" 可以用来查找ret指令
objdump -x [filename] 打印头文件信息以及区段信息
objdump -T libc.so | grep gets

我知道的就这么多了

推荐阅读更多精彩内容

  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys阅读 1,471评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 2,157评论 0 4
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 23,638评论 2 81
  • 那个愿意投你所好的人,你早已忘了他的名字。那个伤你最深的人,估计这辈子名字都忘不掉。
    阿金金金阅读 45评论 1 0
  • 从毕业挫折,迷茫,到情绪失衡,没有生活的希望。三个月的光景,走来,颇多感慨。 我想告诉你,和我一样的你:我们都是真...
    马钰道长阅读 120评论 6 3