Documentation
¶
Overview ¶
Package plan describes a WebShell delivery without performing it. The host must provide a DeliverySink; this module ships no default HTTP uploader or command executor.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CleanupSink ¶
type CleanupSink interface {
Cleanup(ctx context.Context, plan DeliveryPlan, result DeliveryResult) (output string, err error)
}
CleanupSink is optional: the host may remove the dropped artifact and close the session after testing. It returns a human-readable output summary.
type DeliveryPlan ¶
type DeliveryPlan struct {
Target core.Target
UploadURL string
Method string // post | put
UploadField string
FormFields map[string]string
ProxyURL string
Variants bool
Payload Payload
}
DeliveryPlan is a pure description: where to upload, how, and what bytes.
type DeliveryResult ¶
type DeliveryResult struct {
OK bool
DroppedURL string
EvidenceID string
PayloadPath string
UploadTranscript string
Message string
}
DeliveryResult is what the host's DeliverySink reports back.
type DeliverySink ¶
type DeliverySink interface {
Deliver(ctx context.Context, plan DeliveryPlan) (*DeliveryResult, error)
}
DeliverySink is the mandatory host boundary for actual delivery. The host owns HTTP transport, scope re-checks, evidence and cleanup.
type Payload ¶
type Payload struct {
Filename string
Content []byte
SHA256 string
ShellType string
Protocol string
Password string
CmdParam string
PassParam string
}
Payload is generated bytes plus the metadata needed to register a session.
type Verifier ¶
type Verifier interface {
Verify(ctx context.Context, plan DeliveryPlan, result DeliveryResult) (*VerifyResult, error)
}
Verifier is optional: the host may verify the dropped URL with a marker probe before registering a session.
type VerifyResult ¶
VerifyResult is the host verifier's outcome.