How does KAET work?
Project Structure
.
├── cmd
│ └── kaet
├── internal
│ └── infratools
└── pkg
├── clouds
│ ├── aws
│ ├── azure
│ ├── gcp
│ ├── kubernetes
│ │ ├── exploits
│ │ └── utils
│ └── openshift
├── kaet
│ ├── discovery
│ ├── enumerate
│ ├── exploit
│ ├── explore
│ └── identify
├── runner
└── types
cmd
: contains CLI options and commands
internal
: contains all functionality that is internal to KAET
internal/infratools
: contain KAETs memory, a heap data structure used to save information about the current state of execution
pkg
: contains all functionality used in KAET that can be used as a package
pkg/clouds
: contains packages related to cloud providers as Azure, Google Cloud, AWS, Vanilla Kubernetes, and so on
pkg/clouds/azure
: contains all functionality to interact with Azure Cloud
pkg/clouds/gcp
: contains all functionality to interact with Google Cloud Platform (GCP)
pkg/clouds/aws
: contains all functionality to interact with Amazon Web Services (AWS)
pkg/clouds/kubernetes
: contains all functionality to interact with a Kubernetes cluster
pkg/clouds/kubernetes/exploits
: contains all logic on how to exploit a Kubernetes Cluster
pkg/clouds/kubernetes/exploits
: contains utility functions to help interact with a Kubernetes Cluster and run exploits
pkg/clouds/openshift
: contains all functionality specific to interact with OpenShift Clusters
pkg/kaet
: contains modules used while running KAET. Each module is an abstraction of processes
pkg/kaet/discovery
: module with logic used to discover resources to be enumerated and exploited
pkg/kaet/enumerate
: module that enumerates resources searching for permissions, secrets, and more
pkg/kaet/exploit
: module used to exploit a resource independently of cloud provider
pkg/kaet/explore
: module used to explore a Kubernetes Cluster and Cloud provider
pkg/kaet/identify
: module used to identify where KAET is executing and the target
pkg/runner
: package containing all logic to execute KAET, how each module is used and the main flow process
pkg/types
: package that exports general types used in the code base
Execution Flow
