freeBuf
主站

分类

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

特色

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

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

SGN:一款功能强大的多模式二进制编码工具
2020-07-26 02:10:25

SGN

SGN是一款功能强大的多模式(多态)二进制编码工具,广大渗透测试人员可以在SGN的帮助下,轻松生成静态且不可检测的二进制Payload。SGN可以使用反馈循环来对给定的二进制指令进行编码,这种方式类似于LSFR

工具特性

针对网络安全社区来说,原始版本的SGN编码器一开始被认为是最好的Shellcode编码器,直到现在其实也是。但多年以来,安全研究人员发现了静态检测编码器的几个Bug(相关内容可以参考FireEye的文章)。因此,社区不断地在对SGN进行改进,以期实现更好的编码功能。

当前版本的SGN实现了以下改进:

1、64位支持,可正确编码x64 Shellcode。

2、更小型的解码器Stub,LFSR密钥降低为1个字节。

3、使用伪随机模式的编码器Stub,解码器Stub也使用了伪随机模式编码。

4、解码器Stub混淆,添加了随即垃圾指令生成器。

5、安全注册选项,不会影响寄存器。

工具安装

依赖组件

该工具需要的依赖组件为keystone和capstone库,安装这两个库的方法如下:

OS

安装命令

Ubuntu/Debian

sudo apt-get install libcapstone-dev

Arch Linux

sudo pacman -S capstone keystone

Mac

brew install keystone capstone

Fedora

sudo yum install keystone capstone

Windows和其他平台

【点击这里】

在某些情况下,keystone库的安装可能会比较麻烦,如果遇到问题的话,可以参考这篇【文档】。

配置好依赖组件之后,你就可以使用下列命令将SGN项目源码克隆至本地:

go get github.com/egebalci/sgn

工具使用

“-h”选项可以直接查看工具的帮助信息,如果你想要查看编码过程的详细数据,可以使用“-v”选项来开启verbose模式。

以代码库的形式使用

警告!SGN包目前仍处于开发阶段,主要重心在性能提升上,大多数功能可能会因为版本不同而有区别。

package main

import (

"encoding/hex"

"fmt"

"io/ioutil"

sgn "github.com/egebalci/sgn/lib"

)

func main() {

// First open some file

file, err := ioutil.ReadFile("myfile.bin")

if err != nil { // check error

fmt.Println(err)

return

}

// Create a new SGN encoder

encoder := sgn.NewEncoder()

// Set the proper architecture

encoder.SetArchitecture(64)

// Encode the binary

encodedBinary, err := encoder.Encode(file)

if err != nil {

fmt.Println(err)

return

}

// Print out the hex dump of the encoded binary

fmt.Println(hex.Dump(encodedBinary))

 

}

工具执行流

下图显示的是SGN编码器的基本执行流程,但是请记住,在每次迭代中,垃圾指令、解码器和模式解码器的大小、位置和顺序都会发生变化。

LFSR本身在概率空间方面的功能是非常强大,下图显示了LFSR的特征多项式的伴随矩阵,并将种子表示为列向量,k步后寄存器在Fibonacci配置中的状态。

工具演示

 【点我观看

项目地址

SGN:【GitHub传送门

# 数据安全 # 数据安全 # 编码 # 解码
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录