scarlett-danger/GoSneak
GitHub: scarlett-danger/GoSneak
基于 Go 语言的高级 EDR 规避框架,通过间接系统调用和手动内存管理实现用户态 Hook 绕过与隐匿载荷执行。
Stars: 2 | Forks: 0
# 🐹 GoSneak:Go 语言高级规避脚本
**GoSneak** 是一个原生 Go 语言编写的攻击性安全(红队)脚本,用于用户态 Hook 规避和手动内存管理。它通过自定义 ASM 桩代码实现间接系统调用以绕过 EDR 遥测,并利用位于 Go 运行时垃圾回收器(GC)堆之外的、具有 RWX 权限转换的内存页。它弥补了 Go 语言高级并发和低级 Win32/NTAPI 交互之间的鸿沟。
## 🔬 技术规范
### 1. 用户态 Hook 规避(间接系统调用)
GoSneak 通过自定义 **AMD64 汇编桩代码**实现间接系统调用,从而绕过 EDR 遥测。通过跳转到 `ntdll.dll` 中合法的 `syscall` 指令,该框架确保调用堆栈源自受信任的模块,从而绕过内联 Hook。
### 2. 手动内存管理
利用 `unsafe` 包,GoSneak 绕过了 Go 的垃圾回收器(GC):
- **非托管分配**:直接与 `NtAllocateVirtualMemory` 交互以保留非分页池内存。
- **权限生命周期**:实现严格的 **RW -> RX**(读写 -> 只执行)转换,以最大限度地减少内存特征。
- **指针操作**:使用 `uintptr` 算术处理 payload 解混淆,避免触发内存复制签名。
### 3. 密码学管道
- **AES-256-GCM**:带身份验证的解密,确保 payload 完整性。
- **按位异或(Bitwise XOR)**:轻量级解混淆,用于破坏静态字符串分析。
## 🏗️ 执行流程
1. **初始化**:环境健全性检查与反调试触发器。
2. **解包**:在 Go 托管的缓冲区中进行 AES-256-GCM 解密 + XOR 解混淆。
3. **分配**:通过间接系统调用对非分页池内存进行手动分配。
4. **桥接**:使用 `unsafe.Pointer` 将数据从托管切片转移到非托管内核缓冲区。
5. **保护**:通过 `VirtualProtect` 将内存权限转换为 `PAGE_EXECUTE_READ`。
6. **触发**:通过 `EnumSystemLocalesA` 或类似的合法系统回调执行。
## 🛠️ 使用说明
1. **克隆此代码仓库**:
git clone https://github.com/scarlett-danger/GoSneak.git
2. **构建隐蔽二进制文件**:
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w -H=windowsgui" -o GoSneak.exe .
3. **在 Windows 目标上运行生成的二进制文件**
.\GoSneak.exe
## ⚖️ 法律免责声明与责任限制
**重要提示:继续操作前请仔细阅读。**
1. **仅供合法用途**:GoSneak 的开发和使用目的仅限于授权的网络安全研究、红队演练和教学。它**不**用于,也不应用于任何非法或恶意活动。不要做一只作恶的 Gopher。
2. **免责声明**:GoSneak 的作者**不**对因使用本软件而导致的任何滥用、损害或法律后果承担法律责任。下载、编译或运行此代码即表示您对您的行为承担全部责任。
3. **合规性**:用户有责任确保其对本框架的使用符合所有地方、州、国家及国际法律法规。未经授权访问计算机系统是犯罪行为。
4. **无担保**:本软件按“原样”提供,不提供任何形式的明示或暗示保证。
*带着 🖤 与对 `reflect.Safe` 适当的轻视开发而来*
标签:AES-256-GCM, AMD64 Assembly, Chrome扩展, DNS 反向解析, DOM解析, EDR绕过, EVTX分析, Go语言, Linux, NTAPI, Raspberry Pi, RWX, shellcode加载器, Win32 API, 中高交互蜜罐, 内存执行, 加密管道, 反射式注入, 反调试, 回调执行, 安全测试, 安全测试, 异或混淆, 快速连接, 恶意软件开发, 手动内存管理, 攻击性安全, 攻击性安全, 文件系统模拟, 日志审计, 权限切换, 汇编语言, 用户态Hook绕过, 程序破解, 红队基础设施, 网络安全, 逃离垃圾回收, 间接系统调用, 隐私保护, 高交互蜜罐