Sickle:推荐一款优质ShellCode开发工具

2018 年 2 月 18 日 FreeBuf secist

Sickle是一个shellcode开发工具,用于加速创建正常运行的shellcode所需的各个步骤。

Sickle主要有以下功能:

识别可能会导致shellcode无法正常执行的坏字符。

支持多种语言输出格式(python,perl,javascript等)。

通过STDIN接收shellcode并格式化。

在Windows和Linux环境中均可执行shellcode。

支持shellcode间差异性比较。

反汇编shellcode到汇编语言(例如ARM,x86等)。

快速错误检查

在实际测试当中,测试人员往往需要对一个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的安装非常简单:

  • apt-get install python3-pip

  • pip3 install capstone

如果你不在NASM中编译你的shellcode,我已经添加了一个“objdump2shellcode”的功能。为了便于访问,我更喜欢将Sickle添加到/usr/bin/目录,但是如果使用Black Arch Linux Sickle则已被预安装。(以前称为objdump2shellcode):

root@wetw0rk:~# git clone https://github.com/wetw0rk/Sickle.git
root@wetw0rk:~# cd Sickle/
root@wetw0rk:~# chmod +x sickle.py
root@wetw0rk:~# cp sickle.py /usr/bin/sickle
root@wetw0rk:~# sickle
usage: 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 tool

optional 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 <format> -b '\x00')
  -obj OBJDUMP, --objdump OBJDUMP
                        binary to use for shellcode extraction (via objdump
                        method)
  -f FORMAT, --format FORMAT
                        output format (use --list for a list)
  -b BADCHAR, --badchar BADCHAR
                        bad characters to avoid in shellcode
  -c, --comment         comments the shellcode output
  -v VARNAME, --varname VARNAME
                        alternative variable name
  -l, --list            list all available formats and arguments
  -e EXAMINE, --examine EXAMINE
                        examine a separate file containing original shellcode.
                        mainly used to see if shellcode was recreated
                        successfully
  -d, --disassemble     disassemble the binary file
  -a ARCH, --arch ARCH  select architecture for disassembly
  -m MODE, --mode MODE  select mode for disassembly
  -rs, --run-shellcode  run the shellcode (use at your own risk)

参考来源:github,FB小编 secist 编译,转载请注明来自FreeBuf.COM

登录查看更多
0

相关内容

shellcode是一段不依赖于上下文的可执行机器码。
FPGA加速系统开发工具设计:综述与实践
专知会员服务
66+阅读 · 2020年6月24日
打怪升级!2020机器学习工程师技术路线图
专知会员服务
99+阅读 · 2020年6月3日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
118+阅读 · 2020年5月10日
【资源】100+本免费数据科学书
专知会员服务
108+阅读 · 2020年3月17日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
214+阅读 · 2020年2月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
30+阅读 · 2019年10月17日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
Java开发者必看!机器学习开发库精选
云栖社区
5+阅读 · 2018年8月22日
精选Top30!最实用的python开源项目都在这里
乌镇智库
4+阅读 · 2018年1月26日
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
Directions for Explainable Knowledge-Enabled Systems
Arxiv
26+阅读 · 2020年3月17日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
7+阅读 · 2018年1月31日
Arxiv
3+阅读 · 2017年12月18日
VIP会员
相关VIP内容
FPGA加速系统开发工具设计:综述与实践
专知会员服务
66+阅读 · 2020年6月24日
打怪升级!2020机器学习工程师技术路线图
专知会员服务
99+阅读 · 2020年6月3日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
118+阅读 · 2020年5月10日
【资源】100+本免费数据科学书
专知会员服务
108+阅读 · 2020年3月17日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
214+阅读 · 2020年2月21日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
30+阅读 · 2019年10月17日
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
Java开发者必看!机器学习开发库精选
云栖社区
5+阅读 · 2018年8月22日
精选Top30!最实用的python开源项目都在这里
乌镇智库
4+阅读 · 2018年1月26日
码农日常工具推荐
架构文摘
4+阅读 · 2017年9月26日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
相关论文
Directions for Explainable Knowledge-Enabled Systems
Arxiv
26+阅读 · 2020年3月17日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
3+阅读 · 2018年5月28日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
7+阅读 · 2018年1月31日
Arxiv
3+阅读 · 2017年12月18日
Top
微信扫码咨询专知VIP会员