探索未知,揭秘Acheron——一个安全研究的利器

探索未知,揭秘Acheron——一个安全研究的利器

acheronindirect syscalls for AV/EDR evasion in Go assembly项目地址:https://gitcode.com/gh_mirrors/ac/acheron

Acheron Banner

Acheron是一个灵感来源于SysWhisper3、FreshyCalls和RecycledGate的开源库,它以Go汇编语言为主导,致力于在Go语言环境中实现间接系统调用的能力,帮助开发者绕过依赖检测系统,如杀毒软件或行为监控工具。

项目简介

Acheron的核心功能是提供一种方式,在Golang代码中创建间接系统调用,以便进行更隐蔽的操作。这个库不依赖任何外部组件,所有的关键部分都是由纯Go和Go汇编语言实现的。特别地,它还支持自定义字符串加密和哈希算法,增加了对抗静态分析的难度。

技术解析

当创建新的系统调用代理实例时,Acheron执行以下步骤:

  1. 遍历PEB(进程环境块)获取内存中的ntdll.dll基地址。
  2. 解析导出目录,找到每个导出函数的地址。
  3. 计算每个Zw*函数对应的系统服务号。
  4. 在ntdll.dll中枚举未被挂钩的“syscall;ret”片段作为跳板。
  5. 创建代理实例,用于间接或直接调用系统调用。

应用场景

Acheron适用于各种安全研究与逆向工程场景,包括但不限于:

  • 进程注入
  • 系统资源管理(例如,分配和释放内存)
  • 安全绕过技术(避免被用户模式钩子和内核级监控程序检测)

项目特点

  1. 无依赖性:完全独立,无需额外安装其他包。
  2. 纯Go和汇编实现:使用Go语言底层语法,提高效率和隐蔽性。
  3. 自定义加密/哈希:允许定制字符串处理策略,增强反静态分析能力。

快速上手

要集成Acheron到你的项目中,只需运行以下命令获取库:

go get -u github.com/f1zm0/acheron

之后,使用acheron.New()创建一个系统调用代理,并通过acheron.Syscall()来执行间接系统调用。

查看提供的示例代码,了解如何轻松地进行间接的NtAllocateVirtualMemory调用:

// ... 省略导入语句

func main() {
    var baseAddr uintptr
    hSelf := uintptr(0xffffffffffffffff)

    // 创建Acheron实例
    ach, err := acheron.New()
    if err != nil {
        panic(err)
    }

    // 间接调用NtAllocateVirtualMemory
    s1 := ach.HashString("NtAllocateVirtualMemory")
    retcode, err := ach.Syscall(
        s1, hSelf, uintptr(unsafe.Pointer(&baseAddr)),
       uintptr(unsafe.Pointer(nil)), 0x1000,
        windows.MEM_COMMIT|windows.MEM_RESERVE,
        windows.PAGE_EXECUTE_READWRITE,
    )
    if err != nil {
        panic(err)
    }
    fmt.Printf("分配了内存(状态:0x%x)\n", retcode)
}

示例代码

项目中提供了多个示例,展示如何使用Acheron:

  1. sc_inject:简单的进程注入PoC,支持直接和间接系统调用。
  2. process_snapshot:使用间接系统调用来捕获系统过程快照。
  3. custom_hashfunc:展示如何自定义编码/哈希函数。

贡献指南

如果你对项目有建议或想法,欢迎打开问题或提交拉取请求。当前正在寻找对32位支持、其他解决器类型等方面的贡献。

参考资料

项目引用了多项研究和技术,详情见项目README。

注意事项

本项目仅供教育用途,不得在未经授权的情况下对他人系统使用。开发人员不对因错误使用该库而造成的任何损害负责。

开源许可

该项目遵循MIT许可协议,具体条款见LICENSE文件。

Acheron,这个名字来源于希腊神话中的冥河,象征着将亡灵送入地狱的通道,寓意着项目可以帮助开发者深入系统的底层世界。

探索之旅已经开始,让我们一同驾驭Acheron,游走于技术的边缘,揭示系统之奥秘!

acheronindirect syscalls for AV/EDR evasion in Go assembly项目地址:https://gitcode.com/gh_mirrors/ac/acheron

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邬筱杉Lewis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值