Un modo popolare di nascondere i processi dall'utente è quello di dirottare la funzione iterate per la directory/proc. Questo può essere fatto nel modo seguente:Modulo kernel Linux: re-hijacking della funzione iterate del filesystem virtuale
struct file *filep = filp_open("/proc", O_RDONLY, 0));
filep->f_op->iterate = p // We swap the pointer with our hacked iterate
Sto lavorando su un metodo di rilevazione, in cui vorrei ripristinare l'algoritmo iterativo originale (ammesso che è già stato dirottato). C'è un modo per trovare la funzione di iterazione originale che viene utilizzata per la directory/proc?
È possibile utilizzare direttamente [proc_map_files_readdir] (http://lxr.free-electrons.com/source/fs/proc/base.c#L1841). Ovviamente, se l'autore dell'attacco ha accesso in scrittura al kernel, può anche cambiarlo. – zch
@zch Potresti dirmi come posso accedere a questa funzione? Non è presente nel sysmap. – AlexSee
Esatto, è una funzione statica, quindi non sono sicuro che questo simbolo sia presente nel kernel risultante. Puoi provare a montare il secondo 'procfs' e forse lì puoi rilevare alcuni semplici attacchi di questo tipo. – zch