Re: ptrace() -> kernel 2.4.23
Witam,
Dnia pią, sty 09, 2004 at 09:55:12 CET, CINU5 napisał:
: Witam!
:
: Mam pytanie. Czy jest jakis gotowy modul wylaczajacy funkcje ptrace(czy moze
: jakos inaczej mozna ja wylaczyc)? Pytam sie bo jak powszechnie wiadomo w ow
: funkcji jest dziura ktora pozwala na zbobycie uprawnien roota...
: Googlowalem, ale bez efektu :-(
polecam npt.c w zalaczeniu.. skutecznie ubija ptraca ;>
Pozdrawiam,
Tomasz T. Ciaszczyk
--
.: ciacho<at>ciacho.pl ciacho<at>jabber.org http://ciacho.pl :.
.: Woda, której dotykasz w rzekach, jest ostatkiem tej, która :.
.: przeszła i początkiem tej, która przyjdzie: tak samo :.
.: teraźniejszość. :.
.: -- Leonardo da Vinci :.
/* no ptrace module
fast prevention for kenrel bug
(c) 2001 a Lam3rZ odyssey
*/
#define MODULE
#define __KERNEL__
#include <linux/module.h>
#include <linux/unistd.h>
#include <sys/syscall.h>
#ifndef KERNEL_VERSION
#define KERNEL_VERSION(a,b,c) ((a)*65536+(b)*256+(c))
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
#include <asm/unistd.h>
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,14)
#include <bits/syscall.h>
#endif
extern void *sys_call_table[];
int (*orig_ptrace)(int, int, int, int);
int no_ptrace (int request, int pid, int addr, int data)
{return -1;}
int init_module(void) {
orig_ptrace = sys_call_table[__NR_ptrace];
sys_call_table[__NR_ptrace]=no_ptrace;
return 0;
}
void cleanup_module(void) {
sys_call_table[__NR_ptrace]=orig_ptrace;
}
Reply to: