Sickle是一个shellcode开发工具,用于加速创建正常运行的shellcode所需的各个步骤。 Sickle主要有以下功能:
快速错误检查在实际测试当中,测试人员往往需要对一个shellcode进行反复枯燥的测试,才能最终确定shellcode是否可用。这对测试人员来说,是一件相当费时费力的事情。而在这个问题上Sickle也许能助我们一臂之力,Sickle可以为我们快速的检查出shellcode中可能存在的错误问题。(适用于Windows和Unix系统): shellcode重建有时你可能想通过自己重建shellcode以了解某个执行流畅的shellceode片段的底层机制。Sickle可以帮助你将原始shellcode与“重建”版本进行差异性比较。 坏字符识别需要说明的是,关于坏字符的识别最好是在基于Linux的操作系统中使用。在Windows主机上转储shellcode时,并不会突出显示错误的字符。以下是在Unix环境下的一个使用示例: 反汇编也支持一个二进制文件和提取的操作码(shellcode)转换为机器指令(-obj)。注意,这需要与原始操作码(-r)和STDIN(-s)一起执行。在下面的例子中,我把一个reverse shell转换为了程序集。 Windows安装如果你不使用它的反汇编功能,仅仅只是将Sickle作为一个wrapper/dump的工具,那么你可以使用任意版本的Python环境(包括2.7)。这里需要说明的是,我在Windows 10上编写/测试64位shellcode时遇到了一些问题。因此,为了避免大家使用时出现同样的问题,我建议大家安装Python 3.4.4 (amd64) ,但对于其它版本的windows系统并不存在该问题。其次,如果你编写的shellcode为x86,则任意版本的Python都没影响,例如Python 3.7.0a3。以下是在Windows 10主机上测试msfvenom生成的shellcode(“windows / x64 / shell_reverse_tcp”)的用法示例 Linux安装Sickle是由Python3编写的,并且具有完整的功能,我建议直接安装capstone。Capstone的安装非常简单:
如果你不在NASM中编译你的shellcode,我已经添加了一个“objdump2shellcode”的功能。为了便于访问,我更喜欢将Sickle添加到/usr/bin/目录,但是如果使用Black Arch Linux Sickle则已被预安装。(以前称为objdump2shellcode): root@wetw0rk:~# git clone https://github.com/wetw0rk/Sickle.gitroot@wetw0rk:~# cd Sickle/root@wetw0rk:~# chmod +x sickle.pyroot@wetw0rk:~# cp sickle.py /usr/bin/sickleroot@wetw0rk:~# sickleusage: sickle [-h] [-r READ] [-s] [-obj OBJDUMP] [-f FORMAT] [-b BADCHAR] [-c] [-v VARNAME] [-l] [-e EXAMINE] [-d] [-a ARCH] [-m MODE] [-rs]Sickle - a shellcode development tooloptional arguments: -h, --help show this help message and exit -r READ, --read READ read byte array from the binary file -s, --stdin read ops from stdin (EX: echo -ne '\xde\xad\xbe\xef' | sickle -s -f 参考来源:github
|
|
来自: 西北望msm66g9f > 《王天庆》