Skip to content

Commit

Permalink
github.com/kcarretto/realm -> realm.pub
Browse files Browse the repository at this point in the history
  • Loading branch information
KCarretto committed Jan 8, 2024
1 parent 7c6a829 commit c7c7ac8
Show file tree
Hide file tree
Showing 128 changed files with 420 additions and 426 deletions.
18 changes: 6 additions & 12 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
"NODE_VERSION": "lts/*"
}
},
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],

"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined"
],
// Set *default* container specific settings.json values on container create.
"customizations": {
"vscode": {
Expand All @@ -21,18 +24,14 @@
"go.useLanguageServer": true,
"go.gopath": "/go",
"go.goroot": "/usr/local/go",

// Formatting
"editor.formatOnSave": true,

"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,

// Misc
"git.autofetch": true
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"DavidAnson.vscode-markdownlint",
Expand All @@ -47,21 +46,16 @@
]
}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"appPort": [
"127.0.0.1:80:80"
],


// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "vscode"

// SPEEEEEEED on MacOS & Windows. Note that your local clone of realm will not be updated.
"workspaceMount": "source=realm,target=/workspaces/realm,type=volume",
"workspaceFolder": "/workspaces/realm",
"postCreateCommand": "cd /workspaces && git clone https://github.com/KCarretto/realm.git",

"postCreateCommand": "cd /workspaces && git clone https://realm.pub.git",
"mounts": [
"source=realm-bashhistory,target=/commandhistory,type=volume"
]
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

# Realm

![test-status](https://github.com/kcarretto/realm/actions/workflows/tests.yml/badge.svg?branch=main)
![test-status](https://realm.pub/actions/workflows/tests.yml/badge.svg?branch=main)
[![codecov](https://codecov.io/github/kcarretto/realm/branch/main/graph/badge.svg?token=KSRPHYDIE4)](https://app.codecov.io/github/kcarretto/realm)
[![Go Report Card](https://goreportcard.com/badge/github.com/kcarretto/realm)](https://goreportcard.com/report/github.com/kcarretto/realm)
[![Rust Report Card](https://rust-reportcard.xuri.me/badge/github.com/kcarretto/realm)](https://rust-reportcard.xuri.me/report/github.com/kcarretto/realm)
[![Go Report Card](https://goreportcard.com/badge/realm.pub)](https://goreportcard.com/report/realm.pub)
[![Rust Report Card](https://rust-reportcard.xuri.me/badge/realm.pub)](https://rust-reportcard.xuri.me/report/realm.pub)
[![Docs](https://img.shields.io/badge/read%20our-docs-informational)](https://docs.realm.pub/)

Realm is a cross platform Red Team engagement platform with a focus on automation and reliability.
Expand Down Expand Up @@ -48,7 +48,7 @@ Realm is a cross platform Red Team engagement platform with a focus on automatio
### Start the server

```bash
git clone https://github.com/KCarretto/realm.git
git clone https://realm.pub.git
cd realm
go run ./tavern

Expand All @@ -59,7 +59,7 @@ ENABLE_TEST_DATA=1 go run ./tavern
### Start the agent

```bash
git clone https://github.com/KCarretto/realm.git
git clone https://realm.pub.git
cd realm/implants/imix

# Create the config file
Expand Down
4 changes: 2 additions & 2 deletions bin/golem_cli_test/download_test.tome
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ def download_stuff_test():
print("Failure - OS not supported")
return -1

file.download("https://github.com/KCarretto/realm/releases/download/v0.0.1/imix-linux-x64",dest_path)
file.download("https://realm.pub/releases/download/v0.0.1/imix-linux-x64",dest_path)
print("OKAY!")
return 0

download_stuff_test()
download_stuff_test()
2 changes: 1 addition & 1 deletion docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ baseurl: "" # the subpath of your site, e.g. /blog
url: "https://docs.realm.pub" # the base hostname & protocol for your site

# Social (First three Required)
repo: "https://github.com/kcarretto/realm"
repo: "https://realm.pub"
github_user: "kcarretto"
github_repo: "realm"
github_branch: "main"
Expand Down
10 changes: 5 additions & 5 deletions docs/_docs/dev-guide/eldritch.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ sys.exec("C:/temp/payload.exe")
_Exceptions to the rule above exist if performing the activities requires the performance of rust._
_Eg. port scanning could be implemented using a for loop and `tcp_connect` however due to the performance demand of port scanning a direct implementation in rust makes more sense_

Want to contribute to Eldritch but aren't sure what to build check our ["good first issue" tickets.](https://github.com/KCarretto/realm/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
Want to contribute to Eldritch but aren't sure what to build check our ["good first issue" tickets.](https://realm.pub/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)

# Creating a function

Expand Down Expand Up @@ -177,7 +177,7 @@ Any methods added to the Eldritch Standard Library should have tests collocated
* Chunk out implementation code into discrete helper functions so each can be tested individually.

### Example PR for an Eldritch method.
Check out [this basic example of a PR](https://github.com/KCarretto/realm/pull/231) to see what they should look like.
Check out [this basic example of a PR](https://realm.pub/pull/231) to see what they should look like.
This PR implements the `sys.hostname` function into Eldritch and is a simple example of how to get started.

# OS Specific functions
Expand Down Expand Up @@ -257,7 +257,7 @@ mod tests {

## Example PR
Example of how to return a dictionary:
PR #[238](https://github.com/KCarretto/realm/pull/238/files) This PR implements the `sys.get_os` function which returns a dictionary of string types.
PR #[238](https://realm.pub/pull/238/files) This PR implements the `sys.get_os` function which returns a dictionary of string types.

# Notes about asynchronous Eldritch code
---
Expand Down Expand Up @@ -379,6 +379,6 @@ mod tests {
```

### Async PR example
An example of how async can be used in testing: [PR for the Eldritch `pivot.ncat` implementation](https://github.com/KCarretto/realm/pull/44/files).
An example of how async can be used in testing: [PR for the Eldritch `pivot.ncat` implementation](https://realm.pub/pull/44/files).

An example of testing async functions with multiple concurrent functions: [PR for the Eldritch `pivot.port_scan` implementation](https://github.com/KCarretto/realm/pull/45/files).
An example of testing async functions with multiple concurrent functions: [PR for the Eldritch `pivot.port_scan` implementation](https://realm.pub/pull/45/files).
48 changes: 24 additions & 24 deletions docs/_docs/dev-guide/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This section of the documentation is meant for new Realm-contributors, and shoul
### Documentation
Realm is under heavy active development and documentation can go stale quickly if it's not actively maintained. Please take a moment to familiarize yourself with both the **[Developer Documentation](/dev-guide)** you're reading now as well as the **[User-Facing Documentation](/user-guide)**. When submitting a code change, please include updates to the relevant portions of our documentation.

We will do our best during code review to catch changes that require documentation updates, but sometimes things will slip by. If you notice a discrepancy between our codebase and the documentation, please kindly [file an issue](https://github.com/kcarretto/realm/issues/new?labels=documentation&title=Documentation%20Discrepancy:&body=Please%20include%20the%20location%20of%20the%20inaccurate%20documentation%20and%20a%20helpful%20description%20of%20what%20needs%20improvement.) to track it or submit a PR to correct it. You can use the ["Edit this page"](https://github.com/kcarretto/realm/edit/main/docs/_docs/dev-guide/introduction.md) feature in the right navbar of the documentation to quickly navigate to the appropriate section of documentation that requires an update.
We will do our best during code review to catch changes that require documentation updates, but sometimes things will slip by. If you notice a discrepancy between our codebase and the documentation, please kindly [file an issue](https://realm.pub/issues/new?labels=documentation&title=Documentation%20Discrepancy:&body=Please%20include%20the%20location%20of%20the%20inaccurate%20documentation%20and%20a%20helpful%20description%20of%20what%20needs%20improvement.) to track it or submit a PR to correct it. You can use the ["Edit this page"](https://realm.pub/edit/main/docs/_docs/dev-guide/introduction.md) feature in the right navbar of the documentation to quickly navigate to the appropriate section of documentation that requires an update.

### Testing

Expand Down Expand Up @@ -42,7 +42,7 @@ All code changes to Tavern must be tested. Below are some standards for test wri
* Please use existing tests as a reference for writing new tests

##### Tavern Tests (Front End)
At the time of writing, the Tavern UI is still in an early stage, and therefore minimal testing exists for it. Once the UI is considered more stable, this documentation will be updated. If the Tavern UI is useable and this documentation still exists, please [file an issue](https://github.com/kcarretto/realm/issues/new?labels=documentation&title=Documentation%20Discrepancy:&body=Please%20include%20the%20location%20of%20the%20inaccurate%20documentation%20and%20a%20helpful%20description%20of%20what%20needs%20improvement.).
At the time of writing, the Tavern UI is still in an early stage, and therefore minimal testing exists for it. Once the UI is considered more stable, this documentation will be updated. If the Tavern UI is useable and this documentation still exists, please [file an issue](https://realm.pub/issues/new?labels=documentation&title=Documentation%20Discrepancy:&body=Please%20include%20the%20location%20of%20the%20inaccurate%20documentation%20and%20a%20helpful%20description%20of%20what%20needs%20improvement.).

### Linear History

Expand Down Expand Up @@ -71,29 +71,29 @@ A Task represents a set of instructions for an Agent to perform. For example, li
Eldritch is our Pythonic Domain Specific Language (DSL), which can be used to progammatically define red team operations. Many of the language's built-in features do not rely on system binaries. For more information, please see the [Eldritch section](/user-guide/eldritch) of the documentation.

### Tome
A Tome is a prebuilt Eldritch bundle, which provides execution instructions to a Beacon. Tomes can embed files and accept parameters to change their behaviour at runtime. Tavern's built-in Tomes are defined [here](https://github.com/KCarretto/realm/tree/main/tavern/tomes).
A Tome is a prebuilt Eldritch bundle, which provides execution instructions to a Beacon. Tomes can embed files and accept parameters to change their behaviour at runtime. Tavern's built-in Tomes are defined [here](https://realm.pub/tree/main/tavern/tomes).

# Project Structure
* **[.devcontainer](https://github.com/KCarretto/realm/tree/main/.devcontainer)** contains settings required for configuring a VSCode dev container that can be used for Realm development
* **[.github](https://github.com/KCarretto/realm/tree/main/.github)** contains GitHub related actions, issue templates, etc
* **[docker](https://github.com/KCarretto/realm/tree/main/docker)** docker containers for production builds
* **[docs](https://github.com/KCarretto/realm/tree/main/docs)** contains the Jekyll code for the documentation site that you're reading now!
* **[implants](https://github.com/KCarretto/realm/tree/main/implants)** is the parent folder of any implant executables or libraries
* **[implants/golem](https://github.com/KCarretto/realm/tree/main/implants/golem)** the stand-alone interpreter that implements the eldritch language (Rust)
* **[implants/golem/embed_files_golem_prod](https://github.com/KCarretto/realm/tree/main/implants/golem/embed_files_golem_prod)** Files and scripts that will be embedded into production builds of imix, golem, and eldritch. These files can be accessed through the [`assets` module.](https://docs.realm.pub/user-guide/eldritch#assets)
* **[implants/imix](https://github.com/KCarretto/realm/tree/main/implants/imix)** is our agent that executes eldritch tomes (Rust)
* **[implants/lib/eldritch](https://github.com/KCarretto/realm/tree/main/implants/lib/eldritch)** is the source of our eldritch library (Rust)
* **[implants/lib/tavern](https://github.com/KCarretto/realm/tree/main/implants/lib/tavern)** is the source of our agents graphql API to interface with Tavern (Rust)
* **[tavern](https://github.com/KCarretto/realm/tree/main/tavern)** is the parent folder of Tavern related code and packages, and stores the `main.go` executable for the service
* **[tavern/auth](https://github.com/KCarretto/realm/tree/main/tavern/auth)** is a package for managing authentication for Tavern, and is used by various packages that rely on obtaining viewer information
* **[tavern/internal/ent](https://github.com/KCarretto/realm/tree/main/tavern/internal/ent)** contains models and related code for interacting with the database (most of this is code generated by **[entgo](https://entgo.io/))**
* **[tavern/internal/ent/schema](https://github.com/KCarretto/realm/tree/main/tavern/internal/ent/schema)** contains the schema definitions for our DB models
* **[tavern/internal/graphql](https://github.com/KCarretto/realm/tree/main/tavern/internal/graphql)** contains our GraphQL definitions and resolvers (most of this code is generated by **[entgo](https://entgo.io/)** and **[gqlgen](https://github.com/99designs/gqlgen))**
* **[tavern/internal](https://github.com/KCarretto/realm/tree/main/tavern/internal)** contains various internal packages that makeup Tavern
* **[tavern/internal/www](https://github.com/KCarretto/realm/tree/main/tavern/internal/www)** contains Tavern's UI code
* **[terraform](https://github.com/KCarretto/realm/tree/main/terraform)** contains the Terraform used to deploy a production ready Realm instance. See [Tavern User Guide](https://docs.realm.pub/user-guide/tavern) to learn how to use.
* **[tests](https://github.com/KCarretto/realm/tree/main/tests)** miscellaneous files and example code used for testing. Generally won't be used but required for some niche situations like deadlocking cargo build.
* **[vscode](https://github.com/KCarretto/realm/tree/main/vscode)** contains our Eldritch VSCode integration source code **(Unmaintained)**
* **[.devcontainer](https://realm.pub/tree/main/.devcontainer)** contains settings required for configuring a VSCode dev container that can be used for Realm development
* **[.github](https://realm.pub/tree/main/.github)** contains GitHub related actions, issue templates, etc
* **[docker](https://realm.pub/tree/main/docker)** docker containers for production builds
* **[docs](https://realm.pub/tree/main/docs)** contains the Jekyll code for the documentation site that you're reading now!
* **[implants](https://realm.pub/tree/main/implants)** is the parent folder of any implant executables or libraries
* **[implants/golem](https://realm.pub/tree/main/implants/golem)** the stand-alone interpreter that implements the eldritch language (Rust)
* **[implants/golem/embed_files_golem_prod](https://realm.pub/tree/main/implants/golem/embed_files_golem_prod)** Files and scripts that will be embedded into production builds of imix, golem, and eldritch. These files can be accessed through the [`assets` module.](https://docs.realm.pub/user-guide/eldritch#assets)
* **[implants/imix](https://realm.pub/tree/main/implants/imix)** is our agent that executes eldritch tomes (Rust)
* **[implants/lib/eldritch](https://realm.pub/tree/main/implants/lib/eldritch)** is the source of our eldritch library (Rust)
* **[implants/lib/tavern](https://realm.pub/tree/main/implants/lib/tavern)** is the source of our agents graphql API to interface with Tavern (Rust)
* **[tavern](https://realm.pub/tree/main/tavern)** is the parent folder of Tavern related code and packages, and stores the `main.go` executable for the service
* **[tavern/auth](https://realm.pub/tree/main/tavern/auth)** is a package for managing authentication for Tavern, and is used by various packages that rely on obtaining viewer information
* **[tavern/internal/ent](https://realm.pub/tree/main/tavern/internal/ent)** contains models and related code for interacting with the database (most of this is code generated by **[entgo](https://entgo.io/))**
* **[tavern/internal/ent/schema](https://realm.pub/tree/main/tavern/internal/ent/schema)** contains the schema definitions for our DB models
* **[tavern/internal/graphql](https://realm.pub/tree/main/tavern/internal/graphql)** contains our GraphQL definitions and resolvers (most of this code is generated by **[entgo](https://entgo.io/)** and **[gqlgen](https://github.com/99designs/gqlgen))**
* **[tavern/internal](https://realm.pub/tree/main/tavern/internal)** contains various internal packages that makeup Tavern
* **[tavern/internal/www](https://realm.pub/tree/main/tavern/internal/www)** contains Tavern's UI code
* **[terraform](https://realm.pub/tree/main/terraform)** contains the Terraform used to deploy a production ready Realm instance. See [Tavern User Guide](https://docs.realm.pub/user-guide/tavern) to learn how to use.
* **[tests](https://realm.pub/tree/main/tests)** miscellaneous files and example code used for testing. Generally won't be used but required for some niche situations like deadlocking cargo build.
* **[vscode](https://realm.pub/tree/main/vscode)** contains our Eldritch VSCode integration source code **(Unmaintained)**

# Where to Start?
If you'd like to make a contribution to Realm but aren't sure where to start or what features could use help, please consult our [Good First Issues](https://github.com/KCarretto/realm/labels/good%20first%20issue) for some starting ideas.
If you'd like to make a contribution to Realm but aren't sure where to start or what features could use help, please consult our [Good First Issues](https://realm.pub/labels/good%20first%20issue) for some starting ideas.
Loading

0 comments on commit c7c7ac8

Please sign in to comment.