关于K55
K55是一款 Payload注入工具,该工具可以向正在运行的进程注入x86_64 shellcode Payload。该工具使用现代C++11技术开发,并且继承了某些传统的C Linux函数,比如说ptrace()等等。在目标进程中生成的shellcode长度为27个字节,并且能够在目标进程的地址空间中执行/bin/sh(生成一个Bash shell)。将来,我们还会支持允许用户通过命令行参数输入自己的shellcode。
工具安装
广大研究人员可以使用下列命令将该项目源码克隆至本地,然后完成工具的安装、构建与配置:
git clone https://github.com/josh0xA/K55.git
cd K55
chmod +x build-install.sh
./build-install.sh
K55使用
Usage: ./K55
上述命令中的process-name进程名可以是任何带有r-xp或execstack权限的Linux进程。
测试
测试1 - 打开一个命令行窗口,切换至K55/目录下,然后运行下列命令:
./k55_example_process/k55_test_process
测试2 - 打开另一个命令行窗口,通过下列命令运行注入器:
sudo ./K55 k55_test_process
K55使用样例
当K55的shellcode注入器以root权限运行之后,将会在k55_test_process中生成一个shell。
向给定进程注入Payload:
工具限制
很明显,针对ptrace的调用肯定不够隐蔽。因此,还是会有一些应用可以限制K55的功能。不过,对于安全测试来说,我们还需要确保目标应用程序启用了execstack。比如说,如果我在gdb上进行测试,那么在注入之前,我需要运行下列命令:
sudo execstack -s /usr/bin/gdb
如果你是用的是Arch Linux,你可以直接在AUR中找到execstack。
项目地址
K55:https://github.com/josh0xA/K55