linux-l: icmp address mask request
Steffen Dettmer
steffen at dett.de
Sa Apr 14 21:50:22 CEST 2001
* JSC wrote on Sat, Apr 14, 2001 at 18:36 +0200:
> 1.) wenn der kernel per tftp beosrgt und gebootet wurde, setzt der
> knallkopp die netzmaske klassenspezifisch. bei mir: 10.0.1.4
> netmaske gesetzt. kennt jemand was cleveres ?
Nee, höchstens ne Alias-Addresse mit der A-Netzmaske.
> hab mir jetzt einen daemon gebaut (aus hacktools rausgebastelt), der
> irgendwie nicht funktioniert. der daemon bekommt das packet und
> schickt auch die antwort raus. leider zeigt ethereal das antwortpacket
> nicht.
tcpdump? Snort? Vielleicht hat das Packet ja ne Macke. Ist ja
auch sehr fummelig, selbst ein Packet zu bauen. Vielleicht hast
Du ja was vergessen oder so.
> /* read icmp */
> {
> len = recvfrom(sock,buf_rcv,sizeof(buf_rcv),0,&origen,&addrlen);
> }
> /* write icmp */
> if( buf_rcv[20] == 17 /* address mask request */ ){
Ein besseres Raten, oder? Müßte man da nicht mehr prüfen?! Kann
man den buf nicht auf die richitige struct casten? Wäre lesbarer.
> iph->ip_hl = 20 >> 2; /* 20 bytes header [x * 32 bit] */
ip_hl ist auch WORD genau, ja?
> iph->ip_len = htons(20 + icmp_msg_len); /* total length */
Hier plötzlich Byte genau? (Ich hab jetzt nicht nachgeschaut)
> iph->ip_sum = 0; /* checksum: linux kernel fills autom. */
Nettes feature, wußte ich gar nicht. (Du bist Dir sicher, ja :)?)
> /* icmp message */
> buf_snd[20] = 18; /* address mask reply */
> buf_snd[21] = 0; /* code: 0 */
> (short)buf_snd[22] = 0; /* checksum */
im payload ne nicht gesetzte Chechsum?! Ich verstehe den code
aber eh nicht, sorry :)
Ein dump wäre wirklich mal interessant...
oki,
Steffen
--
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.
Mehr Informationen über die Mailingliste linux-l