[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: