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