5 votes

Est-ce que lsmod et /proc/modules utilisent le même mécanisme pour récupérer les modules ?

Je peux obtenir une liste de modules en utilisant soit lsmod ou cat /proc/modules . Les deux approches utilisent-elles le même mécanisme pour récupérer les modules ? Je veux le savoir car nous pourrions l'utiliser pour trouver des modules malveillants cachés.

4voto

bahamat Points 5456

Ils lisent tous deux la même interface du noyau pour produire la liste. Cependant, un rootkit peut modifier lsmod pour cacher des modules, mais il existe une myriade de façons de lire /proc/modules qu'il serait presque impossible pour un rootkit de modifier toutes.

Si vous faites quelque chose de programmatique, cela n'a pas vraiment d'importance de savoir lequel vous utilisez, mais lsmod est beaucoup plus lisible pour l'homme.

Mise à jour : Inclure des exemples.

cat /proc/modules
more /proc/modules
less /proc/modules
view /proc/modules
uniq /proc/moduels
uniq < /proc/modules
grep . /proc/modules
grep . < /proc/modules
awk '{print}' /proc/modules
awk '{print}' < /proc/modules
sed 's/(.)/$1/' < /proc/modules
echo "$(</proc/modules)"
perl -p -e ";" < /proc/modules
nc -l 11111 & nc localhost 11111 < /proc/modules

Etc., etc., etc. Tout ce qui peut lire du texte peut en afficher le contenu. Ce ne sont que quelques exemples auxquels j'ai pensé en moins d'une minute. En y réfléchissant, je pourrais en trouver d'autres vraiment de manière ésotérique.

1voto

Nico Points 11

Si le rootkit fonctionne au niveau du noyau (comme un module par exemple), vous ne pouvez pas vous fier aux informations fournies par /proc/modules . En outre, vous ne pouvez pas compter sur lsmod soit qu'il fait de jolis dessins /proc/modules .

1voto

On pourrait chercher le code source, mais si vous êtes paresseux comme moi :

sudo strace lsmod |& grep -E '(proc|sys)'

Montre des succès intéressants tels que :

open("/proc/modules", O_RDONLY|O_CLOEXEC) = 3
open("/sys/module/ipt_MASQUERADE/refcnt", O_RDONLY|O_CLOEXEC) = 3

donc on peut supposer que la plupart des informations proviennent de /proc/modules y /sys/module/* .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X