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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
OffensiveRust — تسليح Rust لعمليات الفريق الأحمر. | Kitploit
أدوات/GitHubGitHub/trickster0/offensiverust
تصعيد الامتيازاتالاستغلالالتهرب من IDS/IPSالهندسة العكسيةشيل كودما بعد الاستغلالتحليل البرمجيات الخبيثةالقيادة والسيطرةالتعلم والتعليمالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
3.0k34344منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

OffensiveRust

تسليح Rust لعمليات الفريق الأحمر.

عرض المستودع

OffensiveRust

OffensiveRust

تجاربي في تسليح Rust لتطوير الغرسات (implant) والعمليات الهجومية العامة.

Table of Contents

  • OffensiveRust
    • Why Rust?
    • Examples in this repo
    • Compiling the examples
    • Compiling the examples in this repo
    • Cross Compiling
    • Optimizing executables for size
    • Pitfalls I found myself falling into
    • Interesting Rust Libraries
    • Opsec
    • Other projects I have have made in Rust
    • Projects in Rust that can be hepfull

لماذا Rust؟

  • إنها أسرع من لغات مثل C/C++
  • إنها لغة متعددة الأغراض، تتمتع بمجتمعات ممتازة
  • تمتلك أداة إدارة تبعيات بناء مدمجة رائعة تسمى Cargo
  • إنها مبنية على LLVM مما يجعلها مرشحاً جيداً لتجاوز اكتشاف برامج مكافحة الفيروسات الثابتة
  • سهولة جداً في الترجمة المتقاطعة إلى Windows من *nix/MacOS، فقط يتطلب تثبيت سلسلة أدوات mingw، رغم أن بعض المكتبات لا يمكن ترجمتها بنجاح على أنظمة تشغيل أخرى.

الأمثلة في هذا المستودع

ترجمة الأمثلة في هذا المستودع

هذا المستودع لا يوفر ملفات ثنائية، سيتوجب عليك ترجمتها بنفسك.

تثبيت Rust
ما عليك سوى تنزيل الملف الثنائي وتثبيته.

تم ترجمة هذا المستودع على نظام Windows 10 لذا أنصح بالالتزام به. كما ذكرنا، ملفات OpenSSL الثنائية ستعاني من مشاكل اعتماديات تتطلب تثبيت OpenSSL و perl. بالنسبة لخادم/عميل TCP SSL، أنصح بالبناء الثابت بسبب الاعتماديات على المضيفين الذين ستنفذ عليهم الملفات الثنائية. لإنشاء مشروع، قم بتنفيذ:
cargo new <name> سيقوم هذا بإنشاء مجلدات المشروع المنظمة تلقائياً مع:```bash
project ├── Cargo.toml └── src └── main.rs

root@kitploit:~
Cargo.toml هو الملف الذي يحتوي على التبعيات وإعدادات الترجمة.
main.rs هو الملف الرئيسي الذي سيتم ترجمته مع أي أدلة محتملة تحتوي على مكتبات.

لترجمة المشروع، انتقل إلى دليل المشروع ونفذ:  
`cargo build`

سيستخدم هذا سلسلة الأدوات الافتراضية الخاصة بك.
إذا كنت تريد بناء الإصدار النهائي "release"، نفذ:  
`cargo build --release`

للحصول على ملفات ثنائية ثابتة، في الطرفية قبل أمر البناء نفذ:  
`"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"`  
`set RUSTFLAGS=-C target-feature=+crt-static`

إذا وجدت صعوبة في قراءة الكود بالطريقة التي كُتب بها،
يمكنك أيضًا استخدام الأمر التالي داخل دليل المشروع لتنسيقه بشكل أفضل  
`cargo fmt`

قد لا تترجم بعض الأمثلة وتعطيك خطأ، لأنها قد تتطلب إصدارًا ليليًا (nightly) من Rust بأحدث الميزات. لتثبيته فقط نفذ:  
`rustup default nightly`



أسهل مكان للعثور على التبعيات أو [Crates](https://crates.io/) كما تُسمى.

## الترجمة المتقاطعة (Cross Compiling)

تتطلب الترجمة المتقاطعة اتباع التعليمات [هنا](https://rust-lang.github.io/rustup/cross-compilation.html)
بتثبيت سلاسل أدوات مختلفة، يمكنك الترجمة المتقاطعة باستخدام الأمر التالي  
`cargo build --target <toolchain>`  

لعرض سلاسل الأدوات المثبتة على نظامك نفذ:  
`rustup toolchain list`  

للتحقق من جميع سلاسل الأدوات المتاحة التي يمكنك تثبيتها على نظامك نفذ:  
`rustup target list`  

لتثبيت سلسلة أدوات جديدة نفذ:  
`rustup target add <toolchain_name>`  


## تحسين الملفات التنفيذية من حيث الحجم

يحتوي هذا [المستودع](https://github.com/johnthagen/min-sized-rust) على العديد من خيارات التكوين والأفكار حول تقليل حجم الملف.
عادةً ما تكون الملفات الثنائية الثابتة كبيرة جدًا.

## المزالق التي وقعت فيها بنفسي

انتبه إلى بايتات \0، لا تنساها للسلاسل في الذاكرة، قضيت الكثير من وقتي لكن windbg ساعدت دائمًا في حلها.


## مكتبات Rust المثيرة للاهتمام

- WINAPI  
- [WINAPI2](https://github.com/MauriceKayser/rs-winapi2)  
- Windows - هذه هي المكتبة الرسمية من Microsoft التي لم أتعامل معها كثيرًا

## OPSEC

- على الرغم من أن Rust يتمتع بمزايا جيدة، إلا أنه من الصعب جدًا التعود عليه وليس بديهيًا جدًا.  
- توليد شيل كود هو مشكلة أخرى بسبب LLVM. لقد وجدت عدة طرق للتعامل مع هذا.  
[Donut](https://github.com/TheWover/donut) أحيانًا يولد شيل كود يعمل ولكن اعتمادًا على كيفية بناء المشروع، قد لا يعمل.  
بشكل عام، لتوليد شيل كود، يجب تصميم الأدوات بحيث تستضيف كل الكود في مقطع .text،
مما يؤدي إلى هذا [المستودع](https://github.com/b1tg/rust-windows-shellcode) الرائع.
يوجد نموذج شيل كود في هذا المشروع يمكن أن يوضح لك كيفية تنظيم الكود الخاص بك لتوليد شيل كود ناجح.  
بالإضافة إلى ذلك، يحتوي هذا المشروع أيضًا على مولد شيل كود يستخرج مقطع .text من ملف ثنائي
ويقوم بإخراج الشيل كود بعد تنفيذ بعض التصحيحات.  
هذا المشروع يأخذ الملف الثنائي من موقع محدد لذا قمت بعمل fork يتلقى مسار الملف الثنائي كوسيطة [هنا](https://github.com/trickster0/rust-windows-shellcode-custom).  
- حتى لو قمت بإزالة جميع رموز التصحيح، لا يزال Rust يمكنه الاحتفاظ بمراجع لدليلك الرئيسي في الملف الثنائي. الطريقة الوحيدة التي وجدتها لإزالة ذلك هي تمرير العلم التالي: `--remap-path-prefix {دليلك الرئيسي}={معرف عشوائي ما}`. يمكنك استخدام متغيرات bash للحصول على دليلك الرئيسي وتوليد عنصر نائب عشوائي: `--remap-path-prefix "$HOME"="$RANDOM"`. (بواسطة [Yamakadi](https://github.com/yamakadi))
- على الرغم من وجود طريقة أخرى لإزالة معلومات حول الدليل الرئيسي عن طريق إضافة السطر التالي في أعلى Cargo.toml  
`cargo-features = ["strip"]` .  
نظرًا لأن Rust يترك افتراضيًا الكثير من الأشياء كسلاسل في الملف الثنائي، فأنا أستخدم في الغالب هذا [cargo.toml](../master/cargo.toml) لتجنبها وتقليل الحجم أيضًا  
مع أمر البناء   
`cargo build --release -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target x86_64-pc-windows-msvc`
- [Yamakadi] ، أشار أيضًا إلى أنه اعتمادًا على المكتبات المستوردة، فإن عملية strip ليست دائمًا متسقة في إخفاء الدليل الرئيسي، لذا فإن الجمع بين حله لإعادة تعيين المسار واستخدام cargo أعلاه سيكون الأفضل. حاول أن تكون على دراية وتفقد ملفاتك الثنائية قبل تنفيذها في مهامك للبحث عن سلاسل محتملة لم يتم strip بشكل صحيح.

## مشاريع أخرى قمت بها في Rust

- [UDPlant](https://github.com/trickster0/UDPlant) - ببساطة شيل عكسي UDP  
- [EDR Detector](https://github.com/trickster0/EDR_Detector) - يكتشف EDRs الخاصة بالنظام المثبت وفقًا لملفات .sys المثبتة  
- [Lenum](https://github.com/trickster0/Lenum) - أداة تعداد بسيطة لـ unix

## مشاريع في Rust قد تكون مفيدة

- [houdini](https://github.com/yamakadi/houdini) - يساعد في جعل ملفك التنفيذي يحذف نفسه
تنزيل الأداة
الملفالوصف
Allocate_With_Syscallsتستخدم دوال NTDLL مباشرة مع مكتبة ntapi
Create_DLLإنشاء DLL وإظهار صندوق رسائل، لا تدعم Rust هذا بشكل كامل لذا قد تصبح الأمور غريبة لأن DLL في Rust لا تحتوي على دالة رئيسية
DeviceIoControlفتح مؤشر للتعامل مع برنامج التشغيل وتنفيذ DeviceIoControl
EnableDebugPrivilegesتمكين SeDebugPrivilege في العملية الحالية
Shellcode_Local_injectتنفيذ الشيلكود مباشرة في العملية المحلية عن طريق مؤشر (pointer)
Execute_With_CMDتنفيذ cmd عن طريق تمرير أمر عبر Rust
ImportedFunctionCallاستيراد minidump من dbghelp وتنفيذه
Kernel_Driver_Exploitاستغلال برنامج تشغيل النواة لحالة تجاوز سعة المخزن المؤقت البسيطة
Named_Pipe_Clientعميل الأنبوب المسمى
Named_Pipe_Serverخادم الأنبوب المسمى
PEB_Walkحل واستدعاء واجهات برمجة تطبيقات Windows بشكل ديناميكي
Process_Injection_CreateThreadحقن العملية في عملية قيد التشغيل باستخدام CreateThread
Process_Injection_CreateRemoteThreadحقن العملية في عملية بعيدة باستخدام CreateRemoteThread
Process_Injection_Self_EnumSystemGeoIDحقن ذاتي يستخدم استدعاء API EnumSystemsGeoID لتشغيل الشيلكود.
Unhookingاستدعاءات إلغاء الخطاف (Unhooking)
asm_syscallالحصول على عنوان PEB عبر asm
base64_system_enumترميز/فك ترميز السلاسل باستخدام Base64
http-https-requestsطلبات HTTP/S بتجاهل فحص الشهادة لـ GET/POST
patch_etwتصحيح ETW
ppid_spoofتزييف العملية الأب للعملية المنشأة
tcp_ssl_clientعميل TCP مع SSL يتجاهل فحص الشهادة (يتطلب تثبيت openssl و perl للترجمة)
tcp_ssl_serverخادم TCP مع معلمة المنفذ (يتطلب تثبيت openssl و perl للترجمة)
wmi_executeتنفيذ استعلام WMI للحصول على برامج مكافحة الفيروسات/EDR في المضيف
Windows.h+ Bindingsيحتوي هذا الملف على هياكل Windows.h بالإضافة إلى LDR, PEB, إلخ. مخصصة كاملة غير موثقة رسمياً من مايكروسوفت، أضف في أعلى ملفك include!("../bindings.rs");
UUID_Shellcode_Executionزرع الشيلكود من مصفوفة UUID في مساحة الكومة واستخدام رد الاتصال EnumSystemLocalesA لتنفيذ الشيلكود.
AMSI Bypassتجاوز AMSI على العملية المحلية
Injection_AES_Loaderحقن NtTestAlert مع فك تشفير AES
Litcrypt_String_Encryptionاستخدام كريت Litcrypt لتشفير السلاسل النصية في السكون وفي الذاكرة لهزيمة برامج مكافحة الفيروسات الثابتة.
Api Hookingربط API باستخدام مكتبة detour
memfd_createتنفيذ الحمولات من الذاكرة باستخدام تقنية memfd_create (لنظام Linux)
RC4_Encryptionشيلكود مفكوك التشفير بـ RC4
Steal Tokenسرقة الرمز (Token) من العملية
Keyboard Hookingتسجيل ضربات المفاتيح عن طريق ربط لوحة المفاتيح بـ SetWindowsHookEx
memN0ps arsenal: shellcode_runner_classic-rsمشغل/حقن شيلكود كلاسيكي باستخدام ntapi
memN0ps arsenal: dll_injector_classic-rsحقن DLL كلاسيكي باستخدام windows-sys
memN0ps arsenal: module_stomping-rsدوس الوحدة / تحميل الوحدة / تفريغ DLL باستخدام windows-sys
memN0ps arsenal: obfuscate_shellcode-rsأداة تشويش شيلكود بسيطة بـ XOR و AES
memN0ps arsenal: process_hollowing-rsتفريغ العملية (Process Hollowing) باستخدام ntapi
memN0ps arsenal: rdi-rsحقن DLL الانعكاسي باستخدام windows-sys
memN0ps: eagle-rsروتكيت صدئ: برنامج تشغيل نواة Windows في Rust لفريق Red Team باستخدام winapi و ntapi
memN0ps: psyscalls-rsمكتبة استدعاءات النظام المتوازية الصدئة باستخدام winapi
memN0ps: mmapper-rsمخطط يدوي صدئ باستخدام winapi
memN0ps: srdi-rsحقن DLL الانعكاسي للشيلكود الصدئ باستخدام windows-sys
memN0ps: mordor-rs - freshycalls_syswhispersمكتبة Rusty FreshyCalls / SysWhispers1 / SysWhispers2 / SysWhispers3 باستخدام windows-sys
memN0ps: mordor-rs - hells_halos_tartarus_gateمكتبة Rusty Hell's Gate / Halo's Gate / Tartarus' Gate باستخدام windows-sys
memN0ps: pemadness-rsمكتبة تحليل الملفات القابلة للتنفيذ المحمولة الصدئة (مكتبة تحليل PE) باستخدام windows-sys
memN0ps: mimiRustMimikatz مصنوع في Rust بواسطة @ThottySploit. قام المؤلف الأصلي بحذف حسابه على GitHub، لذا تم رفعه لاستخدام المجتمع.
memN0ps and trickster0: ekko-rsEkko صدئ - تشويش السكون في Rust باستخدام windows-sys.