diff --git a/apps/execve_hijack b/apps/execve_hijack new file mode 100755 index 0000000..aed8391 Binary files /dev/null and b/apps/execve_hijack differ diff --git a/apps/injection_lib.so b/apps/injection_lib.so new file mode 100755 index 0000000..f1f4e5e Binary files /dev/null and b/apps/injection_lib.so differ diff --git a/apps/injector b/apps/injector new file mode 100755 index 0000000..7394127 Binary files /dev/null and b/apps/injector differ diff --git a/apps/kit b/apps/kit new file mode 100755 index 0000000..a85c8de Binary files /dev/null and b/apps/kit differ diff --git a/apps/simple_open b/apps/simple_open new file mode 100755 index 0000000..b29b041 Binary files /dev/null and b/apps/simple_open differ diff --git a/apps/simple_timer b/apps/simple_timer new file mode 100755 index 0000000..5429874 Binary files /dev/null and b/apps/simple_timer differ diff --git a/apps/tc.o b/apps/tc.o new file mode 100644 index 0000000..afdd893 Binary files /dev/null and b/apps/tc.o differ diff --git a/src/.output/kit.o b/src/.output/kit.o index 66412a5..15aff80 100644 Binary files a/src/.output/kit.o and b/src/.output/kit.o differ diff --git a/src/.output/kit.skel.h b/src/.output/kit.skel.h index 5b82f9c..f3c4655 100644 --- a/src/.output/kit.skel.h +++ b/src/.output/kit.skel.h @@ -11333,16 +11333,16 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \0\0\x0c\x36\0\0\x01\0\0\0\0\0\0\0\x7b\0\0\0\x49\x38\0\0\x01\0\0\0\0\0\0\0\x7f\ \0\0\0\x10\0\0\0\x5e\x04\0\0\x02\0\0\0\0\0\0\0\x7a\x04\0\0\xa9\x04\0\0\x0e\x8c\ \0\0\x08\0\0\0\x7a\x04\0\0\xd8\x04\0\0\x02\xac\0\0\x3b\x05\0\0\x0f\0\0\0\0\0\0\ -\0\x56\x05\0\0\x82\x05\0\0\x09\xb4\x05\0\x08\0\0\0\x56\x05\0\0\x98\x05\0\0\x09\ -\xb8\x05\0\x30\0\0\0\x56\x05\0\0\xb7\x05\0\0\x1e\xcc\x05\0\x38\0\0\0\x56\x05\0\ -\0\xda\x05\0\0\x19\xc8\x05\0\x40\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\x50\x01\0\ +\0\x56\x05\0\0\x82\x05\0\0\x09\xa0\x05\0\x08\0\0\0\x56\x05\0\0\x98\x05\0\0\x09\ +\xa4\x05\0\x30\0\0\0\x56\x05\0\0\xb7\x05\0\0\x1e\xb8\x05\0\x38\0\0\0\x56\x05\0\ +\0\xda\x05\0\0\x19\xb4\x05\0\x40\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\x50\x01\0\ \x48\0\0\0\x56\x05\0\0\xf7\x05\0\0\x0b\x50\x01\0\x58\0\0\0\x56\x05\0\0\xb7\x05\ -\0\0\x1e\xcc\x05\0\x60\0\0\0\x56\x05\0\0\x28\x06\0\0\x3f\x5c\x01\0\x88\0\0\0\ +\0\0\x1e\xb8\x05\0\x60\0\0\0\x56\x05\0\0\x28\x06\0\0\x3f\x5c\x01\0\x88\0\0\0\ \x56\x05\0\0\x90\x06\0\0\x09\x60\x01\0\x90\0\0\0\x56\x05\0\0\xae\x06\0\0\x20\ \x78\x01\0\0\x01\0\0\x56\x05\0\0\xdb\x06\0\0\x0d\x80\x01\0\x08\x01\0\0\x56\x05\ \0\0\xed\x06\0\0\x0e\x7c\x01\0\x18\x01\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x30\x01\ \0\0\x56\x05\0\0\x01\x07\0\0\x05\x88\x01\0\x58\x01\0\0\x56\x05\0\0\x41\x07\0\0\ -\x01\xd4\x05\0\x74\x07\0\0\x67\0\0\0\0\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\xfc\ +\x01\xc0\x05\0\x74\x07\0\0\x67\0\0\0\0\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\xe8\ \x05\0\x18\0\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x20\0\0\0\x56\x05\0\0\x8e\x07\0\0\ \x38\xa0\x01\0\x50\0\0\0\x56\x05\0\0\xef\x07\0\0\x16\xa4\x01\0\x58\0\0\0\x56\ \x05\0\0\xef\x07\0\0\x1f\xa4\x01\0\x60\0\0\0\x56\x05\0\0\xef\x07\0\0\x09\xa4\ @@ -11399,7 +11399,7 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \x05\xb0\x02\0\x50\x07\0\0\x56\x05\0\0\x59\x09\0\0\x05\xb4\x02\0\x80\x07\0\0\ \x56\x05\0\0\x8d\x09\0\0\x05\xb8\x02\0\xb8\x07\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\ \xc0\x07\0\0\x56\x05\0\0\xcd\x09\0\0\x08\xbc\x02\0\xe0\x07\0\0\x56\x05\0\0\xcd\ -\x09\0\0\x08\xbc\x02\0\xe8\x07\0\0\x56\x05\0\0\x2f\x0a\0\0\x01\x1c\x06\0\0\x08\ +\x09\0\0\x08\xbc\x02\0\xe8\x07\0\0\x56\x05\0\0\x2f\x0a\0\0\x01\x08\x06\0\0\x08\ \0\0\x56\x05\0\0\x31\x0a\0\0\x0c\x04\x02\0\x20\x08\0\0\x56\x05\0\0\x31\x0a\0\0\ \x0c\x04\x02\0\x28\x08\0\0\x56\x05\0\0\xa3\x0a\0\0\x0d\x08\x02\0\x68\x08\0\0\ \x56\x05\0\0\xdd\x0a\0\0\x0e\x30\x02\0\x80\x08\0\0\x56\x05\0\0\xff\x0a\0\0\x1c\ @@ -11408,8 +11408,8 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \x08\0\0\x56\x05\0\0\x35\x0b\0\0\x10\x38\x02\0\xc0\x08\0\0\x56\x05\0\0\x35\x0b\ \0\0\x10\x38\x02\0\xc8\x08\0\0\x56\x05\0\0\xaa\x0b\0\0\x11\x3c\x02\0\xe8\x08\0\ \0\x56\x05\0\0\xfd\x0b\0\0\x09\x50\x02\0\x18\x09\0\0\x56\x05\0\0\x27\x0c\0\0\ -\x09\xc0\x02\0\x97\x0c\0\0\x47\x12\0\0\0\0\0\0\x56\x05\0\0\xb4\x0c\0\0\0\x38\ -\x06\0\x08\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\x3c\x06\0\x28\0\0\0\x56\x05\0\0\ +\x09\xc0\x02\0\x97\x0c\0\0\x47\x12\0\0\0\0\0\0\x56\x05\0\0\xb4\x0c\0\0\0\x24\ +\x06\0\x08\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\x28\x06\0\x28\0\0\0\x56\x05\0\0\ \xef\x0c\0\0\x0a\xe0\x02\0\x40\0\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x48\0\0\0\x56\ \x05\0\0\x13\x0d\0\0\x0f\xe4\x02\0\x78\0\0\0\x56\x05\0\0\x4b\x0d\0\0\x08\x04\ \x03\0\x80\0\0\0\x56\x05\0\0\x5c\x0d\0\0\x0a\x14\x03\0\x98\0\0\0\x56\x05\0\0\ @@ -11442,7 +11442,7 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \0\xff\x0e\0\0\x0d\x70\0\0\x78\x02\0\0\xbe\x0e\0\0\xff\x0e\0\0\x0d\x70\0\0\x80\ \x02\0\0\xbe\x0e\0\0\xff\x0e\0\0\x0d\x70\0\0\x90\x02\0\0\xbe\x0e\0\0\xff\x0e\0\ \0\x0d\x70\0\0\x98\x02\0\0\xbe\x0e\0\0\xff\x0e\0\0\x0d\x70\0\0\xa8\x02\0\0\x56\ -\x05\0\0\0\0\0\0\0\0\0\0\xf8\x02\0\0\x56\x05\0\0\x2f\x0a\0\0\x01\x54\x06\0\x08\ +\x05\0\0\0\0\0\0\0\0\0\0\xf8\x02\0\0\x56\x05\0\0\x2f\x0a\0\0\x01\x40\x06\0\x08\ \x03\0\0\xff\x19\0\0\x68\x32\0\0\0\x70\x05\0\x10\x03\0\0\xff\x19\0\0\xa0\x32\0\ \0\x23\x74\x05\0\x20\x03\0\0\xff\x19\0\0\xef\x0c\0\0\x0a\x78\x05\0\x38\x03\0\0\ \xff\x19\0\0\0\0\0\0\0\0\0\0\x40\x03\0\0\xff\x19\0\0\x13\x0d\0\0\x0f\x7c\x05\0\ @@ -14414,8 +14414,8 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \x17\xa4\x01\0\x08\xbd\x01\0\xff\x19\0\0\xc0\x34\0\0\x45\x68\x06\0\x10\xbd\x01\ \0\x49\x2b\0\0\x7f\x2e\0\0\x1e\x8c\x01\0\x20\xbd\x01\0\x49\x2b\0\0\xb1\x2e\0\0\ \x02\xac\x01\0\x38\xbd\x01\0\xff\x19\0\0\x2f\x0a\0\0\x01\x98\x06\0\x5a\x0f\0\0\ -\x1e\0\0\0\0\0\0\0\x56\x05\0\0\x7b\x0f\0\0\0\x74\x06\0\x08\0\0\0\x56\x05\0\0\ -\xf7\x05\0\0\x16\x78\x06\0\x20\0\0\0\x56\x05\0\0\xef\x0c\0\0\x0a\xb0\x03\0\x38\ +\x1e\0\0\0\0\0\0\0\x56\x05\0\0\x7b\x0f\0\0\0\x60\x06\0\x08\0\0\0\x56\x05\0\0\ +\xf7\x05\0\0\x16\x64\x06\0\x20\0\0\0\x56\x05\0\0\xef\x0c\0\0\x0a\xb0\x03\0\x38\ \0\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x40\0\0\0\x56\x05\0\0\x13\x0d\0\0\x0f\xb4\ \x03\0\x70\0\0\0\x56\x05\0\0\x4b\x0d\0\0\x08\xb8\x03\0\x78\0\0\0\xbe\x0e\0\0\ \xff\x0e\0\0\x0d\x70\0\0\x80\0\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x88\0\0\0\xbe\ @@ -14432,8 +14432,8 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \x03\0\xd8\x01\0\0\x56\x05\0\0\x33\x11\0\0\x0f\xec\x03\0\0\x02\0\0\x56\x05\0\0\ \x95\x11\0\0\x0c\xf0\x03\0\x08\x02\0\0\x56\x05\0\0\xa8\x11\0\0\x0d\xf4\x03\0\ \x30\x02\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x68\x02\0\0\x56\x05\0\0\x2f\x0a\0\0\ -\x01\x90\x06\0\x18\x12\0\0\x3c\0\0\0\0\0\0\0\x56\x05\0\0\x38\x12\0\0\0\xac\x06\ -\0\x08\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\xb0\x06\0\x20\0\0\0\x56\x05\0\0\xef\ +\x01\x7c\x06\0\x18\x12\0\0\x3c\0\0\0\0\0\0\0\x56\x05\0\0\x38\x12\0\0\0\x98\x06\ +\0\x08\0\0\0\x56\x05\0\0\xf7\x05\0\0\x16\x9c\x06\0\x20\0\0\0\x56\x05\0\0\xef\ \x0c\0\0\x0a\x38\x04\0\x38\0\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x40\0\0\0\x56\x05\ \0\0\x13\x0d\0\0\x0f\x3c\x04\0\x78\0\0\0\x56\x05\0\0\x4b\x0d\0\0\x08\x40\x04\0\ \x80\0\0\0\xbe\x0e\0\0\xff\x0e\0\0\x0d\x70\0\0\x88\0\0\0\x56\x05\0\0\0\0\0\0\0\ @@ -14469,7 +14469,7 @@ kit_bpf__create_skeleton(struct kit_bpf *obj) \x05\0\xd8\x04\0\0\x56\x05\0\0\x02\x18\0\0\x19\x28\x05\0\0\x05\0\0\x56\x05\0\0\ \x57\x18\0\0\x09\x78\x04\0\x20\x05\0\0\x56\x05\0\0\x89\x18\0\0\x0d\xb0\x04\0\ \x38\x05\0\0\x56\x05\0\0\0\0\0\0\0\0\0\0\x48\x05\0\0\x56\x05\0\0\x2f\x0a\0\0\ -\x01\xc8\x06\0\x0b\x19\0\0\x06\0\0\0\0\0\0\0\x28\x19\0\0\xf7\x05\0\0\x16\xec\ +\x01\xb4\x06\0\x0b\x19\0\0\x06\0\0\0\0\0\0\0\x28\x19\0\0\xf7\x05\0\0\x16\xec\ \x03\0\x10\0\0\0\x28\x19\0\0\xef\x0c\0\0\x0a\x64\x01\0\x28\0\0\0\x28\x19\0\0\0\ \0\0\0\0\0\0\0\x30\0\0\0\x28\x19\0\0\x13\x0d\0\0\x0f\x68\x01\0\x40\0\0\0\x28\ \x19\0\0\x56\x19\0\0\x08\x74\x01\0\x58\0\0\0\x28\x19\0\0\x2f\x0a\0\0\x01\x04\ diff --git a/src/bin/kit b/src/bin/kit index 9797941..a85c8de 100755 Binary files a/src/bin/kit and b/src/bin/kit differ diff --git a/src/helpers/.gdb_history b/src/helpers/.gdb_history index 3b8c56b..093c395 100644 --- a/src/helpers/.gdb_history +++ b/src/helpers/.gdb_history @@ -1,10 +1,3 @@ -b *(main+446) -r -ni -q -b *(main+446) -r -si ni q b *(main+446) @@ -254,3 +247,10 @@ stepi fin fin q +b 14 +r +si +fin +si +ni +q diff --git a/src/helpers/deployer.sh b/src/helpers/deployer.sh new file mode 100755 index 0000000..0e5980d --- /dev/null +++ b/src/helpers/deployer.sh @@ -0,0 +1,93 @@ +#!/bin/bash +#set -x + +## Constants declaration +#The current directory full path +declare -r DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +#The location of the file where to write the full rootkit package +declare -r OUTPUTDIR="/home/osboxes/TFG/apps/" +#A variable to determine whether to silence output of internal commands +declare firstvar=$1 + +RED='\033[0;31m' +BLU='\033[0;34m' +GRN='\033[0;32m' +NC='\033[0m' # No Color + +## A simple function to wait for input +waitForInput(){ + if [ "$press_key_to_continue" = true ]; then + echo "Completed. Press any key to continue" + while [ true ] ; + do + read -t 3 -n 1 + if [ $? = 0 ] ; then + return ; + fi + done + fi +} + +#A simple function to silence output +quiet(){ + if [ "$firstvar" == "quiet" ]; then + "$@" > /dev/null + else + "$@" + fi +} + +#Start of script +echo "*******************************************************\n" +echo "************************* TFG *************************\n" +echo "*******************************************************\n" +echo "***************** Marcos Sánchez Bajo *****************\n" +echo "*******************************************************\n" +echo "" + +if [ "${PWD##*/}" != "helpers" ]; then + echo -e "${RED}This file should be launched from the /helpers directory${NC}" + exit 1 +fi + +#First compile helpers +echo -e "${BLU}Compiling helper programs${NC}" +sleep 1 +quiet make clean +quiet make +echo -e "${GRN}Finished${NC}" + +#Next compile client +echo -e "${BLU}Compiling client programs${NC}" +sleep 1 +cd ../client +quiet make clean +quiet make +echo -e "${GRN}Finished${NC}" + +echo -e "${BLU}Compiling rootkit${NC}" +sleep 1 +cd ../ +quiet make clean +quiet make +echo -e "${GRN}Finished${NC}" + +echo -e "${BLU}Compiling TC hook${NC}" +sleep 1 +quiet make tckit +echo -e "${GRN}Finished${NC}" + +echo -e "${BLU}Packaging binary results${NC}" +cp -a bin/kit $OUTPUTDIR +cp -a client/injector $OUTPUTDIR +cp -a helpers/simple_open $OUTPUTDIR +cp -a helpers/simple_timer $OUTPUTDIR +cp -a helpers/execve_hijack $OUTPUTDIR +cp -a helpers/injection_lib.so $OUTPUTDIR +cp -a tc.o $OUTPUTDIR +cp -a client/mycert.pem $OUTPUTDIR +echo -e "${GRN}Finished${NC}" + + + +