Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
adaptix-serverless-c2 — إضافة نقل C2 بدون خادم لـ AdaptixC2 v1.2 باستخدام AWS Lambda + DynamoDB كبنية تحتية للترحيل. | Kitploit
أدوات/GitHubGitHub/stillbigjosh/adaptix-serverless-c2
أمن البنية التحتية السحابيةأطر اختبار الاختراقأطر الاستغلالآليات الاستمراريةالبرمجة النصية والأتمتةأمن الخوادمما بعد الاستغلالأمن السحابة
القيادة والسيطرة
الفريق الأحمر
تطوير الحمولات
GitHubstillbigjosh/adaptix-serverless-c2

adaptix-serverless-c2

إضافة نقل C2 بدون خادم لـ AdaptixC2 v1.2 باستخدام AWS Lambda + DynamoDB كبنية تحتية للترحيل.

عرض المستودع
19310منذ 6 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Adaptix Serverless C2

Severless C2 topology

إضافة نقل Serverless C2 لـ AdaptixC2 v1.2 باستخدام AWS Lambda + DynamoDB كبنية تحتية للترحيل. تظهر حركة المرور الخاصة بالوكيل كـ HTTPS صادر إلى نقاط نهاية AWS، دون الحاجة إلى منافذ واردة أو عناوين IP عامة على خادم C2.

البنية المعمارية

Kharon Agent (target)
    |
    | HTTPS GET/POST (outbound only, randomly alternated)
    v
AWS Lambda Function URL (stateless relay)
    |
    | Store inbound / Poll outbound (up to 8s)
    v
DynamoDB (inbound + outbound tables)
    ^
    | Poll every 5 seconds
    |
Listener Plugin (inside AdaptixC2)
    |
    | TsAgent API + TsExtenderData (key persistence)
    v
AdaptixC2 Teamserver + UI

تدفق البيانات:

  1. يرسل وكيل Kharon تسجيل دخول مشفر عبر HTTPS إلى Lambda Function URL
  2. يخزّن Lambda البيانات الخام في جدول inbound في DynamoDB
  3. يستعلم Lambda من جدول outbound لمدة تصل إلى 8 ثوانٍ (يسد الفجوة غير المتزامنة للتسجيل)
  4. إذا وُجد رد، يعيده Lambda ويضع علامة على أنه تم تسليمه
  5. تستعلم إضافة المستمع في AdaptixC2 من جدول inbound في DynamoDB بحثًا عن السجلات غير المعالجة
  6. يحلل المستمع بروتوكول Kharon السلكي (مشفر بـ LokyCrypt)، ويسجل/يحدّث الوكيل
  7. عندما يصدر المشغل أوامر، يشفرها المستمع بصيغة Kharon ويخزّنها في outbound
  8. عند تسجيل الدخول التالي، يعيد Lambda الرد إلى الوكيل

المكونات

المكوّنالمسارالغرض
وكيل Kharonagent/غرسة Kharon المضمّنة (كود مصدري C++)
Terraformdeploy/aws/بنية Lambda + DynamoDB + IAM + KMS التحتية
مرحّل Lambdadeploy/aws/lambda/وسيط HTTP-to-DynamoDB عديم الحالة مع استعلام صادر
إضافة المستمعlistener/إضافة AdaptixC2، استعلام DynamoDB، جسر بروتوكول Kharon
إعدادات Kharonkharon/تسجيل أوامر AXS والإعداد لموصّلات الوكيل/المستمع
التصحيحاتpatches/تصحيحات كود AdaptixC2 المصدري لدعم BeaconServerless
الملفات الشخصيةprofiles/ملف HTTP قابل للتشكيل لعنوان Lambda URL
السكربتاتscripts/التثبيت، البناء، النشر، إلغاء التثبيت

المتطلبات الأساسية

  • حساب AWS مع بيانات اعتماد مُهيأة (aws configure)
  • Terraform >= 1.5.0
  • Go >= 1.23 (تتطلب إضافة المستمع تطابق GOEXPERIMENT مع ثنائي الخادم)
  • AdaptixC2 v1.2 مثبّت
  • clang++ مع أهداف mingw: apt install clang lld
  • مُجمّع NASM: apt install nasm
  • objcopy: apt install binutils-mingw-w64-x86-64

إعداد حساب AWS

1. إنشاء مستخدم IAM للنشر

في وحدة تحكم AWS:

  1. انتقل إلى IAM > Users > Create user
  2. سمّه adaptix-deployer
  3. اختر Attach policies directly
  4. أرفق سياسات AWS المُدارة التالية:
    • AmazonDynamoDBFullAccess
    • AWSLambda_FullAccess
    • IAMFullAccess
    • CloudWatchLogsFullAccess
  5. أضف سياسة مضمّنة لـ KMS:
    • انقر Add permissions > Create inline policy > JSON
    • الصق: {"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"kms:*","Resource":"*"}]}
    • سمّها KMSFullAccess
  6. أنشئ المستخدم، ثم انتقل إلى Security credentials > Create access key
  7. اختر Command Line Interface (CLI)
  8. احفظ Access Key ID و Secret Access Key

2. تهيئة AWS CLI

aws configure
# AWS Access Key ID: <paste access key>
# AWS Secret Access Key: <paste secret key>
# Default region: us-east-1
# Default output format: json

تحقق:

aws sts get-caller-identity

التثبيت

الخطوة 1: نشر بنية AWS التحتية

# Build the Lambda relay binary (cross-compiled for Amazon Linux)
./scripts/build_relay.sh

# Deploy Lambda + DynamoDB + IAM with Terraform
./scripts/deploy_infra.sh

# Note the Lambda Function URL from the output, e.g.:
# lambda_function_url = "https://xxxxx.lambda-url.us-east-1.on.aws"

الخطوة 2: تثبيت الإضافة في AdaptixC2

./scripts/install.sh /path/to/AdaptixC2

سيقوم هذا السكربت بما يلي:

  1. عمل نسخة احتياطية من دليل dist/ (الشهادات، قاعدة البيانات، الملف الشخصي)
  2. تطبيق تصحيحات الكود المصدري لدعم موصل BeaconServerless
  3. اكتشاف أعلام GOEXPERIMENT من ثنائي الخادم
  4. بناء إضافة المستمع (.so) بأعلام مطابقة
  5. إعادة بناء خادم AdaptixC2 والموصّلات
  6. استعادة الملفات الاحتياطية (الشهادات، قاعدة البيانات، الملف الشخصي)
  7. تثبيت إضافة المستمع Serverless + إعدادات موصّل Kharon
  8. إنشاء/تحديث خدمة systemd
  9. إعادة تشغيل AdaptixC2

الخطوة 3: تهيئة المستمع في واجهة المستخدم الرسومية

  1. سجّل الدخول إلى واجهة AdaptixC2 على الويب
  2. انتقل إلى Listeners وأنشئ مستمع BeaconServerless جديد
  3. اضبط Lambda URL على Function URL من الخطوة 1
  4. اضبط Relay API Key (يجب أن يطابق relay_api_key في ملف terraform.tfvars)
  5. اضبط اختياريًا: AWS Region، Poll Interval (افتراضي 5 ثوانٍ)، TTL Hours (افتراضي 24)
  6. ارفع الملف الشخصي القابل للتشكيل من profiles/lambda_default.json
  7. ابدأ المستمع

الخطوة 4: توليد الحمولة وتنفيذها

  1. في واجهة المستخدم الرسومية، ولّد وكيل Kharon باختيار مستمع BeaconServerless
  2. اختر الصيغة (Exe، Dll، Svc) والبنية (x64)
  3. نفّذ الحمولة على الهدف
  4. يجب أن يسجّل الوكيل دخوله خلال ثوانٍ

الإعدادات

متغيرات Terraform (deploy/aws/terraform.tfvars)

region        = "us-east-1"
function_name = "adaptix-relay"
relay_api_key = "your-secret-key-here"
tags = {
  Project = "adaptix-serverless"
}

إعدادات المستمع (واجهة AdaptixC2 الرسومية)

الحقلالوصفالافتراضي
AWS Regionالمنطقة التي تُنشر فيها البنية التحتيةus-east-1
Lambda URLFunction URL من مخرجات Terraform(مطلوب)
Relay API Keyيجب أن يطابق relay_api_key في Terraform(اختياري)
Inbound Tableجدول DynamoDB لتسجيلات دخول الوكيلadaptix-inbound
Outbound Tableجدول DynamoDB لردود الخادمadaptix-outbound
Poll Intervalعدد مرات الاستعلام من DynamoDB (بالثواني)5
TTL Hoursانتهاء صلاحية سجلات DynamoDB24

تفاصيل تقنية رئيسية

بروتوكول Kharon السلكي

يستخدم وكيل Kharon بروتوكولًا ثنائيًا مخصصًا عبر HTTP:

  • وكيل جديد (تسجيل): [36-byte UUID][encrypted_checkin_data][16-byte LokyCrypt key]
  • وكيل متصل (GetTask): [36-byte UUID][encrypted_payload] (بدون مفتاح لاحق)
  • وكيل غير متصل (دوس المفتاح): عندما تكون الحمولة صغيرة، يتداخل المفتاح المكوّن من 16 بايت عند TotalLen-16 مع منطقة UUID. بالنسبة لحزمة من 44 بايت، يبدأ المفتاح عند الإزاحة 28، داسًا بايتات UUID من 28 إلى 35 وكل البيانات المشفرة.

يكتشف المستمع الصيغ الثلاث ويتعامل معها بشكل صحيح.

حلقة الاستعلام الصادر في Lambda

تعني الطبيعة غير المتزامنة لـ Lambda + DynamoDB أن المستمع لم يعالج سجل الوارد عندما يتحقق Lambda أولاً من وجود رد. يستعلم Lambda من جدول الصادر لمدة تصل إلى 8 ثوانٍ بعد تخزين سجل وارد، مما يمنح المستمع وقتًا لمعالجة الرد ووضعه في قائمة الانتظار. هذا أمر بالغ الأهمية للتسجيل (يجب أن يصل رد Checkin خلال مرحلة Checkin، وليس في GetTask لاحق).

استمرارية المفاتيح

تُحفظ مفاتيح تشفير الوكيل عبر TsExtenderDataSave/TsExtenderDataLoad (مدعومة بـ SQLite). هذا يضمن البقاء بعد إعادة تشغيل الخدمة. عند إعادة التشغيل، يستعيد المستمع المفاتيح من المخزن الدائم عندما يواجه معرّف وكيل معروف.

معالجة GET/POST

يتبادل Kharon بشكل عشوائي بين طلبات GET و POST (HTTP_METHOD_USE_BOTH). تضع طلبات GET البيانات في معامل الاستعلام id (مشفرة بـ base64 وفقًا للملف الشخصي). تضع طلبات POST بيانات ثنائية خام في جسم HTTP. يتعامل Lambda مع كليهما بشفافية.

OPSEC

  • كل حركة مرور الوكيل هي HTTPS صادر إلى نقاط نهاية *.lambda-url.*.on.aws
  • لا حاجة لمنافذ واردة على خادم C2
  • تنتهي صلاحية سجلات DynamoDB تلقائيًا عبر TTL
  • سجلات CloudWatch مشفرة بـ KMS مع احتفاظ لمدة 3 أيام
  • يصادق مرحّل Lambda عبر ترويسة مفتاح API
  • فكّر في استخدام نطاق مخصص مع CloudFront لتضليل النطاق
  • تضيف حلقة الاستعلام في Lambda زمن استجابة من 0 إلى 8 ثوانٍ

إلغاء التثبيت

# Remove plugin from AdaptixC2
./scripts/uninstall.sh /path/to/AdaptixC2

# Destroy AWS infrastructure
cd deploy/aws && terraform destroy
تنزيل الأداة