Skip to main content

libc offset database searcher

Project description

PKGS PyPI package Python Wheel License

LibcSearcher3

(Search libc function offset)

简介

这是针对CTF比赛所做的工具,需要Python版本大于等于 3.7

在泄露了Libc中的某一个函数地址后,常常为不知道对方所使用的操作系统及libc的版本而苦恼,常规方法就是挨个把常见的Libc.so从系统里拿出来,与泄露的地址对比一下最后12位。

为了不在这一块浪费太多生命,写了几行代码,方便以后重用。

这里用了libc-database的数据库。

使用前需要先进行初始化。

安装

$ git clone https://github.com/Ro0tk1t/LibcSearcher3.git
$ pip3 install -e LibcSearcher3

or

$ pip3 install LibcSearcher3

初始化

$ libcsearch --init

使用

实例化

from LibcSearcher3 import *

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

obj = LibcSearcher("fgets", 0x7ff39014bd90) # 使用一个已知符号地址作为初始约束,初始化 LibcSearcher
obj.add_condition("atoi", 218528) # 添加一个约束条件

print("[+]/bin/sh offset: ", hex(obj.dump("str_bin_sh"))) # 根据已有约束条件,查询某个符号在 Libc 中的地址
print("[+]system  offset: ", hex(obj.dump("system")))

命令行

$ libcsearch --help
usage: libcsearch [-h] [-i] [-f FUNC] [-d ADDR] [-t TO_LEAK]

optional arguments:
  -h, --help            show this help message and exit
  -i, --init            初始化libc库
  -l LOCAL_LIBC, --local LOCAL_LIBC
                        添加本地libc信息
  -f FUNC, --func FUNC  已泄露的函数名
  -d ADDR, --addr ADDR  已泄露函数的实际地址
  -t TO_LEAK, --to_leak TO_LEAK
                        需要泄露的函数偏移

$ libcsearch -f fgets -d 0x7ff39014bd90 -t system
Multi Results:
 0: kali-glibc (id libc6-x32_2.31-3_amd64)
 1: ubuntu-old-eglibc (id libc6-amd64_2.13-0ubuntu13.2_i386)
 2: kali-glibc (id libc6-x32_2.31-3_i386)
 3: ubuntu-old-glibc (id libc6_2.19-10ubuntu2_amd64)
 4: archive-glibc (id libc6-amd64_2.23-0ubuntu10_i386)
Please supply more info using 
        add_condition(leaked_func, leaked_address).
You can choose it by hand
Or type 'exit' to quit: 0
[+] kali-glibc (id libc6-x32_2.31-3_amd64) be choosed.
[+] system offset:  0x40130

添加本地libc库信息

$ libcsearch -l /usr/lib32/libc-2.31.so
Adding local libc /usr/lib32/libc-2.31.so (id local-189747720230b84e629b7fb77ecb4006416e3ada  /usr/lib32/libc-2.31.so)
  -> Writing symbols to ../db/local-189747720230b84e629b7fb77ecb4006416e3ada.symbols
  -> Writing version info

如果遇到返回多个libc版本库的情况,可以通过add_condition(leaked_func, leaked_address)来添加限制条件,也可以手工选择其中一个libc版本(如果你确定的话)。

其它

水平一般,代码很烂,如有bug,欢迎吐槽。

欢迎贡献不同linux发行版的libc信息。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LibcSearcher3-1.4.0.tar.gz (3.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

LibcSearcher3-1.4.0-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file LibcSearcher3-1.4.0.tar.gz.

File metadata

  • Download URL: LibcSearcher3-1.4.0.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for LibcSearcher3-1.4.0.tar.gz
Algorithm Hash digest
SHA256 1117a433d09e9a12c37d4e8fb15cd7527a30bd6ac5b7010c3df0a8c6a4314cfe
MD5 20a0ec646d70b8a007b9eb8d2542af21
BLAKE2b-256 9e2a0a918da25ba71e6107cb6eaecafbd7af83b29570f26f6e30d27ac4b14397

See more details on using hashes here.

File details

Details for the file LibcSearcher3-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: LibcSearcher3-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for LibcSearcher3-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55b51bf5ce381ead239116afcd4678cbbdc1cfba8ac9a453bc82445a1e5a490a
MD5 46f4a63692e9e2e559fc4b954f343509
BLAKE2b-256 e8c2b2d72d2bfa616cf081f820abc4457551f2a33eef9690e4beb728c3effb63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page