Скрытый процесс и prochunter.

Prochunter — ещё одна хорошая утилита для поиска скрытых процессов, запущенных в системе. В рамках данной заметки мы скроем нужный нам процесс от стандартного софта, а затем, обнаружим его с помощью prochunter.

Скрываем процесс в системе.

Начнём с создания скрытого процесса. Прятать его мы будем с помощью специально собранной и подгруженной через ld preloader библиотеки. Всё необходимое забираем с Github репозитория libprocesshider:

# git clone https://github.com/gianlucaborello/libprocesshider

Теперь соберём .so, и настроим его прелоад:

# cd libprocesshider/
# make
# mv libprocesshider.so /usr/local/lib/
# echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload

Перед сборкой, в processhider.c мы можем указать имя процесса, который будет скрыт:

static const char* process_to_filter = "evil_script.py";

Далее нам просто остаётся запустить потенциально проблемный скрипт evil_script.py (так же есть в репозитории):

# ./evil_script.py 1.2.3.4 567
Sending burst to 1.2.3.4:567

И убедиться, что с помощью lsof, например, либо c помощью ps, запущенный процесс не виден.

Поиск процесса с prochunter.

Забираем prochunter с помощью git и собираем модуль. При этом, в системе должны быть установлены -devel пакет для ядра, python 3, его pip, его же -devel пакет, и модуль (ставим с помощью pip3) psutil.

# git clone https://gitlab.com/nowayout/prochunter.git
# cd prochunter/
# make

В некоторых случаях (у меня на CentOS 7 так вышло), перед сборкой необходимо из prochunter.c удалить вот этот инклуд:

#include <linux/sched/signal.h>

Итак, у нас уже запущен скрытый процесс, проверим, обнаружит ли его prochunter. Запускаем скрипт:

# ./prochunter.py -r

И видим, что скрытый процесс был обнаружен.

# ./prochunter.py --ps | grep evil
24528 evil_script.py

К слову, утилита unhide, которую мы рассматривали ранее, так же обнаружила созданный скрытый процесс:

@SysadminNotes | https://sysadmin.pm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *