Содержание статьи
/ proc. Все это требует загрузки кода в ядро, компиляции под конкретную версию и оставляет заметные следы. Но есть способ проще. Никаких модулей ядра и компиляции, только один штатный вызов mount с флагом MS_BIND.В этой статье мы:
- разберем технику сокрытия процессов через
bind;mount - воспроизведем ее руками и посмотрим, что происходит на уровне syscall, через
strace; - настроим правило
auditdдля мониторинга в реальном времени; - напишем скрипт на Python для обнаружения и раскрытия скрытых процессов.
Идея основана на статьях Стефана Бергера и Хэла Померанца.
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Как работает техника
Как малварь прячет процессы? Мы часто используем ps, чтобы посмотреть, какие процессы запущены в системе. Если заглянуть чуть глубже, то можно узнать, что эта утилита смотрит информацию о процессах в /:
root@0bc5a04d0a00:/..openat(fstat(openat(fstat(read(close(mmap(getdents64(newfstatat(openat(read(close(openat(read(read(close(openat(read(read(close(openat(read(read(close(openat(openat(read(close(..
В Linux procfs — виртуальная файловая система, которая предоставляет доступ к информации ядра через обычные файловые операции. Каждый процесс представлен директорией /, внутри которой лежат файлы: stat, cmdline, comm, environ, fd/ и другие. Именно их читает ps, top, htop и любой другой инструмент мониторинга.
Главный герой сегодняшней техники — системный вызов mount:
mount(source, target, filesystemtype, mountflags, data)
Это syscall для монтирования файловой системы. Для bind используется флаг MS_BIND (0x1000).
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
