PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DNS Auslastung



Seiten : [1] 2

joey.brunner
05.09.02, 09:46
Sagt mal, womit verbraucht ein DNS Server die meiste Speicherkapazität. Es geht darum:

Ich muss testen, wann ein 100mbit DNS Server in die Kniee geht. Daher wäre es praktisch zu wissen, wieviele Pakete und vor allem welche Pakete ich ihm schicken soll. Der Angreifer hat nur 10mbit zur Verfügung...

Joey

Jorge
05.09.02, 09:53
Original geschrieben von joey.brunner
Ich muss testen, wann ein 100mbit DNS Server in die Kniee geht. Daher wäre es praktisch zu wissen, wieviele Pakete und vor allem welche Pakete ich ihm schicken soll. Der Angreifer hat nur 10mbit zur Verfügung...


Wenn ich ehrlich bin, verstehe ich die Frage nicht. Du musst dem DNS Server natürlich DNS Anfragen senden, welche dieser dann beantwortet.
Ab welcher Anzahl von (gleichzeitigen?) Anfragen der DNS in die Kniee geht, hängt auch davon ab, ob es ein authoritiver DNS ist, oder ob der DNS selber auch nachfragen muss (z.B. bei I-Net Anfragen die root Server). Aber gehe mal davon aus, dass Du den DNS schon mit ein paar Hundert oder gar Paar Tausend gleichzeitigen Anfragen bombadieren musst, bis da eine Verzögerung bemerkbar wird.
Natürlich kommt es dann auch noch auf die Hardware Ausstattung an, ein Pentium mit 75MHZ und 16MB RAM macht bestimmt früher schlapp als ein PIV mit 2GHz un 512MB RAM...

bom
05.09.02, 09:56
werte doch ein richtig fettes apache logfile mit z.B. webalizer aus und stelle hostname lookups auf ON.

Dann macht er für jeden Eintrag einen DNS-lookup.
Da bekommst Du schon einiges an traffic zusammen.

joey.brunner
05.09.02, 09:56
Hi,

danke für die Antwort. dass ich dns anfragen schicken muss, hab ich mir fast gedacht... ;)

nein es geht darum. ich kann ja mehrere sachen mti dem dns machen. ich kann queries als autho. oder nicht autho. schicken. ich kann die mailserver abfragen, ich kann zonentransfers machen und da wollte ich jetzt wissen, was den server am meisten beschäftigt. ich könnte natürlcih auch an den dns lauter anfragen für eine domain schicken, die er nicht kennt, dann schickt er diese doch zum ns.domain-die-ich-nciht-kenne.de oder? Das beschäftigt doch ziemlich. wenn ich jetzt noch domains nehme, die es nicht gibt. also www.böschl.de, dann flippt der doch aus oder?

joey

joey.brunner
05.09.02, 10:00
hallo dnake für die antwort

leider geht das ja nicht, weil wenn ich für jede domain oder jeden host einen lookup mache, dann geht ja nur meine leitung in die knie. denn es wäre schon ein großer zufall, wenn der dns, den es zu bändigen gilt, für alle domains zuständig wäre.... weißt was ich meine?

joey

bom
05.09.02, 10:01
Kommt auf Deine HW an.

also ein paar tausend queries in der Minute, sollte durschnittliche HW schon packen.

Jorge
05.09.02, 10:03
Na gut, Zonentransfers sind auch eine Möglichkeit. Bedenke aber, dass Du im Produktiveinsatz nicht alle paar Minuten einen Zonen Transfer an einen evtl. vorhandenen Slave machst. Ich denke, dass es realistischer wäre den DNS mit DNS Anfragen zu bombadieren bis er platzt. Aber wie ich schon sagte, das müssen sehr viele und vor allem gleichzeitige sein.

joey.brunner
05.09.02, 10:09
also ich hab jetzt mal kurz nachgeschaut. ich brauche für die erzeugung von knapp 60.000 dns anfragen ca. 2 Minuten. Das Problem denke ich liegt auch daran, dass mein DNS kaum Zonen zu verwalten hat, wenn ich ihm ncoh ein paar reinschreiben denke ich dauert die sache auch länger, sollte ähnlich zu den ACLs bei den Firewalls sein oder. Je größer das Regelwerk, desto höher die belastung

joey

netzmeister
05.09.02, 10:13
Hallo,

... ist wahrscheinlich nicht zu schaffen.

Bevor der rechner in die Knie geht, macht die Leitung / Anbindung schlapp.

Viele Grüße

Eicke

joey.brunner
05.09.02, 10:16
Okay, welche möglcihkeiten hab ich dann noch, wenn es über den dns weg nicht geht. syn flooding, ddos was empfehlt ihr.. ich will das ding nciht abschießen sondern nur lahm machen ä

joey

aycaramba
05.09.02, 21:49
Warum ?

Ohne Dienste ist das recht schwierig. Um einen Rechner in die Knie zu zwingen, auf dem nur ein DNS laeuft bedarf es wohl ein paar mehr Anfragen...

Der beste Weg einen Server an seine Grenzen zu bringen sind sicherlich Dateizugriffe, speicher- sowie prozessorintensive Anwendungen.

Harry
05.09.02, 21:59
Hallo joey,

immer noch am basteln mit dem DNS-Spoofing? :D
Mach halt einfach ein SYN-Flooding, wenn Du den DNS-Server für eine gewisse Zeit lahmlegen willst. Mit UDP-Anfragen bekommst Du normalerweise keinen Server lahmgelegt.

Das kostet wenig Leitungskapazität aber der Effekt ist dafür ganz gut.

Harry

bernie
05.09.02, 22:03
Hi,

Ich würde Seti@Home im Hintergrund laufen lassen. Das beschäftigt ihn sicher und mit IDE-Platten sollte das tödlich sein. Musst es aber sicher "renicen". Oder schreib ein Script, dass mit "dd if=/dev/zero of=dd.data bs=100000 count=10000" Immer 1GB Daten auf die Platte knalle, das File löscht du dann wieder und legst es neu an. Endlosschleife halt.

Ciao, Bernie

bom
05.09.02, 22:06
oder den distributed.net client

http://www.distributed.net

joey.brunner
06.09.02, 07:01
Hi,

danke für eure antworten, aber ich kann leider nur das flooding benutzen, da ich ja keinen zugriff auf den dns habe. (klar habe ich den, aber es kommt halt *******e, wenn ich beim livehack sagen: so, der server ist so lahm, weil er im hintergrund nach außerirdischem leben, einem heilmittel für aids und evils presley sucht ;) ).

Also brauch ich eben - wie gesagt - die flooding sachen.

habt ihr da quellen

joey

tomes
06.09.02, 07:15
http://www.google.de/search?num=50&hl=de&ie=UTF-8&oe=UTF-8&q=stacheldraht+ddos&meta=lr%3Dlang_de

und ein Link davon der ein wenig mehr sagt:
http://www.fz-juelich.de/zam/net/security/infos/DDoS/

T;o)Mes

joey.brunner
06.09.02, 07:20
hi

man dich wenn ich nicht hätte ;). Danke jetzt hab ich wieder was zum lesen.

wenn das jetzt auch noch steht, ist das "projekt" zu 80% feddich. der header des pakets ist fertig, die routinen sind fertig. das programm findet für die domains die zuständigen nameserver, nur ein problem habe ich ncoh. das antwortpaket genauso zu bauen, dass es den normen entspricht, das ist echt nicht leicht, da gibbet 1000 methoden und möglichkeiten. naja mal gucken. schaffe ich schon noch.

ist das dann eigentlich das erste open source tool für dns spoofing?

joey

tomes
06.09.02, 07:42
einige wenige gute Tools in C. Da sollte man sich aber woander Erkundigen.
Ist ja im Grunde genommen auch icht allzu "schwer". Man schreibt sich ein Socket und gibt ihn dann die noetigen Information mit. In Perl ist das scheinbar einfacher, da man ja schon fertige Paket (Net::DNS) benutzten kann und somit ein par Routinen weniger schreiben braucht. Allerding muss man sich dann dur die Routinen kaempfen ;-)

Im "oeffendlichen" Netz nicht gibt es die Dinger nicht, soweit ich es weiss,, waehre ja auch schlimm wenn jeder irgendwelche Seiten einfach mal schnell umleitet ;-)

Ausserdem ist das "prob" bei solchem Anriff der, das der Eintrag in DNS Server keine allzugrosse TTL hat und man den Angriff immer wieder wiederholen muesste.
Also achte auch auf darauf, dass die TTL die du uebermittels gross genug ist und der Server sie auch nicht allzu schnell wieder verwirft.

T;o)Mes

joey.brunner
06.09.02, 07:46
Hi,

naja TTL sollte egal sein, stecken ja am selben switch. trotzdem bekommen die pakete das maximum mit.

naja perl.. ich hab mir lange überlegt, ob ich die sache in C oder in perl schreiben soll. dann habe ich mich für perl entschieden, da ich dann leichter ein grafisches interface basteln kann, damit die zuschauer auch sehen, was da passiert. im nachhinein weiß ich nicht, ob ich das wieder so machen würde. perl stößt von der geschwindigkeit hier ganz klar an seine grenzen, hier wäre C viel besser geeignet. Die vorhandenen routinen bei perl sind nicht schlecht, aber schlecht dokumentiert. Es gibt quasi kein einziges howto, beispiel oder sonst was, das ein komplettes dns paket für eine Antwort beschreibt. dann wird die sache schon sehr kompliziert, weil man viele dinge neu schreiben muss...

aber jetzt bin ich fast am ende (vom projekt her), jetzt ändere ich das auch nimmer, hat ja auch den vorteil, dass mehr leute den code verstehen, da perl eindeutig schöner und leichter zu lesen ist als das kryptische C.

naja wir werden sehen, ob ich das schaffe....

Joey

tomes
06.09.02, 07:57
hat nicht mit den Hops eines IP Paketes zu tun, soder beschreib die Zeit wie lange der Eintrag in Server-Cache lebt, bevor er neu angeforder wird. MAn kann dies Serverseiteig regeln --> named.conf und im Antwortpaket ;-)

T;o)MEs

joey.brunner
06.09.02, 08:04
jupp und steht auf max.

joey

Jasper
06.09.02, 08:08
Original geschrieben von Jorge
Na gut, Zonentransfers sind auch eine Möglichkeit. Bedenke aber, dass Du im Produktiveinsatz nicht alle paar Minuten einen Zonen Transfer an einen evtl. vorhandenen Slave machst. Ich denke, dass es realistischer


zonentransfers sind m.E. die einzige möglichkeit remote einen dns-server in diesem fall in die knie zu zwingen. allerdings sollte man solche transfers nicht generell zulassen sondern auf die slaves beschränken.

-j

joey.brunner
06.09.02, 08:10
ja, die dafür nötige zeile lautet

allow-transfer { IP};

,aber die kann man remote erfragen und somit kann ich meine zonentransfers durchführen. Klar, sie werden nie bei mir ankommen, da meine IP gespooft ist, aber der Server hat trotzdem enorme Auslatungen.

joey

Jasper
06.09.02, 08:24
Original geschrieben von joey.brunner
ja, die dafür nötige zeile lautet

allow-transfer { IP};

,aber die kann man remote erfragen und somit kann ich meine zonentransfers durchführen. Klar, sie werden nie bei mir ankommen, da meine IP gespooft ist, aber der Server hat trotzdem enorme Auslatungen.


noe. ich meine 'signed' transfers. ohne korrekten key kein transfer. siehe BIND9 admin guide. zugriffsberechtigungen auf ip-basis sind, aehm, historisch :)

-j

joey.brunner
06.09.02, 08:35
dsa wird dann so gelöst :)



$key_name = "tsig-key";
$key = "awwLOtRfpGE+rRKF2+DEiw==";

$update = Net::DNS::Update->new("example.com");
$update->push("update", rr_add("foo.example.com A 10.1.2.3"));

$update->sign_tsig($key_name, $key);

$response = $res->send($update);


sehe ich richtig oder ....

wie gesagt, das verursacht auch wieder traffic, aber im Hausnetz ist das ja egal...

joey

tomes
06.09.02, 08:44
TCP/IP und Ethernet verstanden habe ist es doch egal mit was du den IP-Stack vollknallst. Erst nach diesem (IP) wird doch weiter aufgeteilt --> tcp dahin,udp dahin, icmp dorthin.

T;o)Mes

joey.brunner
06.09.02, 08:46
jetzt glaub ich haben wir uns bis zum osi durchgeschummelt ;). Ja du hast recht, es ist völlig wurscht was ich wohin schicke, solange es ankommt wird es wahrscheinlich (außer es gibt ACLs) irngedwie bearbeitet (oder aufgeteilt wie du es genannt hast).

Joey

Jasper
06.09.02, 13:33
Original geschrieben von joey.brunner

wie gesagt, das verursacht auch wieder traffic, aber im Hausnetz ist das ja egal...


aber ohne key, den der externe angreifer nicht haben sollte, kann er keinen axfr auslösen und damit keine last erzeugen. den bisschen netzwerktraffic kann man vernachlässigen.
und den key sollte man bei ptp-verbindungen direkt in der config angeben.

-j

Jasper
06.09.02, 13:34
Original geschrieben von joey.brunner
jetzt glaub ich haben wir uns bis zum osi durchgeschummelt ;). Ja du hast recht, es ist völlig wurscht was ich wohin schicke, solange es ankommt wird es wahrscheinlich (außer es gibt ACLs) irngedwie bearbeitet (oder aufgeteilt wie du es genannt hast).


die verarbeitung ist aber unterschiedlich aufwendig. tcp ist 'teurer' als udp als icmp.

-j

joey.brunner
06.09.02, 13:44
wieviel nimmt sich das denn ungefähr?
prozentual gesehen

joey