-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathMakefile
More file actions
71 lines (52 loc) · 2.62 KB
/
Copy pathMakefile
File metadata and controls
71 lines (52 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
MODULE := github.com/Percivalll/Copy-Fail-CVE-2026-31431-Kubernetes-PoC
BIN := bin/copyfail
PAYLOAD := cmd/copyfail/payload
IMAGE ?= ghcr.io/percivalll/copy-fail-cve-2026-31431-kubernetes-poc
TAG ?= latest
GOOS ?= linux
GOARCH ?= amd64
PLATFORM ?= linux/amd64
# Cross-compiler for the nolibc payload. Override with:
# make CC=aarch64-linux-gnu-gcc GOARCH=arm64
CC = x86_64-linux-gnu-gcc
.PHONY: all payload build docker-build docker-push test clean vet \
payload-eks build-eks docker-build-eks docker-push-eks \
payload-gke build-gke docker-build-gke docker-push-gke
all: build
payload:
$(CC) -static -nostdlib -include payload/nolibc/nolibc.h -o $(PAYLOAD) payload/payload.c
build: payload
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 \
go build -trimpath -ldflags="-s -w" -o $(BIN) ./cmd/copyfail
docker-build: build
docker build -t $(IMAGE):$(TAG) .
docker-push: docker-build
docker push $(IMAGE):$(TAG)
# ── EKS targets ──────────────────────────────────────────────────────
payload-eks:
$(CC) -static -nostdlib -include payload/nolibc/nolibc.h -o $(PAYLOAD) payload/payload-eks.c
build-eks: payload-eks
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 \
go build -trimpath -ldflags="-s -w" -o $(BIN) ./cmd/copyfail
docker-build-eks: build-eks
docker build -f Dockerfile.eks -t $(IMAGE):eks .
docker-push-eks: docker-build-eks
docker push $(IMAGE):eks
# ─────────────────────────────────────────────────────────────────────
# ── GKE targets ──────────────────────────────────────────────────────
payload-gke:
$(CC) -static -nostdlib -include payload/nolibc/nolibc.h -o $(PAYLOAD) payload/payload-gke.c
build-gke: payload-gke
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 \
go build -trimpath -ldflags="-s -w" -o $(BIN) ./cmd/copyfail
docker-build-gke: build-gke
docker build --platform $(PLATFORM) --build-arg GKE_PLATFORM=$(PLATFORM) -f Dockerfile.gke -t $(IMAGE):gke .
docker-push-gke: docker-build-gke
docker push $(IMAGE):gke
# ─────────────────────────────────────────────────────────────────────
test: build
GOOS=linux go test ./...
vet: build
GOOS=linux go vet ./...
clean:
rm -f $(BIN) $(PAYLOAD)