A simple C2 framework written in Rust.
This is basically learning project for me and my team, to learn Rust and how C2 frameworks work. It is in no way a finished project that's ready for a production environment.
Follow the official instructions to install Rust.
Mingw is needed to cross compile the windows payload. You can install it using your package manager.
sudo apt update
sudo apt install mingw-w64sudo pacman -S mingw-w64-gccsudo dnf install mingw32-gcc mingw64-gccYou also need to add windows cross compilation features to cargo to be able to cross compile the windows payload.
rustup target add x86_64-pc-windows-gnuTo build the entire project, you can use the following command:
cargo build --releaseThis builds all the binaries in the target/release folder.
To build a specific crate, you can use the following command for crates with the main.rs entry point:
cargo build --bin <crate_name> --releaseOr for crates with a lib.rs entry point:
cargo build --lib <crate_name> --release- Run the server
./rb_serverRuns the server on default port 6666. This can be customized later when we add config files.
- Run the client
./rb_clientThis will connect to the default server on localhost:6666. You can change the connection details with command line flags. Run ./rb_client --help for more details.
- Cleaner state management (and cleaner code in general).
- Implement actual commands to do stuff instead of just powershell commands.
- Nicer cli experience (tab completion, syntax highlighting, etc).
- A DB to save server state.
- Config file for server.
- Operator profiles and a command to generate them.
- Make server send the generated payload to the client (currently it just stays on the server).