Используют ли оба lsmod и / proc / modules один и тот же механизм для извлечения модулей?

4232
user61954

Я могу получить список модулей, использующих либо lsmodили cat /proc/modules. Используют ли два подхода один и тот же механизм для извлечения модулей? Я хочу знать это, поскольку мы могли бы использовать это, чтобы найти некоторые скрытые вредоносные модули.

5

3 ответа на вопрос

4
bahamat

Они оба читают один и тот же интерфейс ядра для создания списка. Тем не менее, руткит может изменить lsmod, чтобы скрыть модули, но существует множество способов чтения / proc / modules, которые для руткита было бы почти невозможно изменить все из них.

Если вы делаете что-то запрограммированное, на самом деле не имеет значения, какой вы используете, но lsmod гораздо более удобочитаем для человека.

Обновление : включить примеры.

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 '' /proc/modules awk '' < /proc/modules sed 's/(.)/$1/' < /proc/modules echo "$(</proc/modules)" perl -p -e ";" < /proc/modules nc -l 11111 & nc localhost 11111 < /proc/modules 

И т.д., и т. Д., И т. Д. Все, что может читать текст, может отображать содержимое. Это лишь немногие, о которых я подумал менее чем за минуту. Если бы я думал об этом, я мог бы придумать некоторые действительно эзотерические способы.

`" Есть множество способов чтения / proc / modules "` не могли бы вы подробнее рассказать об этом? user61954 13 лет назад 0
Я не уверен, что вы получите уведомление, что я отредактировал свой ответ, чтобы включить примеры, но я сделал. bahamat 13 лет назад 0
Крутой мужик. Спасибо за информацию user61954 13 лет назад 0
1
Nico

If the rootkit works at the kernel level (as a module for instance), you can not rely on the info provided by /proc/modules. Furthermore, you can not rely on lsmod either as it pretty-prints /proc/modules.

1
Ciro Santilli 新疆改造中心 六四事件 法轮功

We could look up the source code, but if you are lazy like me:

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

Shows interesting hits such as:

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

so we may guess that most of the info comes from /proc/modules and /sys/module/*.

Похожие вопросы