libc-database, 构建libc偏移量数据库简化开发

分享于 

2分钟阅读

GitHub

  繁體
Build a database of libc offsets to simplify exploitation
  • 源代码名称:libc-database
  • 源代码网址:http://www.github.com/niklasb/libc-database
  • libc-database源代码文档
  • libc-database源代码下载
  • Git URL:
    git://www.github.com/niklasb/libc-database.git
    Git Clone代码到本地:
    git clone http://www.github.com/niklasb/libc-database
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/niklasb/libc-database
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    构建libc偏移数据库

    获取所有配置的libc版本并提取符号偏移量,

     
    $ ./get
    
    
    
    

    还可以将自定义libc添加到数据库。

    
    $ ./add /usr/lib/libc-2.21.so
    
    
    
    

    查找libc中所有在给定地址有给定名称的数据库,仅检查最后12位,因为随机化通常在页面大小级别上进行。

    
    $ ./find printf 260 puts f30
    
    
    archive-glibc (id libc6_2.19-10ubuntu2_i386)
    
    
    
    

    从泄漏的返回地址中查找libc到__libc_start_main。

    
    $ ./find __libc_start_main_ret a83
    
    
    ubuntu-trusty-i386-libc6 (id libc6_2.19-0ubuntu6.6_i386)
    
    
    archive-eglibc (id libc6_2.19-0ubuntu6_i386)
    
    
    ubuntu-utopic-i386-libc6 (id libc6_2.19-10ubuntu2.3_i386)
    
    
    archive-glibc (id libc6_2.19-10ubuntu2_i386)
    
    
    archive-glibc (id libc6_2.19-15ubuntu2_i386)
    
    
    
    

    给定libc ID,转储一些有用的偏移量,你还可以提供自己的名称来转储。

    
    $ ./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
    
    
    
    

    检查数据库中是否存在库。

    
    $ ./identify /usr/lib/libc.so.6
    
    
    id local-f706181f06104ef6c7008c066290ea47aa4a82c5
    
    
    
    

    数据  EXP  构建  Simplify  漏洞  LIBC  
    相关文章