前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BST:一款功能强大的二进制字符串代码格式转换工具

BST:一款功能强大的二进制字符串代码格式转换工具

作者头像
FB客服
发布2024-04-15 15:18:46
880
发布2024-04-15 15:18:46
举报
文章被收录于专栏:FreeBufFreeBuf
关于BST

BST是一款功能强大的二进制字符串代码格式转换工具,该工具可以将二进制字符串转换为能够兼容不同语言源代码的各种格式,以满足各种安全开发领域中的渗透测试或漏洞利用开发场景。

功能介绍

1、将二进制文件转换并转储为二进制字符串格式的标准输出;

2、将纯十六进制输入字符串转换为十六进制转义版本;

3、支持生成字符串序列,用于检测缓冲区中的字符;

4、限制二进制字符串的宽度以提高漏洞利用代码的可读性;

5、使用不同的编程语言或脚本语言来设置二进制字符串的格式,例如C/C++、Python和PowerShell;

6、执行自动化可变代码块缩进,以方便代码的复制/粘贴;

依赖组件

1、POSIX C库;

2、C编译器:GCC、LLVM Clang;

3、GNU Make;

4、Git;

工具下载&配置

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
$ git clone https://github.com/e3prom/bst

然后切换到项目目录中,使用make命令完成项目代码构建,默认配置下BST将会安装在“/usr/local/bin”路径下:

代码语言:javascript
复制
$ cd bst

$ make

$ sudo make install

工具使用

下列命令可以查看工具的帮助信息:

代码语言:javascript
复制
$ bstrings --help

Usage: bstrings [OPTION]...

 Convert input to specified binary string format.

 

 At least one of the below options must be given:

    -D, --dump-file=FILE    恢复和转储文件元数据内容

    -x, --hex-escape        转义输入十六进制字符串

    -b, --gen-badchar       生成一个恶意序列字符串

 

 The below switches are optional:

    -f, --file=FILE            从文件读取十六进制输入

    -w, --width=BYTES       将二进制字符串按指定字节长度拆分

    -s, --syntax=LANG        使用指定编程语言语句输出变量

    -i, --indent=LENGTH      对给定的字符长度执行缩进

    -n, --var-name=VAR      指定字符串变量名(Verbose模式)

    -h, --help              显示工具帮助信息

       --interactive         进入交互式模式

       --verbose           启用Verbose输出

       --version            打印工具版本信息

 

 The below languages are supported (case-sensitive):

    C                       C语言

    python                  Python语言

    powershell              PowerShell自动化脚本语言

在下面的演示样例中,我们将使用BST来编译Shellcode,示例中使用Python语法格式和4个空格字符的代码缩进级别,并将Shellcode转储(-D)为十六进制转义(-x)二进制字符串的标准输出,字符长度为8字节:

代码语言:javascript
复制
$ bstrings --verbose -x -D lnx-execve-setreuid-x86_64 -w8 -i 4 --syntax=python

[*] Convert hexadecimal input to an escaped binary string.

[+] Binary string width is limited to 8 bytes.

[+] Output binary string using python language syntax.

[+] Indentation level set to 4 space character(s).

    shellcode =  ""

    shellcode += "\x31\xc0\x48\x89\xc7\x48\x89\xc6"

    shellcode += "\x48\x89\xc2\xb0\x71\x0f\x05\x31"

    shellcode += "\xc0\x50\x48\xbb\x2f\x62\x69\x6e"

    shellcode += "\x2f\x2f\x73\x68\x53\x48\x89\xe7"

    shellcode += "\x50\x48\x89\xe6\x57\x48\x89\xe2"

shellcode += "\xb0\x3b\x0f\x05"

我们还可以使用BST以我们熟悉的编程语言代码格式自动化输出恶意字符序列:

代码语言:javascript
复制
$ bstrings --verbose -b -w12 -i 4 --syntax=c -n badchar

[*] Generating bad character binary string.

[+] Binary string width is limited to 12 bytes.

    unsigned char badchar[] =

        "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c"

        "\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18"

        "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24"

        "\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"

        "\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c"

        "\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48"

        "\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54"

        "\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"

        "\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c"

        "\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78"

        "\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84"

        "\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"

        "\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c"

        "\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8"

        "\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4"

        "\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"

        "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc"

        "\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8"

        "\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4"

        "\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0"

        "\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc"

        "\xfd\xfe\xff"

许可证协议

本项目的开发与发布遵循GPL-2.0开源许可证协议。

项目地址

BST:

https://github.com/e3prom/bst

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档