airborne/README.md

46 lines
1.6 KiB
Markdown
Raw Normal View History

# Shellcode reflective DLL injection in Rust
2024-01-02 22:05:29 +01:00
Reflective DLL injection demo for fun and education. In practical applications, there's significant scope for enhancing build sizes, obfuscation, and delivery logic.
2024-01-05 20:57:22 +01:00
[A blog post describing the technicalities of sRDI.](https://golfed.xyz/blog/understanding-srdi/)
### Project Structure
2024-01-04 19:00:24 +01:00
```shell
.
├── generator # Shellcode generator (ties together bootstrap, loader, payload, and user data)
├── injector # PoC injector
├── payload # PoC payload (DllMain and PrintMessage)
└── reflective_loader # sRDI implementation
2024-01-04 19:00:24 +01:00
```
2024-01-02 22:05:29 +01:00
### Features
- Compact filesize (~14 kB)
- Hashed import names & indirect function calls
- Randomized payload export iteration & IAT patching
- XOR encryption for shellcode (shellcode generation specific keys)
2024-01-02 22:05:29 +01:00
2024-01-03 20:02:20 +01:00
Check out [Alcatraz](https://github.com/weak1337/Alcatraz/) for additional obfuscation for the shellcode/injector.
2024-01-02 22:05:29 +01:00
2024-01-04 19:00:24 +01:00
### Usage
The following command compiles the DLLs and executables into `target`:
```shell
$ cargo build --release
```
1. Generate shellcode containing the loader and the payload
2. Inject the created shellcode into target
2024-01-04 19:00:24 +01:00
### Disclaimer
Information and code provided on this repository are for educational purposes only. The creator is in no way responsible for any direct or indirect damage caused due to the misuse of the information.
2024-01-02 22:05:29 +01:00
### Credits
- Stephen Fewer ([@stephenfewer](https://github.com/stephenfewer)) for reflective DLL injection
- Nick Landers ([@monoxgas](https://github.com/monoxgas)) for shellcode generator
- [@memN0ps](https://github.com/memN0ps) for bootstrap shellcode