Os métodos lsmod e / proc / modules usam o mesmo mecanismo para recuperar os módulos?

5

Eu posso obter uma lista de módulos usando lsmod ou cat /proc/modules . As duas abordagens usam o mesmo mecanismo para recuperar os módulos? Eu quero saber isso, pois podemos usá-lo para encontrar alguns módulos maliciosos ocultos.

    
por user61954 09.01.2011 / 07:20

3 respostas

4

Ambos estão lendo a mesma interface do kernel para produzir a lista. No entanto, um rootkit pode alterar o lsmod para ocultar os módulos, mas há inúmeras formas de ler / proc / modules que seriam quase impossíveis para um rootkit modificar todos eles.

Se você está fazendo algo programático, não importa qual deles você usa, mas o lsmod é muito mais legível para humanos.

Atualizar : para incluir exemplos.

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. Qualquer coisa que possa ler texto pode exibir o conteúdo. Estes são apenas alguns que eu pensei em menos de um minuto. Se eu pensasse sobre isso, eu poderia chegar a algumas maneiras esotéricas realmente .

    
por 09.01.2011 / 09:50
1

Se o rootkit funcionar no nível do kernel (como um módulo, por exemplo), você não poderá confiar nas informações fornecidas por /proc/modules . Além disso, você não pode confiar em lsmod , já que é bonito, imprime /proc/modules .

    
por 14.04.2011 / 23:09
1

Poderíamos procurar o código-fonte, mas se você é preguiçoso como eu:

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

Mostra hits interessantes como:

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

Assim, podemos supor que a maioria das informações vem de /proc/modules e /sys/module/* .

    
por 20.05.2017 / 13:36