README

November 16, 2014 · View on GitHub

/********************************************************** Last Updated: Nov 16, 2014 CSE509 System Security 2014 Fall @CS SBU Written By: Hyungjoon Koo (hykoo@cs.stonybrook.edu) Yaohui Chen (yaohchen@cs.stonybrook.edu) ***********************************************************/

A. The Rootkit Framework Platform Tested at ubuntu linux 12.04 LTS kernel 3.2.0-29-generic Should be working 3.x kernel version with an appropriate syscall table addr

Module name
	kcr.ko
	Koo-Chen-Rootkit
	Kernel Cracking Rootkit
	
Directory structure
	src/kcr.c : 
		Define main function
		Does device registration 
		Hijack linux system call table

	src/dev.c : 
		Misc device operations
		read, write, open, etc

	src/helpers.c: 
		Define helper functions

	src/HJ_x.c:  
		Functions related to hijacking a ¡°x¡± system call 
		All hijackings follow the same patterns
			i.e HJ_ls.c, HJ_ps.c, HJ_read.c, etc.
	
	src/backdoor.c
		Allows a backdoor when having a specific seteuid

	headers/dev.h
	headers/helpers.h
	headers/HJ_ls.h
		Describe headers to the corresponding source code

	headers/all.h: 
		Describe common <linux/*> or <asm/*>  headers
		Include all src/*.c files just for convenience :)

	headers/config.h: 
		Include all.h, and global variables and macros

B. Features (http://securitee.org/teaching/cse509/files/projects/project1.html) Required implementation Hide specific files and directories from showing up when a user does "ls" and similar commands Hide defined prefixes (i.e hide_, bad_, ) Support dynamically changed prefixes Modify the /etc/passwd and /etc/shadow file to add a backdoor account while returning the original contents of the files (pre-attack) when a normal user requests to see the file (sys_read) Hides processes from the process table when a user does a "ps" Additional implementation Key logging (Not yet) Either saving keystrokes to local file or sending it out to remote site Backdoor Allowing a normal program to have a root privilege Hide the connections (Not yet) Opening/listening ports i.e netstat Hide the rootkit module itself i.e lsmod

C. Usage $ make && sudo insmod kcr.ko