工具介绍 SGN 是一种多态二进制编码器,用于攻击性安全目的,例如生成静态不可检测的二进制有效载荷。它使用加性反馈循环对给定的二进制指令进行编码,类似于 LSFR。[color=rgba(0, 0, 0, 0.9)] 该项目是原始 Shikata ga nai 在 golang 中的重新实现,并进行了许多改进。https://github.com/rapid7/metasploit-framework/blob/master/modules/encoders/x86/shikata_ga_nai.rb
怎么样?& 为什么? 对于攻击性安全社区来说,shikata ga nai 编码器的原始实现被认为是最好的 shellcode 编码器(直到现在)。但多年来,安全研究人员发现了静态检测编码器的几个缺陷(相关工作 FireEye 文章)。https://cloud.google.com/blog/topics/threat-intelligence/shikata-ga-nai-encoder-still-going-strong/该项目的主要动机是创建一个更好的编码器,将给定的二进制文件编码到与完全随机数据相同的程度,并且无法检测到解码器的存在。[color=rgba(0, 0, 0, 0.9)]在 keystone 汇编程序库的帮助下,实现了以下改进。
64位支持。Finally properly encoded x64 shellcodes !新的更小的解码器存根。LFSR key reduced to 1 byte具有伪随机模式的编码存根。Decoder stub is also encoded with a psudo random schema没有可见的循环条件Stub decodes itself WITHOUT using any loop conditions !!解码器存根混淆。Random garbage instruction generator added with keystone安全注册选项。Non of the registers are clobbered (optional preable, may reduce polimorphism)
工具使用 __ _ __ __ _ ___ / / (_) /_____ _/ /____ _ ___ ____ _ ___ ___ _(_) (_-</ _ \/ / '_/ _ `/ __/ _ `/ / _ `/ _ `/ / _ \/ _ `/ / /___/_//_/_/_/\_\\_,_/\__/\_,_/ \_, /\_,_/ /_//_/\_,_/_/ ========[Author:-Ege-Balcı-]====/___/=======v2.0.1========= ┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻ (ノ ゜Д゜)ノ ︵ 仕方がない
Usage: sgn
Flags: -h, --help Show context-sensitive help. -i, --input=STRING Input binary path -o, --out=STRING Encoded output binary name -a, --arch=64 Binary architecture (32/64) -c, --enc=1 Number of times to encode the binary (increases overall size) -M, --max=50 Maximum number of bytes for decoder obfuscation --plain Do not encode the decoder stub --ascii Generates a full ASCI printable payload (may take very long time to bruteforce) -S, --safe Preserve all register values (a.k.a. no clobber) --badchars=STRING Don't use specified bad characters given in hex format (\x00\x01\x02...) -v, --verbose Verbose mode --version
|