mirror of
https://github.com/vulncheck-oss/cve-2023-22527
synced 2026-06-08 18:05:07 +00:00
83 lines
2.1 KiB
Makefile
83 lines
2.1 KiB
Makefile
# Don't touch this variable
|
|
export GO111MODULE := on
|
|
|
|
# HACK: "Detect" exploit and payload filenames
|
|
exploit_files := $(wildcard cve-*.go)
|
|
payload_files := $(wildcard *_shell.go)
|
|
|
|
# Don't touch these variables
|
|
exploit_os := $(shell go env GOOS)
|
|
exploit_arch := $(shell go env GOARCH)
|
|
|
|
# NOTE: Don't forget to update these variables
|
|
payload_oses := #windows
|
|
payload_archs := #amd64
|
|
|
|
# Output directory for binaries
|
|
output_dir := build
|
|
|
|
# Don't touch this definition
|
|
define newline
|
|
|
|
|
|
endef
|
|
|
|
ifndef exploit_files
|
|
$(error You haven't written any exploit code)
|
|
endif
|
|
|
|
all: format lint compile
|
|
|
|
format:
|
|
gofmt -d -w $(exploit_files) $(payload_files)
|
|
|
|
lint:
|
|
$(foreach file,$(exploit_files),golangci-lint run --fix $(file)$(newline))
|
|
ifneq ($(payload_files),)
|
|
$(foreach file,$(payload_files),golangci-lint run --fix $(file)$(newline))
|
|
endif
|
|
|
|
compile: exploit payload extra
|
|
|
|
exploit: ext = $(if $(findstring windows,$(exploit_os)),.exe)
|
|
exploit:
|
|
$(foreach file,$(exploit_files),\
|
|
$(eval out := $(output_dir)/$(file:.go=)_$(exploit_os)-$(exploit_arch)$(ext))\
|
|
GOOS=$(exploit_os) GOARCH=$(exploit_arch) go build -o $(out) $(file)$(newline))
|
|
|
|
# Change this value if you need to
|
|
payload: export GOARM := 7
|
|
payload:
|
|
ifneq ($(payload_files),)
|
|
$(foreach file,$(payload_files),\
|
|
$(foreach os,$(payload_oses),\
|
|
$(foreach arch,$(payload_archs),\
|
|
$(eval ext := $(if $(findstring windows,$(os)),.exe))\
|
|
$(eval out := $(output_dir)/$(file:.go=)_$(os)-$(arch)$(ext))\
|
|
GOOS=$(os) GOARCH=$(arch) go build -ldflags "-s -w" -o $(out) $(file)$(newline))))
|
|
endif
|
|
|
|
# Add extra stuff to this recipe
|
|
extra:
|
|
|
|
clean:
|
|
@rm -rfv $(output_dir)
|
|
|
|
docker:
|
|
@docker build --network=host -t $(notdir $(CURDIR)) .
|
|
|
|
# make darwin-amd64|darwin-arm64|...
|
|
darwin-%:
|
|
# HACK: Reinvoke make to pass in vars
|
|
@$(MAKE) --no-print-directory exploit_os=darwin exploit_arch=$*
|
|
|
|
# make linux-amd64|linux-arm64|...
|
|
linux-%:
|
|
# HACK: Reinvoke make to pass in vars
|
|
@$(MAKE) --no-print-directory exploit_os=linux exploit_arch=$*
|
|
|
|
# make windows-amd64|windows-arm64|...
|
|
windows-%:
|
|
# HACK: Reinvoke make to pass in vars
|
|
@$(MAKE) --no-print-directory exploit_os=windows exploit_arch=$*
|