freeBuf
主站

分类

漏洞 工具 极客 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

Shoggoth:一款基于Asmjit的多态加密工具
Alpha_h4ck 2023-06-05 16:42:16 207962
所属地 广西

关于Shoggoth

Shoggoth是个基于C++和Asmjit库的开源项目,该工具可以帮助广大研究人员针对给定的Shell代码、PE和COFF文件进行多态加密。

Shoggoth可以生成一个输出文件,并以经过模糊处理的形式存储Payload及其相关的加载器。由于输出的内容是与位置无关的,因此我们也可以直接将其作为Shellcode来执行。当Payload正在执行的时候,它会在运行时对自己进行解密。除了加密程序之外,Shoggoth还添加了一些垃圾指令,这些指令在不同程序之间不会做任何的数据修改操作。

功能介绍

当前版本的Shoggoth支持下列功能:

1、仅适用于x64输入;

2、能够将PIC COFF加载器与COFF或BOF输入文件合并;

3、能够将PIC PE加载器与PE输入文件合并;

4、采用RC4算法的流密码;

5、采用了随机生成操作的分组密码;

6、支持垃圾指令生成;

工具执行流

工具要求

项目代码库中提供的原始代码并没有进行完整编译,因此我们还需要对项目进行手动构建和编译。或者,你想要编辑PE加载器或COFF加载器的源代码的话,你应该在设备上安装MinGW,并使用项目提供的Makefiles来进行代码构建。环境要求:

Visual Studio 2019+

MinGW编译器(可选)

工具下载

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

git clone https://github.com/frkngksl/Shoggoth.git

命令行参数

______ _                                  _

 / _____) |                             _  | |

( (____ | |__   ___   ____  ____  ___ _| |_| |__

 \____ \|  _ \ / _ \ / _  |/ _  |/ _ (_   _)  _ \

 _____) ) | | | |_| ( (_| ( (_| | |_| || |_| | | |

(______/|_| |_|\___/ \___ |\___ |\___/  \__)_| |_|

                    (_____(_____|

 

                     by @R0h1rr1m

 

                "Tekeli-li! Tekeli-li!"

 

Usage of Shoggoth.exe:

 

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

    -v | --verbose                          启用Verbose输出

    -i | --input <Input Path>                要加密的Payload输入路径

    -o | --output <Output Path>            加密后的结果输出路径

    -s | --seed <Value>                    设置随机种子值

    -m | --mode <Mode Value>           设置Payload加密模式,支持raw、pe和coff

    --coff-arg <Argument>                 设置COSS加载器参数

    -k | --key <Encryption Key>             设置第一个加密密钥而不使用随机密钥

    --dont-do-first-encryption              不做第一次(流密码)加密

    --dont-do-second-encryption          不做第二次(分组密码)加密

项目地址

Shoggoth:【GitHub传送门

参考资料

https://www.blackhat.com/eu-22/arsenal/schedule/index.html#shoggoth-asmjit-based-polymorphic-encryptor-29588

https://asmjit.com/

https://github.com/codewhitesec/HandleKatz

https://github.com/frkngksl/Shoggoth/tree/main/COFFLoader

https://github.com/frkngksl/Shoggoth/tree/main/PELoader

https://github.com/frkngksl/Shoggoth/tree/main/stub

https://www.nayuki.io/page/rc4-cipher-in-x86-assembly

https://github.com/EgeBalci/sgn

# 加密算法 # 加密 # 数据加密
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1023 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录