Произведите параметры компилятора от SSH

top команда считывает данные с proc, который обеспечивается непосредственно от ядра. Для сокрытия процессов необходимо было бы использовать код в ядре, чтобы сделать маскирование.

Кроме использования концепции безопасности как SELinux и grsecurity (упомянутый в других ответах), код стиля руткита является Вашей единственной остающейся опцией. Я говорю "стиль", потому что "руткит" отдельно не плох, это - как он используется. Существуют совершенно законные причины позади сокрытия процессов от других пользователей, который является, почему эта возможность существует в концепциях безопасности.

Основной маршрут, за которым необходимо было бы следовать, чтобы заставить это работать, должен сцепиться в (или налет, в зависимости от того, как Вы смотрите на него), функция (функции) в ядре Linux, которые раздают /proc/pid/ данные. Я демонстрирую один метод сцепления в функции ядра Linux в модуле безопасности, который я записал:

https://github.com/cormander/tpe-lkm

Код "высокого уровня" для этого находится в hijack_syscalls() метод в security.c, и devil-in-the-details волшебство позади него находится в hijacks.c файл.

Вы, вероятно, найдете функцию (функции), в которую Вы захотите сцепиться в fs/proc/ каталог исходного кода ядра Linux. Следует иметь в виду, что Linux не обеспечивает стабильный ABI, таким образом, Ваш код должен будет измениться несколько для получения его работающий в различных версиях ядра Linux. Кроме того, имейте в виду необходимость в полном корневом доступе к машине, чтобы смочь ввести этот код.

ОБНОВЛЕНИЕ:

Если Вы переноситесь pid_getattr символ ядра с некоторым дополнительным кодом к он очень легок сделать это. Я недавно добавил что-то, что скрывает процессы к вышеупомянутому модулю ядра:

https://github.com/cormander/tpe-lkm/commit/899bd5d74764af343d5fee1d8058756ddc63bfe3

Вы могли сделать что-то подобное путем создания процессов определенного пользователя или группы не видимыми любым кроме корня и того пользователя. Выполнение его именем процесса немного более сложно, но возможно. Взгляните на exe_from_mm() функция. Обратите внимание, что могут быть последствия производительности использования его в pid_getattr.

5
25.06.2011, 16:17
3 ответа

Я не думаю, что существует способ перечислить параметры компиляции, но что-то как поддержка SELinux должно быть очевидно из библиотек, против которых связан исполняемый файл:

$ ldd /usr/bin/ssh /usr/sbin/sshd | egrep '^/|selinux'
/usr/bin/ssh:
/usr/sbin/sshd:
        libselinux.so.1 => /lib/libselinux.so.1 (0x00007fbbfed5f000)

Похож sshd имеет поддержку SELinux, но ssh не (почему был бы он?) в моей системе.

Другая вещь, которую Вы могли проверить (например, в случае, если у Вас был статический двоичный файл) состоит в том, если там двоичные ссылки некоторый SELinux функционируют.

strings /usr/sbin/sshd |grep -i selinux
2
27.01.2020, 20:41
  • 1
    Спасибо за напоминание о lld. Так как sshd для входящих соединений, он таким образом должен смочь к доменам SELinux перехода для пользователей, входящих в систему. SSH для сравнения для исходящих соединений и не должен был бы взаимодействовать с самой конфигурацией SELinux (если Вы ssh себе, в этом случае sshd не управляет переходами SELinux так или иначе). –  theconnorpower 25.06.2011, 15:55

Я думаю, что Вы, возможно, должны посмотреть на упаковочную систему для своего дистрибутива и найти опции, с которыми это компилирует. Некоторые программы могут произвести свои флаги компиляции, но я не знаю о такой опции для sshd.

1
27.01.2020, 20:41

Если Вы устанавливаете пакеты распределения по умолчанию, и

  • распределением является базирующийся Debian, посмотрите на debian/rules файл (в основном Make-файл) в источнике пакета для параметров конфигурации.

  • распределение является базирующимся об/мин, посмотрите на параметры компиляции, вероятно, в исходном файле спецификации об/мин.

Для пользовательских дистрибутивов как хинду, где нет никаких опций компиляций по умолчанию, это более трудно, и я говорил бы с человеком, который создал пакет, и также посмотрите на ldd поскольку люди предложили.

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

1
27.01.2020, 20:41

Теги

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