Files
CyberStrikeAI/internal/c2/http_payload_compile_test.go
T

37 lines
1.1 KiB
Go

package c2
import (
"go.uber.org/zap"
"path/filepath"
"testing"
)
func TestHTTPBeaconSessionCredentialTemplateCompiles(t *testing.T) {
t.Setenv("GO111MODULE", "off")
manager, db := terminalTestManager(t)
key, err := GenerateAESKey()
if err != nil {
t.Fatal(err)
}
if _, err := db.Exec(`UPDATE c2_listeners SET type=?,encryption_key=?,implant_token=? WHERE id=?`, string(ListenerTypeHTTPBeacon), key, "test-only-token", "listener"); err != nil {
t.Fatal(err)
}
// Build artifacts remain temporary; generated clients are never executed.
templateDir, err := filepath.Abs("payload_templates")
if err != nil {
t.Fatal(err)
}
builder := NewPayloadBuilder(manager, zap.NewNop(), templateDir, t.TempDir())
for _, platform := range []struct{ os, arch string }{{"linux", "amd64"}, {"windows", "amd64"}, {"darwin", "arm64"}} {
t.Run(platform.os, func(t *testing.T) {
result, err := builder.BuildBeacon(PayloadBuilderInput{ListenerID: "listener", OS: platform.os, Arch: platform.arch, Host: "127.0.0.1"})
if err != nil {
t.Fatal(err)
}
if result.SizeBytes <= 0 {
t.Fatal("empty client")
}
})
}
}