Старый 12.02.2012, 07:32   #1
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 352
Репутация: 105
По умолчанию Закрепление в системе

Не знаю есть ли смысл общаться на эту тему в открытом форуме вам, но все же хотелось бы увидеть ваши наработки или идеи по закреплению в системе после получения шела/рута.

ЗЫ Только что лазил по конфигам апача и пришла идея прятать бэки в папке /icons/ которая алиас у апача:

Код:
#    Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
но данный алиас может работать не для всех доменов на сервере, ПХП код исполняется, но запись в диру только от рута.

Последний раз редактировалось b3; 27.12.2012 в 17:01..
b3 вне форума   Ответить с цитированием
Старый 15.02.2012, 00:13   #2
yesday
 
Регистрация: 28.11.2011
Сообщений: 36
Репутация: 12
По умолчанию

Ну, начнём с того, что ни один способ не гарантирует 100% закрепления (при наличии толковых админов, конечно).
Ядерный руткит - попробуй найди под последние ядра
Юзермодный руткит - первое что сделает любой толковый админ при малейшем палеве - это проверит /etc/{ld.so*,modules} и т.п. + /proc/modules
Пересборка бинарей - на rpm-based дистрибах rpm -V ... мигом вас спалит, для deb-based всё немного проще, по-умолчанию пакеты верифицировать в них нельзя.

Как мне кажется, наиболее надёжный способ - сборка своей РПМки/дебки с патченым SSH (к примеру). Тогда сервак сойдёт только после переустановки ОС/апгрейда пакета. От апгрейда пакета может спасти высокий номер версии (чтобы пакетный менеджер думал что у нас стоит самая распоследняя версия, и не трогал).
yesday вне форума   Ответить с цитированием
Старый 15.02.2012, 22:44   #3
chupakabra
 
Аватар для chupakabra
 
Регистрация: 09.12.2011
Сообщений: 47
Репутация: 5
По умолчанию

Цитата:
Ядерный руткит - попробуй найди под последние ядра
Последние ядра ничем особо выдающимся не отличаются от 2.6.*. Имея мозг и прямые руки, хотя бы можно доделать любой пабликовый LKM-руткит.

Цитата:
Как мне кажется, наиболее надёжный способ - сборка своей РПМки/дебки с патченым SSH (к примеру). Тогда сервак сойдёт только после переустановки ОС/апгрейда пакета. От апгрейда пакета может спасти высокий номер версии (чтобы пакетный менеджер думал что у нас стоит самая распоследняя версия, и не трогал).
Хороший способ
chupakabra вне форума   Ответить с цитированием
Старый 15.02.2012, 23:47   #4
yesday
 
Регистрация: 28.11.2011
Сообщений: 36
Репутация: 12
По умолчанию

Цитата:
Сообщение от chupakabra Посмотреть сообщение
Последние ядра ничем особо выдающимся не отличаются от 2.6.*. Имея мозг и прямые руки, хотя бы можно доделать любой пабликовый LKM-руткит.
Тру. Но я на собственном опыте испытал - 2.6.18 и ниже - всё ок.
После .18 разработчики заныкали адрес syscall_table_entry так, что фиг найдёшь (это что касается перехвата системных вызовов).
Если просто бекдор в ядро встроить - то тут да, поле непаханое.

Ещё как вариант - пересобрать initrd и встроить какойнить dropbear+busybox прям в него. После ближайшего ребута - вуаля, логинься-работай, и без палева.
yesday вне форума   Ответить с цитированием
Старый 16.02.2012, 14:02   #5
SynQ
 
Регистрация: 11.07.2010
Сообщений: 953
Репутация: 352
По умолчанию

Чтобы юзать LKM (серьезный) нужно самому разбираться в коде ядра. Если к кому-то в руки попадет свежий лкм-руткит, то он недолго будет сохранять актуальность, ибо нужна постоянная доработка.

Нестабильный kernel API - это головняк для всех драйверописателей, но в тоже время хорошо влияет на безопасность ядра, если его обновлять.
SynQ вне форума   Ответить с цитированием
Старый 16.02.2012, 21:22   #6
yesday
 
Регистрация: 28.11.2011
Сообщений: 36
Репутация: 12
По умолчанию

Цитата:
Сообщение от SynQ Посмотреть сообщение
Чтобы юзать LKM (серьезный) нужно самому разбираться в коде ядра. Если к кому-то в руки попадет свежий лкм-руткит, то он недолго будет сохранять актуальность, ибо нужна постоянная доработка.
Что понимать под "серьёзный LKM"? Принцип то везде один.
Проблем то по большому счёту - две.
1. Собрать LKM (все же помнят анекдот про "вирус для Линукс"?)
2. Вовремя обновить модуль, когда в системе обновится ядро.

теория mode on

Решение первой проблемы - прямые руки и чуть понимания как работают модули ядра в linux.
Со вторым чуть сложнее, но тоже реализуемо - берём все боль-мень актуальные дистрибутивы (Fedora 13-16, RHEL/CentOS 5,6 , Debian 5,6), смотрим, какие ядра идут с дистрибами. Рожаем гденить у себя виртуалку, и на ней ставим все возможные ядра, под каждое собираем свой модуль. Далее, следим за обновлением дистрибутивных ядер - и вовремя апдейтим модуль (в сам модуль можно встроить перехват события "ставится новое ядро, версия такая-то", и по этому событию стягивать откуда надо наш модуль).

теория mode off

В реальности - всё зависит от целей. Ответив на вопрос "Зачем мне закрепляться в системе" -- метод придёт сам собой.
yesday вне форума   Ответить с цитированием
Старый 17.02.2012, 00:57   #7
16bit
 
Регистрация: 16.06.2011
Сообщений: 66
Репутация: 9
По умолчанию

возможно,SynQ имел ввиду сложности отладки.
есть некоторые нюансы,которые обычно вылазят на серверах с нестандартной конфигурацией.
Отлаживать такие штуки ой как не просто,так как для правильной отладки нужно как минимум иметь под рукой подобное железо.
16bit вне форума   Ответить с цитированием
Старый 17.02.2012, 01:20   #8
yesday
 
Регистрация: 28.11.2011
Сообщений: 36
Репутация: 12
По умолчанию

Ну, LKM-киты обычно не сильно зависят от именно конфига железа.
Я например VirtualBox юзаю - поднял из темплейта систему, накатил нужное ядро - и играешься до посинения. Ну для этого, как и сказал SynQ, нужно понимание процессов, которые происходят в ядре при работе.
yesday вне форума   Ответить с цитированием
Старый 17.02.2012, 09:06   #9
SynQ
 
Регистрация: 11.07.2010
Сообщений: 953
Репутация: 352
По умолчанию

Цитата:
Сообщение от yesday Посмотреть сообщение
Со вторым чуть сложнее, но тоже реализуемо - берём все боль-мень актуальные дистрибутивы (Fedora 13-16, RHEL/CentOS 5,6 , Debian 5,6), смотрим, какие ядра идут с дистрибами. Рожаем гденить у себя виртуалку, и на ней ставим все возможные ядра, под каждое собираем свой модуль.
Все так, особенно для дистрибутивов на stable версии ядра (rhel/centos), но там где надо адаптировать лкм под версии, на которых он не тестировался, может быть очень много проблем, например для сетевой части - структуры могут меняться, где-то можно не знать, что теперь надо ставить мутекс или спинлок, из-за этого у себя в виртуалке может и будет хорошо работать, а на сервере будет необъяснимо падать раз в неделю или при большом траффике. И чем сложнее модуль ядра (для перехвата одного сисколла по-моему нет смысла ставить лкм), тем больше таких мест. Поэтому если нет хорошего понимания внутреннего устройства ядра, лкм по большей части дохлый номер. Это на мой взгляд.

Цитата:
В реальности - всё зависит от целей.
Угу, на мой взгляд, лкм - точечный способ для очень важных целей.
SynQ вне форума   Ответить с цитированием
Старый 19.02.2012, 11:56   #10
chupakabra
 
Аватар для chupakabra
 
Регистрация: 09.12.2011
Сообщений: 47
Репутация: 5
По умолчанию

Цитата:
Все так, особенно для дистрибутивов на stable версии ядра (rhel/centos), но там где надо адаптировать лкм под версии, на которых он не тестировался, может быть очень много проблем, например для сетевой части - структуры могут меняться, где-то можно не знать, что теперь надо ставить мутекс или спинлок, из-за этого у себя в виртуалке может и будет хорошо работать, а на сервере будет необъяснимо падать раз в неделю или при большом траффике. И чем сложнее модуль ядра (для перехвата одного сисколла по-моему нет смысла ставить лкм), тем больше таких мест. Поэтому если нет хорошего понимания внутреннего устройства ядра, лкм по большей части дохлый номер. Это на мой взгляд.
Согласен полностью, да нужно под каждую версию ядра тестировать и дописывать. Слава богу, Open Source, ничего реверсить не нужно, всё открыто и на блюдечке, просто много кропотливой работы + тестирование. Я сейчас этим занимаюсь в свободное время.
chupakabra вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot