karkinos
1.0.0
一个大型库数据库,可帮助在 Linux 上进行二进制利用。该工具可以通过提供已知符号的位置来帮助识别未知库,它可以帮助查找包含给定库的包的名称,并且可以找到您正在使用的库的调试版本。
一旦识别出库,您就可以转储有用的信息,例如符号(导出的符号和对利用有用的特殊有用的计算位置)、ROP 链的小工具或单次射击(又名魔术小工具或一个小工具)及其约束。
其用法受到优秀的 libc-database 的启发。
它支持许多架构,包括:
有许多库在跨越多年的许多发行版中建立了索引。索引的库是:
首选方法是仅下载并提取最新版本。从那时起,Karkinos 将自行管理更新。或者,您可以克隆此存储库。
通过任一方法获得 Karkinos 后,您可以通过运行以下命令来访问该工具:
$ ./kark.py --help
第一次运行时,它将尝试从压缩文件中提取数据库,您需要安装xz和cat二进制文件并通过PATH环境变量使用它们。
usage: kark.py [-h] [--libdb {glibc,libstdc++}] [--distro DISTRO]
[--arch {x86,amd64,i386,arm,arm64,mips,mips64,ppc,ppc64,sparc,sparc64,m68k,hppa,sh4}]
[--endian {little,big}]
{find,dump,info,update} ...
description:
karkinos is a library database to assist with exploitation by helping to
identify libraries from known offsets or to dump useful offsets from those
identified libraries. Each database indexes symbols, gadgets and where
possible one shot gadgets (AKA magic gadgets or one gadgets).
architectures indexed:
- x86 (amd64, i386)
- arm (arm, arm64)
- mips (mips, mips64)
- ppc (ppc, ppc64)
- sparc (sparc, sparc64)
- m68k
- hppa
- sh4
- riscv
libraries indexed:
- glibc
- libstdc++
- glibc-ld
- libgcc
- musl
commands:
- find find a library by symbol offsets, file, build id or file hash
- dump dump symbols/gadgets for a given library
- info print some information about a specific library
- update check for updates to the database
- version display version information and exit
positional arguments:
{find,dump,info,update}
command to execute
args arguments for specific command, see examples
optional arguments:
-h, --help show this help message and exit
--libdb {glibc,libstdc++}
the library database to use
--distro DISTRO the linux distribution to filter in symbol search
--arch {x86,amd64,i386,arm,arm64,mips,mips64,ppc,ppc64,sparc,sparc64,m68k,hppa,sh4}
architecture to filter in symbol search
--endian {little,big}
endianess to filter in symbol search
examples:
./kark.py find fgets b20 puts 9c0 fwrite 8a0
./kark.py find 50390b2ae8aaa73c47745040f54e602f
./kark.py find b417c0ba7cc5cf06d1d1bed6652cedb9253c60d0
./kark.py find /lib/x86_64-linux-gnu/libc.so.6
./kark.py --arch arm --endian big find system 440
./kark.py --distro ubuntu fgets b20 puts 9c0
./kark.py dump centos_glibc-2.12-1.107.el6_4.2.x86_64
./kark.py dump opensuse_glibc-2.19-16.9.1.i686 fgets system str_bin_sh
./kark.py info ubuntu_libc6-udeb_2.27-3ubuntu1_amd64
./kark.py update

@0xb0bb