Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
acheron — استدعاءات النظام غير المباشرة لتجاوز برامج مكافحة الفيروسات وأنظمة كشف الاستجابة للنقاط الطرفية في لغة تجميع Go | Kitploit
أدوات/GitHubGitHub/f1zm0/acheron
شيل كودالفريق الأحمرتطوير الحمولات
GitHubf1zm0/acheron

acheron

استدعاءات النظام غير المباشرة لتجاوز برامج مكافحة الفيروسات وأنظمة كشف الاستجابة للنقاط الطرفية في لغة تجميع Go

عرض المستودع
39050منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

latest release version Go Reference Go Report Card project license Issues Twitter Follow

حول

أكيرون (Acheron) هي مكتبة مستوحاة من SysWhisper3/FreshyCalls/RecycledGate، مع تنفيذ معظم الوظائف في لغة تجميع Go.

يمكن استخدام حزمة acheron لإضافة قدرات استدعاءات النظام غير المباشرة (indirect syscall) إلى أدواتك في Golang، لتجاوز برامج مكافحة الفيروسات (AV) وأنظمة اكتشاف التهديدات (EDRs) التي تستخدم خطافات وضع المستخدم (usermode hooks) وعمليات الاسترجاع الخاصة بالأجهزة (instrumentation callbacks) instrumentation callbacks للكشف عن استدعاءات النظام الشاذة التي لا تعود إلى ntdll.dll عند انتقال الاستدعاء من النواة إلى مساحة المستخدم.

الميزات الرئيسية

  • لا تبعيات
  • تنفيذ بلغة Go النقية وتجميع Go
  • دعم دوال تشفير/تجزئة النصوص المخصصة لمواجهة التحليل الثابت

كيف يعمل

يتم تنفيذ الخطوات التالية عند إنشاء مثيل وكيل استدعاء نظام جديد:

  1. اجتياز PEB لاسترداد العنوان الأساسي لـ ntdll.dll في الذاكرة
  2. تحليل دليل الصادرات لاسترداد عنوان كل دالة مصدرة
  3. حساب رقم خدمة النظام لكل دالة Zw*
  4. تعداد أدوات syscall;ret النظيفة (غير المخطوفة) في ntdll.dll، لاستخدامها كمنصات انتقال (trampolines)
  5. إنشاء مثيل الوكيل، والذي يمكن استخدامه لإجراء استدعاءات نظام غير مباشرة (أو مباشرة)

بداية سريعة

دمج acheron في أدواتك الأمنية سهل للغاية. يمكنك تثبيت الحزمة باستخدام:

root@kitploit:~
go get -u github.com/f1zm0/acheron

ثم عليك فقط استدعاء acheron.New() لإنشاء مثيل وكيل استدعاء نظام واستخدام acheron.Syscall() لإجراء استدعاء نظام غير مباشر لواجهات برمجة التطبيقات Nt*.

مثال بسيط:

root@kitploit:~
package main

import (
    "fmt"
    "unsafe"

    "github.com/f1zm0/acheron"
)

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

    // إنشاء مثيل Acheron، حل أرقام خدمة النظام (SSNs)، جمع القفزات النظيفة في ntdll.dll، إلخ.
    ach, err := acheron.New()
    if err != nil {
        panic(err)
    }

    // استدعاء نظام غير مباشر لـ NtAllocateVirtualMemory
    s1 := ach.HashString("NtAllocateVirtualMemory")
    if retcode, err := ach.Syscall(
        s1,                                     // تجزئة اسم الدالة
        hSelf,                                  // arg1: _In_     HANDLE ProcessHandle,
        uintptr(unsafe.Pointer(&baseAddr)),     // arg2: _Inout_  PVOID *BaseAddress,
        uintptr(unsafe.Pointer(nil)),           // arg3: _In_     ULONG_PTR ZeroBits,
        0x1000,                                 // arg4: _Inout_  PSIZE_T RegionSize,
        windows.MEM_COMMIT|windows.MEM_RESERVE, // arg5: _In_     ULONG AllocationType,
        windows.PAGE_EXECUTE_READWRITE,         // arg6: _In_     ULONG Protect
    ); err != nil {
        panic(err)
    }
    fmt.Printf(
        "تم تخصيص الذاكرة باستخدام NtAllocateVirtualMemory (الحالة: 0x%x)\n",
        retcode,
    )

    // ...
}

أمثلة

تم تضمين الأمثلة التالية في المستودع:

مثالالوصف
sc_injectإثبات قدرة حقن عملية بسيط للغاية، مع دعم كل من استدعاءات النظام المباشرة وغير المباشرة
process_snapshot

مشاريع أخرى تستخدم acheron:

  • hades

المساهمة

المساهمات مرحب بها! فيما يلي بعض الأشياء التي سيكون من الجيد توفرها في المستقبل:

  • دعم بنية 32-bit
  • أنواع أخرى للمحلل (مثل HalosGate/TartarusGate)
  • المزيد من الأمثلة

إذا كانت لديك أي اقتراحات أو أفكار، فلا تتردد في فتح مشكلة (issue) أو طلب سحب (PR).

المراجع

  • Golang UK Conference 2016 - Michael Munday - Dropping Down Go Functions in Assembly
  • https://github.com/am0nsec/HellsGate
  • https://sektor7.net/#!res/2021/halosgate.md
  • https://github.com/trickster0/TartarusGate
  • https://github.com/klezVirus/SysWhispers3
  • https://github.com/crummie5/FreshyCalls
  • https://github.com/boku7/AsmHalosGate
  • https://github.com/thefLink/RecycledGate
  • https://github.com/C-Sto/BananaPhone
  • https://winternl.com/detecting-manual-syscalls-from-user-mode/
  • https://www.usenix.org/legacy/events/vee06/full_papers/p154-bhansali.pdf
  • https://redops.at/en/blog/direct-syscalls-a-journey-from-high-to-low

ملاحظات إضافية

الاسم هو إشارة إلى نهر أكيرون في الأساطير اليونانية، وهو النهر الذي تُنقل فيه أرواح الموتى إلى العالم السفلي.

ملاحظة
يستخدم هذا المشروع التحكم الدلالي في الإصدارات. يجب ألا تكسر الإصدارات الثانوية والتصحيحية التوافق مع الإصدارات السابقة. سيتم استخدام الإصدارات الرئيسية فقط للتغييرات الكبيرة التي تكسر التوافق مع الإصدارات السابقة.

تحذير
تم إنشاء هذا المشروع لأغراض تعليمية فقط. لا تستخدمه على أنظمة لا تملكها. مطور هذا المشروع غير مسؤول عن أي ضرر ناتج عن الاستخدام غير السليم للمكتبة.

الترخيص

هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.

تنزيل الأداة
استخدام استدعاءات النظام غير المباشرة لأخذ لقطات للعمليات باستخدام استدعاءات النظام
custom_hashfuncمثال على دالة تشفير/تجزئة مخصصة يمكن استخدامها مع acheron