title | linkTitle | menu | ||||
---|---|---|---|---|---|---|
Carbon |
Docs |
|
Infrastructure automation for offensive operations. https://analog-substance.github.io/carbon/
Carbon's primary purpose is to provide a consistent execution environment to facilitate offensive security assessments.
It uses:
- Packer to build images.
- Terraform to provision infrastructure.
- Golang project structure.
It is aimed at supporting various services to ensure it can scale with you as your operations become more complex.
Feature | AWS ✅ | QEMU ✅ | VirtualBox ✅ | vSphere ❌ | Multipass ✅ | Azure ❌ | GCP ❌ |
---|---|---|---|---|---|---|---|
Image build templates | ✅ | ✅ | ✅ | ✅ | ❌ N/A | ❌ | ❌ |
Build images | ✅ | ✅ | ✅ | ✅ | ❌ N/A | ❌ | ❌ |
Launch one off VM from images | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Destroy VMs | ✅ | ✅ | ✅ | ✅ | ❌ N/A | ❌ | ❌ |
VM Start/Stop/SSH/VNC | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
Infrastructure Creation | ❌ | ❌ | ❌ | ❌ | ❌ N/A | ❌ | ❌ |
❌ = Not Right Now, but planned
✅ = Supported
You can download a prebuilt release from our GitHub Releases page.
Or use go install
.
go install github.com/analog-substance/carbon@latest
Carbon expects the following to be installed and accessible in your $PATH
.
- Packer
- Terraform
- SSH Client
- vncviewer (TigerVNC)
Manage and use infrastructure with a consistent interface, regardless of where it lives.
Usage:
carbon [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
config Display config information
dev Unstable sub-commands for testing random ideas
help Help about any command
image manage images and image builds
vm Manage and interact with VMs
Flags:
--config string config file (default is $HOME/.carbon.yaml)
-e, --environment strings Environment to use. Some providers/profiles support many environments.
-h, --help help for carbon
-j, --json Output in JSON
-p, --profile strings Profile to use. Like an instance of a provider. Used to specify aws profiles
-P, --provider strings Provider to use vbox, aws
-v, --version version for carbon
Use "carbon [command] --help" for more information about a command.
carbon image bootstrap -n my-image -t ubuntu-24.04 -s aws
carbon image build -n my-image
List image build configs.
carbon image list -b
carbon vm start -i i-afde123ae43
carbon vm stop -i i-afde123ae43
carbon vm ssh -i i-afde123ae43
- docs
- vhs example gifs
- create/destroy one off VMs
- provision aws env (create files, call terraform)
- Self Test to ensure dependencies are met
- Cloud init from templates (Base, Operator, Operator Desktop, Implant VM)
- vSphere provider
- DNS management
- point a domain
- list domains
- Jobs / Distributed execution
- Simple deploy/config of services (Pwndoc, Gophish, modlishka, Guacamole, Sliver, Mythic)
- GCP Provider
- Azure Provider
- LXD Provider
- Different OS (CentOS, Arch)
- Chat Bots
- Slack Bot
- Discord Bot
- Web GUI
- tests (lol, this should not be last)