Documentation ¶
Index ¶
- Constants
- func CreatePayloadRequest(profile map[string]interface{}, payloadName string) ([]byte, error)
- type DnsTunneling
- func (d *DnsTunneling) C2RequirementsMet(profile map[string]interface{}, criteria map[string]string) (bool, map[string]string)
- func (d *DnsTunneling) GetBeaconBytes(profile map[string]interface{}) []byte
- func (d *DnsTunneling) GetName() string
- func (d *DnsTunneling) GetPayloadBytes(profile map[string]interface{}, payloadName string) ([]byte, string)
- func (d *DnsTunneling) SendExecutionResults(profile map[string]interface{}, result map[string]interface{})
- func (d *DnsTunneling) SetUpstreamDestAddr(upstreamDestAddr string)
- func (d *DnsTunneling) SupportsContinuous() bool
- func (d *DnsTunneling) UploadFileBytes(profile map[string]interface{}, uploadName string, data []byte) error
- type FTP
- func (f *FTP) C2RequirementsMet(profile map[string]interface{}, c2Config map[string]string) (bool, map[string]string)
- func (f *FTP) DownloadFile(filename string) ([]byte, error)
- func (f *FTP) FtpBeacon(profile map[string]interface{}) ([]byte, bool)
- func (f *FTP) GetBeaconBytes(profile map[string]interface{}) []byte
- func (f *FTP) GetName() string
- func (f *FTP) GetPayloadBytes(profile map[string]interface{}, payloadName string) ([]byte, string)
- func (f *FTP) SendExecutionResults(profile map[string]interface{}, result map[string]interface{})
- func (f *FTP) ServerSetDir(paw string) error
- func (f *FTP) SetUpstreamDestAddr(upstreamDestAddr string)
- func (f *FTP) SupportsContinuous() bool
- func (f *FTP) UploadFile(filename string, data []byte) error
- func (f *FTP) UploadFileBytes(profile map[string]interface{}, uploadName string, data []byte) error
- type GIST
- func (g GIST) C2RequirementsMet(profile map[string]interface{}, criteria map[string]string) (bool, map[string]string)
- func (g GIST) GetBeaconBytes(profile map[string]interface{}) []byte
- func (g GIST) GetName() string
- func (g GIST) GetPayloadBytes(profile map[string]interface{}, payloadName string) ([]byte, string)
- func (g GIST) SendExecutionResults(profile map[string]interface{}, result map[string]interface{})
- func (g GIST) SetUpstreamDestAddr(upstreamDestAddr string)
- func (g GIST) SupportsContinuous() bool
- func (g GIST) UploadFileBytes(profile map[string]interface{}, uploadName string, data []byte) error
- type Slack
- func (s *Slack) C2RequirementsMet(profile map[string]interface{}, criteria map[string]string) (bool, map[string]string)
- func (s *Slack) GetBeaconBytes(profile map[string]interface{}) []byte
- func (s *Slack) GetName() string
- func (s *Slack) GetPayloadBytes(profile map[string]interface{}, payloadName string) ([]byte, string)
- func (s *Slack) SendExecutionResults(profile map[string]interface{}, result map[string]interface{})
- func (s *Slack) SetUpstreamDestAddr(upstreamDestAddr string)
- func (s *Slack) SupportsContinuous() bool
- func (s *Slack) UploadFileBytes(profile map[string]interface{}, uploadName string, data []byte) error
Constants ¶
const ( RECORD_TYPE_A = 1 RECORD_TYPE_TXT = 16 TIMEOUT_SECONDS = 10 BASE_DOMAIN = "{DNS_TUNNELING_C2_DOMAIN}" MIN_MESSAGE_ID = 10000000 MAX_MESSAGE_ID = 99999999 MAX_UPLOAD_CHUNK_SIZE = 31 // DNS label is 63 characters max, so 31 bytes in hex reaches 62 characters. BEACON_UPLOAD_TYPE = "be" INSTRUCTION_DOWNLOAD_TYPE = "id" PAYLOAD_REQUEST_TYPE = "pr" PAYLOAD_FILENAME_DOWNLOAD_TYPE = "pf" PAYLOAD_DATA_DOWNLOAD_TYPE = "pd" UPLOAD_REQUEST_TYPE = "ur" UPLOAD_DATA_TYPE = "ud" )
const ( USER = "{FTP_C2_USER}" PWORD = "{FTP_C2_PASSWORD}" DIRECTORY = "/" + "{FTP_C2_DIRECTORY}" BEACON_FILENAME = "Alive.txt" PAYLOAD_FILENAME = "Payload.txt" RESPONSE_FILENAME = "Response.txt" RESULT_FILENAME = "Alive.txt" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DnsTunneling ¶
type DnsTunneling struct {
// contains filtered or unexported fields
}
func (*DnsTunneling) C2RequirementsMet ¶
func (d *DnsTunneling) C2RequirementsMet(profile map[string]interface{}, criteria map[string]string) (bool, map[string]string)
C2RequirementsMet determines if sandcat can use the selected comm channel
func (*DnsTunneling) GetBeaconBytes ¶
func (d *DnsTunneling) GetBeaconBytes(profile map[string]interface{}) []byte
GetInstructions sends a beacon and returns instructions
func (*DnsTunneling) GetName ¶
func (d *DnsTunneling) GetName() string
func (*DnsTunneling) GetPayloadBytes ¶
func (d *DnsTunneling) GetPayloadBytes(profile map[string]interface{}, payloadName string) ([]byte, string)
GetPayloadBytes fetch payload bytes from server
func (*DnsTunneling) SendExecutionResults ¶
func (d *DnsTunneling) SendExecutionResults(profile map[string]interface{}, result map[string]interface{})
SendExecutionResults send results to server
func (*DnsTunneling) SetUpstreamDestAddr ¶
func (d *DnsTunneling) SetUpstreamDestAddr(upstreamDestAddr string)
func (*DnsTunneling) SupportsContinuous ¶
func (d *DnsTunneling) SupportsContinuous() bool
func (*DnsTunneling) UploadFileBytes ¶
func (d *DnsTunneling) UploadFileBytes(profile map[string]interface{}, uploadName string, data []byte) error
type FTP ¶
type FTP struct {
// contains filtered or unexported fields
}
API communicates through FTP
func (*FTP) C2RequirementsMet ¶
func (f *FTP) C2RequirementsMet(profile map[string]interface{}, c2Config map[string]string) (bool, map[string]string)
C2RequirementsMet determines if sandcat can use the selected comm channel
func (*FTP) DownloadFile ¶
Download file from server
func (*FTP) GetBeaconBytes ¶
GetBeaconBytes sends a beacon and returns instructions
func (*FTP) GetPayloadBytes ¶
GetPayloadBytes fetch payload bytes from ftp server
func (*FTP) SendExecutionResults ¶
SendExecutionResults send results to the server
func (*FTP) ServerSetDir ¶
Connect to ftp server with username and password
func (*FTP) SetUpstreamDestAddr ¶
Set upstreamDestAddr
func (*FTP) SupportsContinuous ¶
func (*FTP) UploadFile ¶
Upload file to server
type GIST ¶
type GIST struct {
// contains filtered or unexported fields
}
func (GIST) C2RequirementsMet ¶
func (g GIST) C2RequirementsMet(profile map[string]interface{}, criteria map[string]string) (bool, map[string]string)
C2RequirementsMet determines if sandcat can use the selected comm channel
func (GIST) GetBeaconBytes ¶
GetInstructions sends a beacon and returns instructions
func (GIST) GetPayloadBytes ¶
GetPayloadBytes load payload bytes from github
func (GIST) SendExecutionResults ¶
SendExecutionResults send results to the server
func (GIST) SetUpstreamDestAddr ¶
func (GIST) SupportsContinuous ¶
type Slack ¶
type Slack struct {
// contains filtered or unexported fields
}
func (*Slack) C2RequirementsMet ¶
func (s *Slack) C2RequirementsMet(profile map[string]interface{}, criteria map[string]string) (bool, map[string]string)
C2RequirementsMet determines if sandcat can use the selected comm channel
func (*Slack) GetBeaconBytes ¶
GetInstructions sends a beacon and returns instructions
func (*Slack) GetPayloadBytes ¶
func (s *Slack) GetPayloadBytes(profile map[string]interface{}, payloadName string) ([]byte, string)
GetPayloadBytes load payload bytes
func (*Slack) SendExecutionResults ¶
SendExecutionResults send results to the server