libc-binary-collection:精确识别远程Linux主机libc版本工具

需积分: 9 0 下载量 164 浏览量 更新于2024-11-06 收藏 19.61MB ZIP 举报
资源摘要信息:"libc-binary-collection:超过 1000 个二进制 libc 文件的集合" 知识点解析: 1. **Libc的定义与作用** libc(或称C运行时库)是类Unix操作系统中用于提供应用程序运行所必需的函数库。它包含了一系列标准C库函数,比如输入输出、字符串处理、内存分配、数学运算、时间日期处理等基本功能,是大多数C语言程序的运行基础。 2. **二进制文件的含义** 二进制文件是指包含了机器代码的文件,即可以直接被CPU执行的程序代码,而非人类可读的源代码。通常,我们通过编译器将源代码转换成二进制文件,然后加载到内存中执行。 3. **二进制libc文件的作用** 在Linux系统中, libc的二进制文件包含了标准C库的实现,它为运行中的程序提供了各种系统级和底层的功能。了解确切的libc版本对于安全研究人员来说至关重要,特别是在进行漏洞利用时,因为某些漏洞的利用方法依赖于特定版本的libc实现。 4. **漏洞利用与泄漏指针** 漏洞利用是安全领域的一个术语,指的是在发现软件中的安全漏洞后,通过编写特定代码来攻击这个漏洞,从而控制运行中的程序。泄漏指针(指针泄露)是指攻击者通过漏洞获取了程序中某些内存地址的值,这些地址原本是不应该被公开的。利用这些指针信息,攻击者可以更精确地定位其他内存区域,进而实现更复杂的攻击。 5. **识别远程Linux主机上的libc版本** 在漏洞利用过程中,识别远程主机上的确切libc版本非常关键,因为不同的libc版本可能包含不同的安全漏洞和特性。一个常用的命令行脚本工具是"identify.py",它可以通过比较远程主机泄露的内存地址与已知libc二进制文件中的地址来识别版本。 6. **命令行工具的使用** 示例中提到的 "./identify.py printf=0x7ffff7a9f0d0" 命令是一个利用Python编写的脚本,用于帮助识别远程系统上的libc版本。这里,"printf=0x7ffff7a9f0d0" 是一个参数,指定了printf函数在远程系统内存中的地址。然后通过grep和sort等命令来过滤和排序输出结果,最终找到与之匹配的libc版本。 7. **支持的发行版** 提到的资源中包含了来自各种发行版的libc二进制版本,这可能包括Debian、Ubuntu等常见Linux发行版。这意味着该集合可用于多种不同环境的漏洞识别和利用。 8. **文件结构与命名** 给定的压缩包子文件名称"libc-binary-collection-master"暗示了这是一个版本控制仓库,可能使用了Git作为版本控制系统,通常在源代码管理中以“-master”或“-main”后缀表示主要分支或版本。 总结: 该资源集合为安全研究人员提供了一个庞大的二进制libc文件库,涵盖了多个Linux发行版的不同版本。通过这些文件,研究人员可以在漏洞利用过程中,快速准确地识别远程系统上运行的确切的libc版本。而识别工作通常涉及到分析泄露的内存地址,与本地的libc二进制文件进行比对,最后通过脚本工具如"identify.py"来实现。这些工作依赖于对不同版本libc二进制文件的精确对照,因此该集合具有很高的实用价值。

--------- beginning of crash 01-18 13:36:55.631 641 641 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 641 (init), pid 641 (init) 01-18 13:36:55.653 641 641 F libc : crash_dump helper failed to exec, or was killed 07-13 20:17:19.904 4586 4586 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 4586 (init), pid 4586 (init) 07-13 20:17:20.109 4586 4586 F libc : crash_dump helper failed to exec, or was killed 07-13 22:44:09.011 19049 19173 F libc : Fatal signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 0x703860a000 in tid 19173 (priority-3), pid 19049 (loros.gallery3d) 07-13 22:44:18.663 19978 19978 F DEBUG : Process name is com.coloros.gallery3d, not key_process 07-13 22:44:18.663 19978 19978 F DEBUG : keyProcess: 0 07-13 22:44:18.663 19978 19978 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 07-13 22:44:18.663 19978 19978 F DEBUG : Build fingerprint: 'OPPO/CPH2565/OP5745L1:13/TP1A.220905.001/T.R4T2.1171403-23463-3:user/release-keys' 07-13 22:44:18.663 19978 19978 F DEBUG : Revision: '0' 07-13 22:44:18.663 19978 19978 F DEBUG : ABI: 'arm64' 07-13 22:44:18.663 19978 19978 F DEBUG : Timestamp: 2023-07-13 22:44:17.727514045+0800 07-13 22:44:18.663 19978 19978 F DEBUG : Process uptime: 152s 07-13 22:44:18.663 19978 19978 F DEBUG : Cmdline: com.coloros.gallery3d 07-13 22:44:18.663 19978 19978 F DEBUG : pid: 19049, tid: 19173, name: priority-3 >>> com.coloros.gallery3d <<< 07-13 22:44:18.663 19978 19978 F DEBUG : uid: 10115 07-13 22:44:18.663 19978 19978 F DEBUG : signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 0x000000703860a000 07-13 22:44:18.663 19978 19978 F DEBUG : x0 0000007010ec7130 x1 0000007038609fd0 x2 0000000000000038 x3 0000000000000020

2023-07-22 上传

06-01 15:46:59.758 4646 4646 F DEBUG : Revision: '0' 06-01 15:46:59.758 4646 4646 F DEBUG : ABI: 'arm' 06-01 15:46:59.758 4646 4646 F DEBUG : pid: 4642, tid: 4642, name: mytest >>> ./mytest <<< 06-01 15:46:59.758 4646 4646 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 06-01 15:46:59.758 4646 4646 F DEBUG : Cause: null pointer dereference 06-01 15:46:59.758 4646 4646 F DEBUG : r0 92fb5000 r1 9de3d7dc r2 9de3d7d8 r3 9de3d7e8 06-01 15:46:59.759 4646 4646 F DEBUG : r4 05080bd1 r5 9450680c r6 00000002 r7 00000000 06-01 15:46:59.759 4646 4646 F DEBUG : r8 00000000 r9 00000000 r10 00000000 r11 92fb5000 06-01 15:46:59.759 4646 4646 F DEBUG : ip ffffffda sp 9de3d718 lr 944d89b1 pc 00000000 06-01 15:46:59.775 4646 4646 F DEBUG : 06-01 15:46:59.775 4646 4646 F DEBUG : backtrace: 06-01 15:46:59.775 4646 4646 F DEBUG : #00 pc 00000000 <unknown> 06-01 15:46:59.775 4646 4646 F DEBUG : #01 pc 000e09af /system/lib/libavformat.so (avformat_find_stream_info+158) 06-01 15:46:59.775 4646 4646 F DEBUG : #02 pc 00000c0d /data/mytest (main+60) 06-01 15:46:59.775 4646 4646 F DEBUG : #03 pc 0008be09 /system/lib/libc.so (__libc_init+48) 06-01 15:46:59.775 4646 4646 F DEBUG : #04 pc 00000b8f /data/mytest (_start_main+46) 06-01 15:46:59.776 4646 4646 F DEBUG : #05 pc 00019ac7 /system/bin/linker (__dl__ZNSt3__112__hash_tableINS_17__hash_value_typeIjP6soinfoEENS_22__unordered_map_hasherIjS4_NS_4hashIjEELb1EEENS_21__unordered_map_equalIjS4_NS_8equal_toIjEELb1EEENS_9allocatorIS4_EEE14__erase_uniqueIjEEjRKT_+90) 06-01 15:46:59.776 4646 4646 F DEBUG : #06 pc 00020e8d [stack:9de1d000]

2023-06-02 上传