Documentation
¶
Index ¶
- Constants
- func GenerateOperatorToken() string
- type Beacon
- type BeaconTask
- type CanaryDomain
- type Certificate
- type DNSCanary
- type ExtensionData
- type Host
- type IOC
- type ImplantBuild
- type ImplantC2
- type ImplantConfig
- type ImplantProfile
- type KeyValue
- type Loot
- type Operator
- type WGKeys
- type WGPeer
- type WebContent
- type Website
Constants ¶
const ( PENDING = "pending" SENT = "sent" COMPLETED = "completed" )
BeaconTask - Represents a host machine
Variables ¶
This section is empty.
Functions ¶
func GenerateOperatorToken ¶ added in v1.5.0
func GenerateOperatorToken() string
GenerateOperatorToken - Generate a new operator auth token
Types ¶
type Beacon ¶ added in v1.5.0
type Beacon struct {
CreatedAt time.Time `gorm:"->;<-:create;"`
ID uuid.UUID `gorm:"type:uuid;"`
Name string
Hostname string
UUID uuid.UUID `gorm:"type:uuid;"` // Host UUID
Username string
UID string
GID string
OS string
Arch string
Transport string
RemoteAddress string
PID int32
Filename string
LastCheckin time.Time
Version string
ReconnectInterval int64
ActiveC2 string
ProxyURL string
ImplantBuildID uuid.UUID `gorm:"type:uuid;"`
Interval int64
Jitter int64
NextCheckin int64
Tasks []BeaconTask
}
Beacon - Represents a host machine
func (*Beacon) BeforeCreate ¶ added in v1.5.0
BeforeCreate - GORM hook
func (*Beacon) Task ¶ added in v1.5.0
func (b *Beacon) Task(envelope *sliverpb.Envelope) (*BeaconTask, error)
func (*Beacon) ToProtobuf ¶ added in v1.5.0
type BeaconTask ¶ added in v1.5.0
type BeaconTask struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
EnvelopeID int64 `gorm:"uniqueIndex"`
BeaconID uuid.UUID `gorm:"type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
State string
SentAt time.Time
CompletedAt time.Time
Description string
Request []byte // *sliverpb.Envelope
Response []byte // *sliverpb.Envelope
}
func (*BeaconTask) BeforeCreate ¶ added in v1.5.0
func (b *BeaconTask) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook
func (*BeaconTask) ToProtobuf ¶ added in v1.5.0
func (b *BeaconTask) ToProtobuf(content bool) *clientpb.BeaconTask
type CanaryDomain ¶
type CanaryDomain struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
ImplantConfigID uuid.UUID
CreatedAt time.Time `gorm:"->;<-:create;"`
Domain string
}
CanaryDomain - Canary domain, belongs to ImplantConfig
func (*CanaryDomain) BeforeCreate ¶
func (c *CanaryDomain) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook
type Certificate ¶
type Certificate struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
CommonName string
CAType string
KeyType string
CertificatePEM string
PrivateKeyPEM string
}
Certificate - Certificate database model
func (*Certificate) BeforeCreate ¶
func (c *Certificate) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook to automatically set values
type DNSCanary ¶
type DNSCanary struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
ImplantName string
Domain string
Triggered bool
FirstTrigger time.Time
LatestTrigger time.Time
Count uint32
}
DNSCanary - Colletions of content to serve from HTTP(S)
func (*DNSCanary) BeforeCreate ¶
BeforeCreate - GORM hook
func (*DNSCanary) ToProtobuf ¶
ToProtobuf - Converts to protobuf object
type ExtensionData ¶ added in v1.5.0
type ExtensionData struct {
gorm.Model
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
HostID uuid.UUID `gorm:"type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Name string
Output string
}
ExtensionData - Represents an indicator of compromise, generally a file we've uploaded to a remote system.
func (*ExtensionData) BeforeCreate ¶ added in v1.5.0
func (e *ExtensionData) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook
type Host ¶ added in v1.5.0
type Host struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
HostUUID uuid.UUID `gorm:"type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Hostname string
OSVersion string // Verbore OS version
IOCs []IOC
ExtensionData []ExtensionData
}
Host - Represents a host machine
func (*Host) BeforeCreate ¶ added in v1.5.0
BeforeCreate - GORM hook
func (*Host) ToProtobuf ¶ added in v1.5.0
type IOC ¶ added in v1.5.0
type IOC struct {
gorm.Model
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
HostID uuid.UUID `gorm:"type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Path string
FileHash string
}
IOC - Represents an indicator of compromise, generally a file we've uploaded to a remote system.
func (*IOC) BeforeCreate ¶ added in v1.5.0
BeforeCreate - GORM hook
func (*IOC) ToProtobuf ¶ added in v1.5.0
type ImplantBuild ¶
type ImplantBuild struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Name string `gorm:"unique;"`
// Checksums stores of the implant binary
MD5 string
SHA1 string
SHA256 string
// Burned indicates whether the implant
// has been seen on threat intel platforms
Burned bool
ImplantConfig ImplantConfig
}
ImplantBuild - Represents an implant
func (*ImplantBuild) BeforeCreate ¶
func (ib *ImplantBuild) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook
type ImplantC2 ¶
type ImplantC2 struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
ImplantConfigID uuid.UUID
CreatedAt time.Time `gorm:"->;<-:create;"`
Priority uint32
URL string
Options string
}
ImplantC2 - C2 struct
func (*ImplantC2) BeforeCreate ¶
BeforeCreate - GORM hook
func (*ImplantC2) ToProtobuf ¶
ToProtobuf - Convert to protobuf version
type ImplantConfig ¶
type ImplantConfig struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
ImplantBuildID uuid.UUID
ImplantProfileID uuid.UUID
CreatedAt time.Time `gorm:"->;<-:create;"`
// Go
GOOS string
GOARCH string
IsBeacon bool
BeaconInterval int64
BeaconJitter int64
// ECC
ECCPublicKey string
ECCPublicKeyDigest string
ECCPrivateKey string
ECCPublicKeySignature string
ECCServerPublicKey string
MinisignServerPublicKey string
// MTLS
MtlsCACert string
MtlsCert string
MtlsKey string
Debug bool
Evasion bool
ObfuscateSymbols bool
ReconnectInterval int64
MaxConnectionErrors uint32
ConnectionStrategy string
// WireGuard
WGImplantPrivKey string
WGServerPubKey string
WGPeerTunIP string
WGKeyExchangePort uint32
WGTcpCommsPort uint32
C2 []ImplantC2
MTLSc2Enabled bool
WGc2Enabled bool
HTTPc2Enabled bool
DNSc2Enabled bool
CanaryDomains []CanaryDomain
NamePipec2Enabled bool
TCPPivotc2Enabled bool
// Limits
LimitDomainJoined bool
LimitHostname string
LimitUsername string
LimitDatetime string
LimitFileExists string
// Output Format
Format clientpb.OutputFormat
// For IsSharedLib bool
IsService bool
IsShellcode bool
RunAtLoad bool
FileName string
}
ImplantConfig - An implant build configuration
func (*ImplantConfig) BeforeCreate ¶
func (ic *ImplantConfig) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook
func (*ImplantConfig) CanaryDomainsList ¶
func (ic *ImplantConfig) CanaryDomainsList() []string
CanaryDomainsList - Get string slice of canary domains
func (*ImplantConfig) ToProtobuf ¶
func (ic *ImplantConfig) ToProtobuf() *clientpb.ImplantConfig
ToProtobuf - Convert ImplantConfig to protobuf equiv
type ImplantProfile ¶
type ImplantProfile struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Name string `gorm:"unique;"`
ImplantConfig *ImplantConfig
}
ImplantProfile - An implant build configuration
func (*ImplantProfile) BeforeCreate ¶
func (ip *ImplantProfile) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook
type KeyValue ¶ added in v1.5.0
type KeyValue struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Key string `gorm:"unique;"`
Value string
}
KeyValue - Represents an implant
type Loot ¶ added in v1.4.18
type Loot struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Type int
FileType int
CredentialType int
Name string
OriginHost uuid.UUID `gorm:"type:uuid;"`
}
Loot - Represents a piece of loot
type Operator ¶ added in v1.5.0
type Operator struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Name string
Token string `gorm:"uniqueIndex"`
}
Operator - Colletions of content to serve from HTTP(S)
type WGKeys ¶ added in v1.4.9
type WGKeys struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
PrivKey string
PubKey string
}
WGKeys - WGKeys database model
type WGPeer ¶ added in v1.4.9
type WGPeer struct {
// gorm.Model
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
PrivKey string
PubKey string
TunIP string
}
WGPeer- WGPeer database model
type WebContent ¶
type WebContent struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
WebsiteID uuid.UUID `gorm:"type:uuid;"`
Path string `gorm:"primaryKey"`
Size int
ContentType string
}
WebContent - One piece of content mapped to a path
func (*WebContent) BeforeCreate ¶
func (wc *WebContent) BeforeCreate(tx *gorm.DB) (err error)
BeforeCreate - GORM hook to automatically set values
func (*WebContent) ToProtobuf ¶
func (wc *WebContent) ToProtobuf(content []byte) *clientpb.WebContent
ToProtobuf - Converts to protobuf object
type Website ¶
type Website struct {
ID uuid.UUID `gorm:"primaryKey;->;<-:create;type:uuid;"`
CreatedAt time.Time `gorm:"->;<-:create;"`
Name string `gorm:"unique;"` // Website Name
WebContents []WebContent
}
Website - Colletions of content to serve from HTTP(S)
func (*Website) BeforeCreate ¶
BeforeCreate - GORM hook
func (*Website) ToProtobuf ¶
ToProtobuf - Converts to protobuf object