diff --git a/.github/docs/dllmain-exec.png b/.github/docs/dllmain-exec.png index a38ae60..d48abc2 100644 Binary files a/.github/docs/dllmain-exec.png and b/.github/docs/dllmain-exec.png differ diff --git a/.github/docs/userfunction-exec.png b/.github/docs/userfunction-exec.png index cadc0cc..5855524 100644 Binary files a/.github/docs/userfunction-exec.png and b/.github/docs/userfunction-exec.png differ diff --git a/Cargo.lock b/Cargo.lock index d06aee1..b2ddc98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,40 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "airborne-generator" -version = "0.1.0" -dependencies = [ - "airborne-utils", - "clap", - "rand", - "windows-sys", -] - -[[package]] -name = "airborne-injector" -version = "0.1.0" -dependencies = [ - "airborne-utils", - "lexopt", - "windows-sys", -] - -[[package]] -name = "airborne-payload" -version = "0.1.0" -dependencies = [ - "windows-sys", -] - -[[package]] -name = "airborne-reflective_loader" -version = "0.1.0" -dependencies = [ - "airborne-utils", - "windows-sys", -] - [[package]] name = "airborne-utils" version = "0.1.0" @@ -140,6 +106,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "generator" +version = "0.1.0" +dependencies = [ + "airborne-utils", + "clap", + "rand", + "windows-sys", +] + [[package]] name = "getrandom" version = "0.2.12" @@ -169,6 +145,22 @@ version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +[[package]] +name = "poc-injector" +version = "0.1.0" +dependencies = [ + "airborne-utils", + "lexopt", + "windows-sys", +] + +[[package]] +name = "poc-payload" +version = "0.1.0" +dependencies = [ + "windows-sys", +] + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -223,6 +215,14 @@ dependencies = [ "getrandom", ] +[[package]] +name = "reflective-loader" +version = "0.1.0" +dependencies = [ + "airborne-utils", + "windows-sys", +] + [[package]] name = "strsim" version = "0.10.0" diff --git a/README.md b/README.md index cab2dcd..a7e1a2f 100644 --- a/README.md +++ b/README.md @@ -33,30 +33,31 @@ $ cargo build --release 1. Generate shellcode containing the loader and the payload: ``` -Usage: airborne-generator.exe [OPTIONS] --loader --payload --function --parameter --output +Usage: generator.exe [OPTIONS] --loader --payload --function --parameter --output Options: --l, --loader Path to the sRDI loader DLL --p, --payload Path to the payload DLL --f, --function Name of the function to call in the payload DLL --n, --parameter Parameter to pass to the function --o, --output Path to the output file --f, --flag Flag to pass to the loader (by default DllMain is called) [default: 0] --h, --help Print help --V, --version Print version + -l, --loader Path to the sRDI loader DLL + -p, --payload Path to the payload DLL + -f, --function Name of the function to call in the payload DLL + -n, --parameter Parameter to pass to the function + -o, --output Path to the output file + -f, --flag Flag to pass to the loader (by default DllMain is called) [default: 0] + -h, --help Print help + -V, --version Print version ``` 2. Inject the created shellcode into target: ``` -Usage: airborne-injector.exe -p -s -k +Usage: poc-injector.exe -p -s -k ``` -3. Depending on the flag passed to the generator, either payload's `DllMain` or user defined function will run: +3. Depending on the flag passed to the generator, either payload's `DllMain` with `DLL_PROCESS_ATTACH` or user defined function will run: -![Payload's DllMain execution with the default flag (0)](/.github/docs/dllmain-exec.png) - -![Payload's user defined function execution with the modified flag (1)](/.github/docs/userfunction-exec.png) +
+ Payload's DllMain execution with the default flag (0) + Payload's user defined function execution with the modified flag (1) +
### Disclaimer diff --git a/generator/Cargo.toml b/generator/Cargo.toml index ccfe086..851250b 100644 --- a/generator/Cargo.toml +++ b/generator/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "airborne-generator" +name = "generator" version = "0.1.0" edition = "2021" diff --git a/injector/Cargo.toml b/injector/Cargo.toml index 525b219..906f32c 100644 --- a/injector/Cargo.toml +++ b/injector/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "airborne-injector" +name = "poc-injector" version = "0.1.0" edition = "2021" diff --git a/injector/src/main.rs b/injector/src/main.rs index 1b0712b..b8b4e7c 100644 --- a/injector/src/main.rs +++ b/injector/src/main.rs @@ -85,7 +85,5 @@ fn parse_args() -> Args { } fn print_usage() { - println!( - "Usage: airborne-injector.exe -p -s -k " - ); + println!("Usage: poc-injector.exe -p -s -k "); } diff --git a/payload/Cargo.toml b/payload/Cargo.toml index 260ee28..d5c518d 100644 --- a/payload/Cargo.toml +++ b/payload/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "airborne-payload" +name = "poc-payload" version = "0.1.0" edition = "2021" diff --git a/reflective_loader/Cargo.toml b/reflective_loader/Cargo.toml index fbfff3c..ed4efb5 100644 --- a/reflective_loader/Cargo.toml +++ b/reflective_loader/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "airborne-reflective_loader" +name = "reflective-loader" version = "0.1.0" edition = "2021"