diff --git a/.gitignore b/.gitignore index c19feef..0668415 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,6 @@ Cargo.lock *.log *.spec build/ -__pycache__/ \ No newline at end of file +__MACOSX/ +__pycache__/ +.DS_Store \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 249bbdb..c68e074 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "catherine" -description = "Catherine is a blue team security framework with an extensible module collection, various types of cryptographic processes, hexadecimal dumping and aggregation, malicious domain detection, and real-time database analysis." -version = "0.4.1" +description = "The Catherine Framework is a general-purpose cybersecurity framework built to aggregate, validate, decode, decrypt, and maintain data." +version = "0.5.0" authors = ["azazelm3dj3d"] license = "BSD-2-Clause" categories = ["cryptography", "command-line-utilities", "encoding"] @@ -9,16 +9,24 @@ keywords = ["cybersecurity", "blueteam", "framework", "security", "defense"] edition = "2021" repository = "https://github.com/azazelm3dj3d/catherine" +[build-dependencies] +tauri-build = { version = "1.2.1", features = [] } + [dependencies] -os_type = { git = "https://github.com/azazelm3dj3d/os_type", branch = "main", version = "2.6.1" } +os_type = "2.6.0" chrono = "0.4" colored = "2" serde = "1.0" serde_json = "1.0" libloading = "0.7" -prettytable-rs = "0.9.0" -mercy = "1.2.17" +prettytable-rs = "0.10.0" +mercy = "1.2.22" rand = "0.7.2" +tauri = { version = "1.2.4", features = [] } [target.'cfg(target_os = "windows")'.dependencies] -ipconfig = "0.3.0" \ No newline at end of file +ipconfig = "0.3.0" + +[features] +default = [ "custom-protocol" ] +custom-protocol = [ "tauri/custom-protocol" ] \ No newline at end of file diff --git a/README.md b/README.md index dac4a19..cbfbc3e 100644 --- a/README.md +++ b/README.md @@ -6,37 +6,59 @@ Catherine - +The Catherine Framework is a general-purpose cybersecurity framework built to aggregate, validate, decode, decrypt, and maintain data. Catherine currently collects information from dumping hexadecimal content from files, validates malicious domains & IP addresses, attempts to crack unknown hashes, handles real-time database analysis, various types of decoding, and much more. Thanks to Catherine being built in an easily packaged executable, you can quickly download the tool by running `cargo install catherine` via the `Cargo` ecosystem. Catherine can also be quickly compiled by pulling down the source code from `git` and simply running `cargo build`. -Catherine is a blue team security framework with an extensible module collection, various types of cryptographic processes, hexadecimal dumping and aggregation, malicious domain detection, and real-time database analysis. Catherine is as simple as installing via Cargo or using `git` to pull down the source code and immediately start using the framework with `cargo run`. The modules for Catherine can be installed by using the `catherine_install` script or running the `install` command within the Catherine prompt. This requires sudo privileges. +Catherine provides a Command Line Interface (CLI) and Graphical User Interface (GUI) built into the executable. This means whether you install from source or `Cargo`, you can choose your method of use. -One thing to note before installing, while Catherine should work on most operating systems, the modules are only built for Linux-based distributions. +## Installation + +You can easily install via the `Cargo` CLI: -### Installation -Install via Cargo (without modules): ```bash cargo install catherine ``` -Install via Cargo (with modules): +If you'd prefer to install from source, you can also do this fairly easily, but it will still require the `Cargo` CLI. + +First, clone the repository using `git`: + ```bash -curl https://raw.githubusercontent.com/azazelm3dj3d/catherine/main/catherine_install > catherine_install && chmod +x catherine_install +git clone https://github.com/azazelm3dj3d/catherine.git ``` + +Once you've cloned the repository and you're in the correct directory, simply run the following command: + ```bash -./catherine_install +cargo build ``` -### Uninstall -If you need to uninstall Catherine on your system for any reason or would like to remove the external modules, you can do so with these commands: +Now you'll have a local debug build available for testing under `target/debug/catherine`. + +Catherine also offers custom modules for Linux operating systems. You can access these modules by installing Catherine via the `catherine_install` script. + +You can review the script [here](https://github.com/azazelm3dj3d/catherine/blob/main/catherine_install). -Remove Catherine: ```bash -cargo uninstall catherine +# The script requires sudo privileges to build a directory under `/opt/catherine/` +sudo ./catherine_install ``` -Remove all Catherine files: +NOTE: I am working on converting all external [modules](https://github.com/azazelm3dj3d/catherine-modules) (Python, C, Go) into native modules (Rust) to offer everything in a built-in executable via `Cargo` without any extra steps, but for now, I've made sure to keep them accessible (excluding the GUI) for extended functionality. + +## Usage + +If you've already installed the application from `Cargo`, all you have to do now is run the following command to initialize the Catherine shell: + ```bash -rm -r /opt/catherine +catherine ``` +If a GUI is more your style, there is a simple version available with the majority of the available CLI commands. All you have to do to launch the interface is initialize the Catherine shell and run the following command within the shell: + +```bash +🦀 Catherine [v0.x.x] (None) ☀️ 〉launch +``` + +NOTE: I am still working on making the GUI a little nicer looking, but a basic version is currently available for testing. + If a bug or issue is found, please report it [here](https://github.com/azazelm3dj3d/catherine/issues). \ No newline at end of file diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..3b92901 --- /dev/null +++ b/build.rs @@ -0,0 +1,9 @@ +/* + Project: Catherine Framework (https://github.com/azazelm3dj3d/catherine) + Author: azazelm3dj3d (https://github.com/azazelm3dj3d) + License: BSD 2-Clause +*/ + +fn main() { + tauri_build::build() +} \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..823a879 --- /dev/null +++ b/public/index.html @@ -0,0 +1,289 @@ + + + + + +
+ + + +