Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ARP auf Bastion Hosts abschalten?

14 views
Skip to first unread message

Markus Domer

unread,
May 8, 2002, 5:04:51 PM5/8/02
to
Hallo Newsgroup,

ich bin beim stöbern über einen Artikel gestossen der dies behauptet.
Da im Artikel nichts weiter dazu stand würde ich gerne wissen warum
genau man das macht (mögliche Angriffe) und ob das für alle Bastion
Hosts (also auch IP-Router) gilt. Zudem, schaltet man ARP wirklich
_komplett_ ab? Wie funktioniert dann die Kommunikation mit Ethernet!?

Vielen Dank.

Haluk

unread,
May 8, 2002, 5:32:28 PM5/8/02
to


Weil du es gefragt hast, habe ich ARP abgeschaltet.

Abgeschaltet mit Xteq 6.1:

Network-->TCP-IP-->ARP Packets-->[x]Disable sending ARP packet

Alles funktioniert wie vorher. Ich bemerke keine Nachteile. Wie die
Kommunikation funktioniert weiß ich nicht genau. Weil ich immer Ärger von
anderen bekomme, sag ich diesmal nichts dazu.

--
mfg Haluk
Windows 2000 rocks!.

Denis Jedig

unread,
May 8, 2002, 5:54:07 PM5/8/02
to
Markus Domer <mdo...@web.de> wrote:

> ich bin beim stöbern über einen Artikel gestossen der dies behauptet.

Artikelreferenz wäre nicht schlecht.

> Da im Artikel nichts weiter dazu stand würde ich gerne wissen warum
> genau man das macht (mögliche Angriffe) und ob das für alle Bastion
> Hosts (also auch IP-Router) gilt.

Man macht das, weil sonst wer versuchen könnte durch ARP-Spoofing den
Datenverkehr auf seine Maschine zu lenken und damit z.B. man-in-the-middle
Attacken durchzuführen oder adressbasierte Paketfilterregeln zu umgehen.

> Zudem, schaltet man ARP wirklich
> _komplett_ ab? Wie funktioniert dann die Kommunikation mit Ethernet!?

Komplett? Hm. Es werden dann zumindest im "Idealfall" keine ARP-Pakete mehr
ausgetauscht. Die ARP-Tabellen werden per Hand mit statischen Einträgen
gefüllt.

--
Denis Jedig
syneticon GbR

Felix von Leitner

unread,
May 8, 2002, 9:01:06 PM5/8/02
to
Thus spake Markus Domer (mdo...@web.de):

> ich bin beim stöbern über einen Artikel gestossen der dies behauptet.

Was, daß der Autor ARP auf Bastion Hosts abschaltet?
Das glaube ich sogar. Es laufen viele Deppen herum.

> Da im Artikel nichts weiter dazu stand würde ich gerne wissen warum
> genau man das macht

Das ist ein Gerücht, daß "man" das macht. Ich mache das z.B. nicht.

> (mögliche Angriffe) und ob das für alle Bastion Hosts (also auch
> IP-Router) gilt. Zudem, schaltet man ARP wirklich _komplett_ ab? Wie
> funktioniert dann die Kommunikation mit Ethernet!?

Man kann MAC-Adressen auch statisch konfigurieren. Nur hilft das bei
einigen Betriebssystemsimulationen aus Redmond nichts gegen
ARP-Spoofing. Aber zum ARP-Spoofing müßte einen Host in der DMZ oder
einen der Router kompromittiert haben, d.h. dann ist sozusagen eh zu
spät. Und da die DMZ-Hosts sich natürlich eh nicht gegenseitig
vertrauen, ist da keine wirklich Bedrohung vorhanden.

Du bist einem Scharlatan aufgesessen.

Felix

--
Bildung ist die Schlüsselressource des 21. Jahrhundert

Beste Ansicht: Internet Explorer 5.5 bei 800x600 oder höher...
--http://www.syneticon.de/ demonstriert, wie wichtig Bildung ist.

Rainer Weikusat

unread,
May 9, 2002, 4:06:33 AM5/9/02
to
Felix von Leitner <usenet-...@fefe.de> writes:
> > (mögliche Angriffe) und ob das für alle Bastion Hosts (also auch
> > IP-Router) gilt. Zudem, schaltet man ARP wirklich _komplett_ ab? Wie
> > funktioniert dann die Kommunikation mit Ethernet!?
>
> Man kann MAC-Adressen auch statisch konfigurieren. Nur hilft das bei
> einigen Betriebssystemsimulationen aus Redmond nichts gegen
> ARP-Spoofing. Aber zum ARP-Spoofing müßte einen Host in der DMZ oder
> einen der Router kompromittiert haben,

Für 'spoofing' brauche ich ein shared medium 'beliebiger Form'
(respektive einen durchgänigen gemeinsamen Namenraum). Falls das Netz
auf der Kabelebene durch 'irgendwelche Dinger' getrennt ist, wird es
mit spoofing 'etwas schwierig', weil man zwangsweise den anderen Host
ganz oder teilweise vom Netz trennt (weil der switch keine frames mehr
an ihn forwardet), dh man muß auch dessen Funktion übernehmen, sonst
dürfte das schnell auffallen.

... und es muß dann noch 'etwas interessantes' als eingehender traffic
zu erwarten sein.

Denis Jedig

unread,
May 9, 2002, 4:39:33 AM5/9/02
to
Felix von Leitner <usenet-...@fefe.de> wrote:

> ARP-Spoofing. Aber zum ARP-Spoofing müßte einen Host in der DMZ oder
> einen der Router kompromittiert haben, d.h. dann ist sozusagen eh zu
> spät. Und da die DMZ-Hosts sich natürlich eh nicht gegenseitig
> vertrauen, ist da keine wirklich Bedrohung vorhanden.

Hm? Warum zu spät? Gerade damit es dann nicht zu spät ist, stehen die Hosts
doch in der DMZ.
Du könntest mittels ARP-Spoofing die Pakete anderer DMZ-Hosts zum Router
durch den compromised host laufen lassen. Wenn du dann beispielsweise ein
man-in-the-middle bei einem http/https-server hinkriegst (brauchst ja nur
irgendein "gültiges" Zertifikat ausgestellt auf den zum Webserver gehörigen
Domain-Namen), hast du entsprechend auch den "verschlüsselten" Datenverkehr
abgefangen und ggf. modifiziert.

> Du bist einem Scharlatan aufgesessen.

Dein Vorschlag zum Problem? Natürlich wird man versuchen, jeden einzelnen der
Hosts im DMZ so sicher wie möglich zu gestalten, aber wenn es dann trotz
Vorsicht passiert ist, hast du nicht allzuviele Möglichkeiten, das zu
verhindern.

Jens Hoffmann

unread,
May 9, 2002, 8:26:23 AM5/9/02
to
Hi,

Haluk <Ho...@gmx.de> wrote:
>Weil du es gefragt hast, habe ich ARP abgeschaltet.

Du weiss echt nicht, was Du da tust, oder?

>Abgeschaltet mit Xteq 6.1:
>
>Network-->TCP-IP-->ARP Packets-->[x]Disable sending ARP packet

Schalte Deinen Rechner mal so lange aus, bis alle relevanten
ARP-Caches leer sind. Anschliessend versuche irgendeine Kommunikatiom
aufzubauen.

>Alles funktioniert wie vorher. Ich bemerke keine Nachteile. Wie die
>Kommunikation funktioniert weiß ich nicht genau.

ARP ist dazu da, herauszufinden, welche Netzwerkkarte, welche IP-Adresse
bedienen mag.

"Hallo, wer hat 192.168.0.1?"
"Ich, Ich, Ich, habe MAC 00-10-db-16-59-30"

was passiert wohl, wenn Du die Frage einfach nicht mehr beantwortest?

> Weil ich immer Ärger von
>anderen bekomme, sag ich diesmal nichts dazu.

Du bekommst keinen Aerger, den machst Dir brav selber.
Du bekommst mehr oder weniger deutlcihe Hinweise, dass
Du ein paar Buecher lesen musst, bevor Du babbelst oder gar Rechner
konfigurierst.

Gruss,
Jens

Haluk

unread,
May 9, 2002, 8:43:30 AM5/9/02
to
> ARP ist dazu da, herauszufinden, welche Netzwerkkarte, welche IP-Adresse
> bedienen mag.
>
> "Hallo, wer hat 192.168.0.1?"
> "Ich, Ich, Ich, habe MAC 00-10-db-16-59-30"
>
> was passiert wohl, wenn Du die Frage einfach nicht mehr beantwortest?

Meinst du damit, das Intranet funktioniert danach nicht mehr?

--
mfg Haluk
Windows 2000 rocks!

Rainer Weikusat

unread,
May 9, 2002, 9:04:26 AM5/9/02
to
Denis Jedig <d...@syneticon.de> writes:
> Felix von Leitner <usenet-...@fefe.de> wrote:
> > ARP-Spoofing. Aber zum ARP-Spoofing müßte einen Host in der DMZ oder
> > einen der Router kompromittiert haben, d.h. dann ist sozusagen eh zu
> > spät. Und da die DMZ-Hosts sich natürlich eh nicht gegenseitig
> > vertrauen, ist da keine wirklich Bedrohung vorhanden.
>
> Hm? Warum zu spät? Gerade damit es dann nicht zu spät ist, stehen die Hosts
> doch in der DMZ. Du könntest mittels ARP-Spoofing die Pakete anderer
> DMZ-Hosts zum Router durch den compromised host laufen lassen.

Dazu muß ich die Router und die Host-IP übernehmen, unter
periodischem race-Druck 'behalten' (ich muß immer zuerst oder immer
zuletzt antworten) und gleichzeitig für die komplette DMZ nach außen
hin routen, wobei ich dann ggf noch eine Mehrwege-Netz behandeln muß,
weil unterschiedliche Hosts, einschl. Router, mich für
unterschiedliche Rechner halten.

Ohne angepaßten Kernel wird das nicht gehen.

> Wenn du dann beispielsweise ein man-in-the-middle bei einem
> http/https-server hinkriegst (brauchst ja nur irgendein "gültiges"
> Zertifikat ausgestellt auf den zum Webserver gehörigen
> Domain-Namen), hast du entsprechend auch den "verschlüsselten"
> Datenverkehr abgefangen und ggf. modifiziert.

Es dürfte erheblich einfacher und billiger sein, 'mit einem geladenen
Revolver' ins Büro zu kommen und 'höflich zu fragen'.

Jens Hoffmann

unread,
May 9, 2002, 9:44:32 AM5/9/02
to
Hi,

Haluk <Ho...@gmx.de> wrote:
>> was passiert wohl, wenn Du die Frage einfach nicht mehr beantwortest?
>
>Meinst du damit, das Intranet funktioniert danach nicht mehr?

Nein, der Rechner, der keine ARP-Requests mehr beantwortet
ist ueber LAN nicht mehr erreichbar.

Gruss,
Jens

Denis Jedig

unread,
May 9, 2002, 9:52:23 AM5/9/02
to
Rainer Weikusat <weik...@students.uni-mainz.de> wrote:

>> Hosts doch in der DMZ. Du könntest mittels ARP-Spoofing die Pakete
>> anderer DMZ-Hosts zum Router durch den compromised host laufen lassen.
>
> Dazu muß ich die Router und die Host-IP übernehmen, unter

> periodischem race-Druck 'behalten' [...]


> Ohne angepaßten Kernel wird das nicht gehen.

> [...]


> Es dürfte erheblich einfacher und billiger sein, 'mit einem geladenen
> Revolver' ins Büro zu kommen und 'höflich zu fragen'.

Die Bedingungen für das Szenario mir klar.

Aber warum ist "angepasster Kernel" in diesem Fall eine größere Hürde, als
"Bullenalarm"? Sind Angriffe aus dem Netz nicht deshalb beliebt, weil der
Angreifer bei der Durchführung nicht physisch gefährdet ist und ggf. sogar
völlig unbemerkt bleibt?

Es wird sicher nicht in jedem Fall und für jedes DMZ-Netz relevant sein -
vielleicht hat man in den Fällen, wo es relevant wird, auch grundsätzlich
am Design was falsch gemacht, aber trotz allem wäre es in diesen Fällen
doch eine Lösung, die man in Betracht ziehen kann, oder?

Bernd-Ulrich Adrigam

unread,
May 9, 2002, 9:56:03 AM5/9/02
to
"Jens Hoffmann" <j...@bofh.de> schrieb

> Nein, der Rechner, der keine ARP-Requests mehr beantwortet
> ist ueber LAN nicht mehr erreichbar.

Hi,

damit hat man ja endlich eine Alternative zu http://www.knippex.de/! ;-))

Bernd-Ulrich Adrigam


Haluk

unread,
May 9, 2002, 10:02:21 AM5/9/02
to
> >Meinst du damit, das Intranet funktioniert danach nicht mehr?
>
> Nein, der Rechner, der keine ARP-Requests mehr beantwortet
> ist ueber LAN nicht mehr erreichbar.


Dann ist das Bastions-Prinzip (Threadanfang) richtig?

Jens Hoffmann

unread,
May 9, 2002, 5:48:20 PM5/9/02
to
Hi,

Haluk <Ho...@gmx.de> wrote:
>
>Dann ist das Bastions-Prinzip (Threadanfang) richtig?

Aus a folgt b. Aus c folgt d. Folgt d aus a?

Gruss,
Jens

PS: Nein, im allgemeinen sind Basteleien an ARP nix, was man fuer einen
ordentlichen Bastionhost braucht.
PPS: Hast Du denn beim Abschalten von ARP, deine MAC hart bei allen
relevanten Systemen eingetragen?

Jens Hoffmann

unread,
May 9, 2002, 5:49:26 PM5/9/02
to
Hi,

Thorsten Glaser <ty...@netcologne.de> wrote:
>man static ARP route

Schau was haluk gemacht hat. Da stand nix von statischen ARP-table eintraegen.
BTW: Was soll eine statische ARP-Route sein?

Gruss,
Jens

Haluk

unread,
May 9, 2002, 5:59:56 PM5/9/02
to
Hallo,

> PS: Nein, im allgemeinen sind Basteleien an ARP nix, was man fuer einen
> ordentlichen Bastionhost braucht.

Da gebe ich dir Recht. Aber es ist ein weiterer Baustein in Richtung mehr
Sicherheit.

> PPS: Hast Du denn beim Abschalten von ARP, deine MAC hart bei allen
> relevanten Systemen eingetragen?

Auch das hast du richtig vermutet. Wir haben hier ein Intranet einer
Spezialfirma (Firma Engel aus Wuppertal). Um das Netz benutzen zu können,
muß die MAC der Netzwerkkarte in bestimmte Tabellen eingetragen werden.
Switches überprüfen die MAC. Vielleicht ist das der Grund, warum mein System
noch Netzzugang hat.

Felix von Leitner

unread,
May 9, 2002, 9:03:23 PM5/9/02
to
Thus spake Rainer Weikusat (weik...@students.uni-mainz.de):

> Für 'spoofing' brauche ich ein shared medium 'beliebiger Form'
> (respektive einen durchgänigen gemeinsamen Namenraum). Falls das Netz
> auf der Kabelebene durch 'irgendwelche Dinger' getrennt ist, wird es
> mit spoofing 'etwas schwierig', weil man zwangsweise den anderen Host
> ganz oder teilweise vom Netz trennt (weil der switch keine frames mehr
> an ihn forwardet), dh man muß auch dessen Funktion übernehmen, sonst
> dürfte das schnell auffallen.

Du willst dir mal dringend http://www.fefe.de/switch/ durchlesen.

*seufz*

Felix

--
Don't go around saying the world owes you a living; the world owes you
nothing, it was here first.
--Mark Twain (1835 - 1910)

Felix von Leitner

unread,
May 9, 2002, 9:10:44 PM5/9/02
to
Thus spake Denis Jedig (d...@syneticon.de):

> > ARP-Spoofing. Aber zum ARP-Spoofing müßte einen Host in der DMZ oder
> > einen der Router kompromittiert haben, d.h. dann ist sozusagen eh zu
> > spät. Und da die DMZ-Hosts sich natürlich eh nicht gegenseitig
> > vertrauen, ist da keine wirklich Bedrohung vorhanden.
> Hm? Warum zu spät? Gerade damit es dann nicht zu spät ist, stehen die Hosts
> doch in der DMZ.

Sehr witzig. Du stellst einen Mailserver in die DMZ, jemand bricht ein,
er kann deine Mail lesen.

Du stellst einen Webserver in die DMZ, jemand bricht ein, er kann die
Transaktionen deiner Kunden sniffen und falsche Webseiten an sie
ausliefern.

Wenn das deiner Meinung nach nicht "zu spät" ist, dann müssen im
internen Netz derartig unglaublich wichtige Daten stecken, daß sich die
Frage stellt, wieso du sie überhaupt mit dem Internet verbindest.

> Du könntest mittels ARP-Spoofing die Pakete anderer DMZ-Hosts zum Router
> durch den compromised host laufen lassen. Wenn du dann beispielsweise ein
> man-in-the-middle bei einem http/https-server hinkriegst (brauchst ja nur
> irgendein "gültiges" Zertifikat ausgestellt auf den zum Webserver gehörigen
> Domain-Namen), hast du entsprechend auch den "verschlüsselten" Datenverkehr
> abgefangen und ggf. modifiziert.

Außerdem kannst du in typischen Setups die Datenbank-Transaktionen
inklusive Paßwörtern sniffen und so einmal die Kundendatenbank dumpen
und mitnehmen.

> > Du bist einem Scharlatan aufgesessen.
> Dein Vorschlag zum Problem? Natürlich wird man versuchen, jeden einzelnen der
> Hosts im DMZ so sicher wie möglich zu gestalten, aber wenn es dann trotz
> Vorsicht passiert ist, hast du nicht allzuviele Möglichkeiten, das zu
> verhindern.

"das"? Was? Erst sagst du, es gäbe kein Problem, und dann kann ich es
nicht verhindern? Einige dich mal.

Felix

Felix von Leitner

unread,
May 9, 2002, 9:14:37 PM5/9/02
to
Thus spake Thorsten Glaser (ty...@netcologne.de):
> man static ARP route

Thorsten, mußt du eigentlich in _jeder_ Newsgroup Müll posten?
Reicht es nicht, wenn du dich in dasr lächerlich machst?

"ARP route", selten so gelacht.

Und jetzt nimm dein PINE, dein OpenBSE und dein Expertenwissen und troll
dich zu Haluk.

Jens Hoffmann

unread,
May 10, 2002, 2:45:41 AM5/10/02
to
Hi,

Haluk <Ho...@gmx.de> wrote:
>Da gebe ich dir Recht. Aber es ist ein weiterer Baustein in Richtung mehr
>Sicherheit.

Nicht wirklich.

>> PPS: Hast Du denn beim Abschalten von ARP, deine MAC hart bei allen
>> relevanten Systemen eingetragen?
>
>Auch das hast du richtig vermutet. Wir haben hier ein Intranet einer
>Spezialfirma (Firma Engel aus Wuppertal). Um das Netz benutzen zu können,
>muß die MAC der Netzwerkkarte in bestimmte Tabellen eingetragen werden.

Aber nur die MAC. Da ist offensichtlich "port-security" aktiviert.
Will heissen, auf Layer 2 werden unbekannte MACs gar nicht erst akzeptiert.

Es wuerde mich verblueffen, wenn die IP-Adressen auch auf den switches
eingetragen sind.

So, das war die Seite Richtung Internet. Was ist mit den anderen Interfacen
Deines Bastionrechners?

>Switches überprüfen die MAC. Vielleicht ist das der Grund, warum mein System
>noch Netzzugang hat.

Nein. Das liegt am ARP-Cache.

Gruss,
Jens

Haluk

unread,
May 10, 2002, 2:52:56 AM5/10/02
to
> So, das war die Seite Richtung Internet. Was ist mit den anderen
Interfacen
> Deines Bastionrechners?


Sind alle zu.

Rainer Weikusat

unread,
May 10, 2002, 3:55:43 AM5/10/02
to
Felix von Leitner <usenet-...@fefe.de> writes:
> Du willst dir mal dringend http://www.fefe.de/switch/ durchlesen.

Sag mal, Felix, gibt es etwas an dem Worten 'Kabel' und 'Meßgerät',
daß Dir inhärent unverständlich ist?

1. using the administrative access of the switch. Do not expose the
telnet port on the switch! ACLs and passwords are not
sufficient. Use the serial console.

Das ist sicher ein sehr guter Ratschlag, nur ohne praktischen Wert,
denn ich bin dann entweder sehr flott zu Fuß oder ich habe ein zweites
Netz gebaut, weil es mit dem ersten 'irgendwie Probleme' gab. Und hier
im Haus gibt es nur ein winziges Netz, dh wir haben nur elf davon. Das
hier außerdem einen unkontrollierten Wireless-Zugang gibt, 'ist halt
Pech'.

2. sending several thousand packets from unused MAC
addresses. Most switches will then suffer an MAC table
overflow and switch to hub mode. dsniff contains a tool called
macof that does just that.

Was passiert dann schönes? Das Trafficvolumen steigt an, vermutlich
erheblich. Als erstes fällt mir dann auf, das 'etwas' scheinbar meinen
Rechner mit broadcasts zuballert. 'Irgendwann später' hat 'jemand'
dann auffällig viele neue Freunde. In der Zwischenzeit hat er
vielleicht ein paar root-Berechtigungen und ähnlichen Krimskrams
eingesammelt, die hier ohnehin sehr lose herumliegen, mit denen man
auch nicht viel mehr anfangen kann, 'als all die anderen auch',
erweitert um das Zusatzproblem, das er/sie/es wirklich nicht auffallen
sollte.

3. sending spoofed ARP packets. With ARP spoofing you can tell host
A that host B's MAC address is foo and then you tell host B that
host A's MAC is bar and then you sniff for packets to foo and
bar, relaying them back to the original proper MAC addresses of
the hosts whose communication you want to intercept. My
implementation of attack is this called arprelay.

... und wenn der liebe Gott immer nett zu uns ist, klappts auch mit
dem timing. Zuverlässig kannst Du das nur durch flooding erzielen,
denn der Stack im Kernel wird 'im Schnitt' weniger Zeit brauchen als
Du. Das ist ein Problem für BSD und Konsorten, weil die nämlich jede
ARP-Antwort honorieren und Linux bloß die erste. Das wiederum
bedeutet, das nicht zwei Hosts über Dich relayen möchten, sondern 'n',
wobei 'n' (ausreichend) nicht-deterministisch von den physikalischen
Eigenschaften des Netzes selber abhängt, aka breakdown.

'Nun gut'. Weil mir von diesen Dingern immer so furchtbar schlecht
wird: Im folgenden eine kurze Exkursion, betitelt 'Ein Compiler
ist kein Assembler'.

Wir haben das hier:

void byte_copy(to,n,from)
register char *to;
register unsigned int n;
register char *from;
{
for (;;) {
if (!n) return; *to++ = *from++; --n;
if (!n) return; *to++ = *from++; --n;
if (!n) return; *to++ = *from++; --n;
if (!n) return; *to++ = *from++; --n;
}
}

Den K&R-Syntaxmüll lasse ich mal außen vor. Unoptimiert sieht das auf
x86 so aus:

-------------------------------
.file "byte_copy.c"
.version "01.01"
gcc2_compiled.:
.text
.align 4
.globl byte_copy
.type byte_copy,@function
byte_copy:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl 8(%ebp),%eax
movl 12(%ebp),%edx
movl 16(%ebp),%ecx
.p2align 4,,7
.L3:
testl %edx,%edx
jne .L6
jmp .L2
.p2align 4,,7
.L6:
movb (%ecx),%bl
movb %bl,(%eax)
incl %ecx
incl %eax
decl %edx
testl %edx,%edx
jne .L7
jmp .L2
.p2align 4,,7
.L7:
movb (%ecx),%bl
movb %bl,(%eax)
incl %ecx
incl %eax
decl %edx
testl %edx,%edx
jne .L8
jmp .L2
.p2align 4,,7
.L8:
movb (%ecx),%bl
movb %bl,(%eax)
incl %ecx
incl %eax
decl %edx
testl %edx,%edx
jne .L9
jmp .L2
.p2align 4,,7
.L9:
movb (%ecx),%bl
movb %bl,(%eax)
incl %ecx
incl %eax
decl %edx
.L5:
jmp .L3
.p2align 4,,7
.L4:
.L2:
movl -4(%ebp),%ebx
leave
ret
.Lfe1:
.size byte_copy,.Lfe1-byte_copy
.ident "GCC: (GNU) 2.95.2 20000220 (Debian GNU/Linux)"
------------------------------------

Vernünftige Implementierung (register auch von Hand, 'wir wollen ja
fair bleiben'):

-----------------------------------------
.file "b.c"
.version "01.01"
gcc2_compiled.:
.text
.align 4
.globl bcp
.type bcp,@function
bcp:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl 8(%ebp),%eax
movl 12(%ebp),%ecx
movl 16(%ebp),%edx
testl %ecx,%ecx
je .L3
.p2align 4,,7
.L4:
jmp .L6
jmp .L3
.p2align 4,,7
.L6:
movb (%edx),%bl
movb %bl,(%eax)
decl %ecx
testl %ecx,%ecx
jne .L7
jmp .L3
.p2align 4,,7
.L7:
incl %eax
incl %edx
jmp .L4
.p2align 4,,7
.L5:
.L3:
.L2:
movl -4(%ebp),%ebx
leave
ret
.Lfe1:
.size bcp,.Lfe1-bcp
.ident "GCC: (GNU) 2.95.2 20000220 (Debian GNU/Linux)"
-----------------------------------

Wenn wir für den Moment mal annehmen, es gäbe neben Assembler noch
'andere' Computersprachen, sähe das so aus:

------------------------------------
.file "byte_copy.c"
.version "01.01"
gcc2_compiled.:
.text
.align 4
.globl byte_copy
.type byte_copy,@function
byte_copy:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl 8(%ebp),%ebx
movl 12(%ebp),%ecx
movl 16(%ebp),%edx
.p2align 4,,7
.L3:
testl %ecx,%ecx
je .L2
movb (%edx),%al
movb %al,(%ebx)
incl %edx
incl %ebx
decl %ecx
jz .L2
movb (%edx),%al
movb %al,(%ebx)
incl %edx
incl %ebx
decl %ecx
jz .L2
movb (%edx),%al
movb %al,(%ebx)
incl %edx
incl %ebx
decl %ecx
jz .L2
movb (%edx),%al
movb %al,(%ebx)
incl %edx
incl %ebx
decl %ecx
jmp .L3
.p2align 4,,7
.L2:
popl %ebx
leave
ret
.Lfe1:
.size byte_copy,.Lfe1-byte_copy
.ident "GCC: (GNU) 2.95.2 20000220 (Debian GNU/Linux)"
------------------------------

bzw so:

----------------------------
.file "b.c"
.version "01.01"
gcc2_compiled.:
.text
.align 4
.globl bcp
.type bcp,@function
bcp:
pushl %ebp
movl %esp,%ebp
pushl %ebx
movl 8(%ebp),%ebx
movl 12(%ebp),%edx
movl 16(%ebp),%ecx
testl %edx,%edx
je .L3
movb (%ecx),%al
movb %al,(%ebx)
decl %edx
jz .L3
.p2align 4,,7
.L7:
incl %ebx
incl %ecx
movb (%ecx),%al
movb %al,(%ebx)
decl %edx
jnz .L7
.L3:
popl %ebx
leave
ret
.Lfe1:
.size bcp,.Lfe1-bcp
.ident "GCC: (GNU) 2.95.2 20000220 (Debian GNU/Linux)"
-------------------------------------
(diesmal ohne register).

Unoptimiert ist der Code für Sparc zu widerlich, als das ich ihn im
Druck wiedergeben möchte :->, daher kürzer:

---------------------------------------------
.file "byte_copy.c"
gcc2_compiled.:
.section ".text"
.align 4
.global byte_copy
.type byte_copy,#function
.proc 020
byte_copy:
!#PROLOGUE# 0
!#PROLOGUE# 1
.LL3:
cmp %o1, 0
be .LL2
addcc %o1, -1, %o1
ldub [%o2], %g2
stb %g2, [%o0]
add %o2, 1, %o2
be .LL2
add %o0, 1, %o0
ldub [%o2], %g2
addcc %o1, -1, %o1
stb %g2, [%o0]
add %o2, 1, %o2
be .LL2
add %o0, 1, %o0
ldub [%o2], %g2
addcc %o1, -1, %o1
stb %g2, [%o0]
add %o2, 1, %o2
be .LL2
add %o0, 1, %o0
ldub [%o2], %g2
add %o1, -1, %o1
stb %g2, [%o0]
add %o2, 1, %o2
b .LL3
add %o0, 1, %o0
.LL2:
retl
nop
.LLfe1:
.size byte_copy,.LLfe1-byte_copy
.ident "GCC: (GNU) 2.95.3 20010315 (release)"
----------------------------------

und

----------------------------------
[rw@sun-x1]:/tmp $gcc -S -O2 -o - b.c
.file "b.c"
gcc2_compiled.:
.section ".text"
.align 4
.global bcp
.type bcp,#function
.proc 020
bcp:
!#PROLOGUE# 0
!#PROLOGUE# 1
cmp %o1, 0
be .LL3
addcc %o1, -1, %o1
ldub [%o2], %g2
be .LL3
stb %g2, [%o0]
.LL7:
add %o2, 1, %o2
ldub [%o2], %g2
add %o0, 1, %o0
addcc %o1, -1, %o1
bne .LL7
stb %g2, [%o0]
.LL3:
retl
nop
.LLfe1:
.size bcp,.LLfe1-bcp
.ident "GCC: (GNU) 2.95.3 20010315 (release)"
---------------------------------------

'zur Abwechslung' mal als C

void bcp(char *to, unsigned n, char const *from)
{
if (n) {
while (1) {
*to = *from;
if (!--n) break;
++to;
++from;
}
}
}

Das sieht jetzt 'für den mathematisch geschulten Verstand' mal wieder
nicht ordentlich genug aus, denn die Abbruchbedingung steht da, wo sie
Sinn macht und nicht da, 'wo sie gefälligst hingehört', denn das ist
*kein* Ausduck (... himmelherrgottnochmal ...) sondern ein
*Algorithmus*, dh er beschreibt einen Ablauf und keinen Zustand. Was
auch sehr schön aus der Übersetzung deutlich wird :->>.

'Wenn wir schon mal dabei sind':

c -= '0';
if (c < 10) return c;
c -= 'A' - '0' + 10;
if (c < 16) return c;
c -= 'a' - 'A';
if (c < 16) return c;
return -1;

Genauso unportabel und wiederum _eine Ablaufbeschreibung_, bloß
eine sinnvollere und zwar deswegen, weil ein _Vergleich_ zweier
integers einer Subtraktion mit anschließender Flag-Abfrage
entspricht.

... und falls ich die Zeit hätte, würde ich mit Wonne den restlichen
Müll auch auseinandernehmen, denn die Vermutung liegt nahe, das er es
ebenso nötig hätte, angefangen bei qmail, wo 'wir' ja auch nach
Zeichen suchen, die (algorithmisch) scheinbar nicht gefunden werden
sollen und wo dieser Quatsch mit den manuellen Inkrements herkommt.

Da drin findet deswegen niemand 'Fehler', weil sie einem in so
rasantem Tempo vor die Füße fallen, das eine Lektüre frappante
Ähnlichkeit mit jemandem bekommt, der einem auf Koks fortwährend ins
Ohr schreit.

F'up2 poster

Rainer Weikusat

unread,
May 10, 2002, 4:15:32 AM5/10/02
to
Denis Jedig <d...@syneticon.de> writes:

> Rainer Weikusat <weik...@students.uni-mainz.de> wrote:
> > Dazu muß ich die Router und die Host-IP übernehmen, unter
> > periodischem race-Druck 'behalten' [...]
> > Ohne angepaßten Kernel wird das nicht gehen.
> > [...]
> > Es dürfte erheblich einfacher und billiger sein, 'mit einem geladenen
> > Revolver' ins Büro zu kommen und 'höflich zu fragen'.
>
> Aber warum ist "angepasster Kernel" in diesem Fall eine größere Hürde, als
> "Bullenalarm"? Sind Angriffe aus dem Netz nicht deshalb beliebt, weil der
> Angreifer bei der Durchführung nicht physisch gefährdet ist und ggf. sogar
> völlig unbemerkt bleibt?

Au contraire. Computer kann man nicht erpressen. 'Falls Du Glück
hast', darfst Du Kernelmodule nachladen, dann stehst Du 'nur noch' vor
dem Problem, das 'anderswo' zu schreiben und soweit zu debuggen, das
es unauffällig funktioniert. Womit sich die Frage stellt, was für
jemanden von so enormer Bedeutung ist, das er sich die Mühe macht, und
ob er/sie/es das nicht auch billiger andersw(o|ie) bekäme und vor
allem, => Felix, warum dieser Mensch sich nicht direkt an dem
interessanten Server versucht.

Chris Haaser

unread,
May 10, 2002, 6:39:12 AM5/10/02
to
* quoting Haluk <Ho...@gmx.de>:

>> So, das war die Seite Richtung Internet. Was ist mit den anderen
>> Interfacen Deines Bastionrechners?
>
> Sind alle zu.

Wie... sinnvoll.

> --
^


--
If a packet hits a pocket on a socket on a port,
And the bus is interrupted as a very last resort,
And the address of the memory makes your floppy disk abort,
Then the socket packet pocket has an error to report!

Felix von Leitner

unread,
May 10, 2002, 7:21:11 AM5/10/02
to
Thus spake Rainer Weikusat (weik...@students.uni-mainz.de):
> > Du willst dir mal dringend http://www.fefe.de/switch/ durchlesen.
> Sag mal, Felix, gibt es etwas an dem Worten 'Kabel' und 'Meßgerät',
> daß Dir inhärent unverständlich ist?

Hat dieses Ablenkungsmanöver einen tieferen Sinn?
Warum sagst du nicht einfach: "Stimmt, ich habe Scheiße gepostet, soll
nicht wieder vorkommen"?

> 3. sending spoofed ARP packets. With ARP spoofing you can tell host
> A that host B's MAC address is foo and then you tell host B that
> host A's MAC is bar and then you sniff for packets to foo and
> bar, relaying them back to the original proper MAC addresses of
> the hosts whose communication you want to intercept. My
> implementation of attack is this called arprelay.

> ... und wenn der liebe Gott immer nett zu uns ist, klappts auch mit
> dem timing. Zuverlässig kannst Du das nur durch flooding erzielen,
> denn der Stack im Kernel wird 'im Schnitt' weniger Zeit brauchen als
> Du.

Schade, daß du hier irgendwelchen Kram behauptest, ohne dich mit dem
Thema auszukennen.

> Das ist ein Problem für BSD und Konsorten, weil die nämlich jede
> ARP-Antwort honorieren und Linux bloß die erste.

Das funktioniert auch mit Linux ganz prima.

--
Go not to the elves for counsel, for they will say both yes and no.
--J.R.R. Tolkien

Jens Hoffmann

unread,
May 10, 2002, 9:55:58 AM5/10/02
to
Hi,

Thorsten Glaser <ty...@netcologne.de> wrote:
>>BTW: Was soll eine statische ARP-Route sein?
>

>Ein (z.B. manuell zugefügter) Eintrag im ARP-Cache
>mit unbegrenzter Lebensdauer.

Ok. Ein Eintrag in der ARP-Table.

Das ist keine Route. Das ist ein Eintrag in der ARP-Table.

Kopfschuettelnd,
Jens

Jens Hoffmann

unread,
May 10, 2002, 9:59:00 AM5/10/02
to
Hi,

Thorsten Glaser <ty...@netcologne.de> wrote:
>Eine Route ist ein Hinweis, wie ein Host zu erreichen ist,
>oder etwa nicht?

Nein. Eine Route ist ein Weg.

Ein Adresseintrag ist ein Teil des Weges.

Gruss,
Jens

Rainer Weikusat

unread,
May 10, 2002, 2:20:51 PM5/10/02
to
Thorsten Glaser <ty...@netcologne.de> writes:
> begin electrogrammati illius Jens Hoffmann
> Ein ARP-Tabelleneintrag ist der letzte Teil des
> Weges und somit auch eine Route.

Das ist Abfall, denn niemand 'routet' Ethernet (außer bridges :->).

Huerbine von Pleuselspink

unread,
May 10, 2002, 2:26:55 PM5/10/02
to
-----BEGIN PGP SIGNED MESSAGE-----

Thorsten Glaser <ty...@netcologne.de> ecrürte:

> die Du ständig zu beleidigen versuchst (aber da bin ich ja
> nicht alleine, Du scheinst ja schon zur Netzkultur zu gehören,
> allerdings noch auf einem Niveau unterhalb von HvP)?

Wundert Dich das? man god. man meise. man fefe. Das Niveau jeseits
Deiner Erbärmlichkeit also.

Lass Fefe in Frieden, sonst suche Dich der Stopelritter heim!

Du bist eine Gefahr für Deine Umwelt. Nimm' jetzt bitte Deine
Psychopharmaka. Sofort. Aber woanders.

Meisenkaiserin.
- --
Hürbine von Pleuselspink <h...@redneck.gacracker.org>
Hürchiv: http://www.faberman.de/huerbine.php
H404chiv: http://www.fefe.de/huerbine/
> http://groups.google.com/groups?selm=0OEV71D637157.1172916667%40frog.gilgamesh.org&output=gplain

-----BEGIN PGP SIGNATURE-----
Version: N/A

iQEVAwUBPNwPcUhmCLLvNpl7AQFWfwf+OQiuiJRTnMQh3lEb1SWPjTN2T/QMRo8w
ZMc2Z2v7FY15WtIrbBWkcH2oGKXzGt2GEux+AAw7jYzp6leCk5ADYFVIdeoTFxN7
IA/VKBrVQkmBOhqC5qqvfPihlP3pSe4B4XfV/Y+A23qdhYfRiahZZwY0AljFSpBQ
+8wrNalNdUD6+KGD1l5e1qWH4B6L6Trzj0IDgGJ3zhTC0lVmG75+vnLWctPGC2xN
RZ2LfDzEcCr223YEmrFWXzpxZgX4uubq8KZjKxg68a+eeEqRmC6oTzpExtpCiEOW
A3MU6H/xRSfMGfMVYPvRm5Ceepvfn/aUbf5miRmuPNaQfX/pP4EeXw==
=yzyq
-----END PGP SIGNATURE-----

Tilman Schmidt

unread,
May 10, 2002, 7:18:11 PM5/10/02
to
Thorsten Glaser <ty...@netcologne.de> wrote:

>begin electrogrammati illius Felix von Leitner


>
>>Thus spake Thorsten Glaser (ty...@netcologne.de):
>>> man static ARP route
>>
>>Thorsten, mußt du eigentlich in _jeder_ Newsgroup Müll posten?
>

>Ich poste weniger Müll als Du, für geeignete Werte von $maszstab.

[Und weitere Flames und Gegenflames]

Thorsten, lass gut sein. Das ist Fefes normaler Diskussionsstil, und
Du wirst ihn nicht ändern. Finde Dich damit ab oder lies ihn nicht
mehr.

F'up -> me

--
Tilman Schmidt E-Mail: Tilman....@ePost.de
Bonn, Germany
- In theory, there is no difference between theory and practice.
In practice, there is.

Rainer Weikusat

unread,
May 11, 2002, 4:29:24 AM5/11/02
to
Thorsten Glaser <ty...@netcologne.de> writes:
> begin electrogrammati illius Rainer Weikusat

> >> Ein ARP-Tabelleneintrag ist der letzte Teil des
> >> Weges und somit auch eine Route.
> >
> >Das ist Abfall, denn niemand 'routet' Ethernet (außer bridges :->).
>
> Doch, der Transceiver meiner NE2000-kompatiblen ISA-Netzwerkkarte
> im Router/Server z.B. - er routet das einkommende Paket zum
> Betriebssystem abhängig davon, ob seine MAC als Empfänger eingetragen
> ist oder nicht.

Nein, denn er trifft keine Wegeentscheidung, 'die auch anders
ausfallen könnte', sondern sammelt lediglich bestimmte frames vom
Kabel, bei denen er 'irgendwie' angewiesen wurde, das zu tun.

'Routing' ist ein Verfahren, durch das in 'packet switched network'
Datentransport von einem Sender zu einem Empfänger erfolgt (nämlich im
Umweg über 'n' 'Router', die anhand ihnen bekannter
Topologieinformationen entscheiden, wohin jeweils ein Datagramm als
nächstes zu übertragen sei). Ethernet ist mittlerweile idR ebenfalls
'packet switched', sogar incl richtiger Routingalgorithmen, aber
'konzeptuell' könnte man stattdessen auch hubs nehmen, dann wäre es
vorbei mit der Wegentscheidung.

Weil MAC-Adressen nicht nach Topologie sondern nach vendor vergeben
werden (...), fehlt ihnen eine entscheidende Eigenschaft von
'routing-fähigen' Protokolladressen, nämlich die Möglichkeit, Hosts zu
größeren Einheiten zusammenzufassen und summarisch traffic 'in diese
Richtung' zu routen, wobei sich ein anderer Router, der über
detailliertere Informationen bezüglich das Zielnetzes vefügt, als man
selber.

> (10base2, für alle, die es wissen wollen)
> Analog geht das auch bei 10baseT oder 100baseTX, z.B.

[rw@wohnheim-gate]:/tmp $ifconfig -a
de0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:80:c8:f6:43:f1
media: Ethernet 100baseTX full-duplex
status: active
inet 134.93.144.202 netmask 0xfffffffc broadcast 134.93.144.203
de1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 00:80:c8:94:42:5a
media: Ethernet 100baseTX full-duplex
status: active
inet 134.93.43.254 netmask 0xfffffc00 broadcast 134.93.43.255

Via Medienkonverter von 100baseFX-fdx und 'irgendwelche Bekloppten'
haben hier intern mittlerweile auch einen Gigabit-Link in Betrieb
genommen :->>.

0 new messages