freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Sickle:推荐一款优质ShellCode开发工具
secist 2018-02-18 15:00:22 608218

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

Sickle主要有以下功能:

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

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

通过STDIN接收shellcode并格式化。

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

支持shellcode间差异性比较。

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

快速错误检查

在实际测试当中,测试人员往往需要对一个shellcode进行反复枯燥的测试,才能最终确定shellcode是否可用。这对测试人员来说,是一件相当费时费力的事情。而在这个问题上Sickle也许能助我们一臂之力,Sickle可以为我们快速的检查出shellcode中可能存在的错误问题。(适用于Windows和Unix系统):

example.png

shellcode重建

有时你可能想通过自己重建shellcode以了解某个执行流畅的shellceode片段的底层机制。Sickle可以帮助你将原始shellcode与“重建”版本进行差异性比较。

rev.png

坏字符识别

需要说明的是,关于坏字符的识别最好是在基于Linux的操作系统中使用。在Windows主机上转储shellcode时,并不会突出显示错误的字符。以下是在Unix环境下的一个使用示例:

68747470733a2f2f61736369696e656d612e6f72672f612f37767656526a5a476259374f6c714d736836644269374644552e706e67.png

反汇编

也支持一个二进制文件和提取的操作码(shellcode)转换为机器指令(-obj)。注意,这需要与原始操作码(-r)和STDIN(-s)一起执行。在下面的例子中,我把一个reverse shell转换为了程序集。

dis.png

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”)的用法示例

Win10.png

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

# shellcode
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 secist 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
secist LV.9
每个人的心中都有一个梦。。
  • 369 文章数
  • 267 关注者
ATTCK-PenTester-Book:根据ATT&CK知识体系编制的长达400页的渗透手册
2020-02-10
Sniffle: 蓝牙5和4.x LE嗅探器
2019-11-23
Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload
2019-11-11
文章目录