-------[  RtC Mag, At the end of the universe  ]

--------------[  Distributed Denial of Service  ]
---------[ in RtC mag 5 ]
----[  by S/ash [RtC] <slash-rtc@fr.st>  ]

Ceci est une compilation des diffrentes mthodes de smurf dont la RtC a dj
parl.

-------[ Sommaire
I.    Introduction
II.   Bases de l'IP, du TCP et de l'UDP utilis ici
   II.1 ICMP Echo
   II.2 Connexion TCP
   II.3 Un petit peu d'UDP
III.  Une exploitation des faiblesses des serveurs : le SYN flood
IV.   Une exploitation des faiblesses de l'IP : le Smurf
V.    Rcupr des adresses de broadcast  travers Internet
VI.   Les nouvelles mthodes de smurf
   VI.1 Le SYN Smurfing
   VI.2 L'UDP Unreach Smurf
   VI.3 L'ICMP Unreach Smurf
VII.  Un DDOS pour le mail-bombing
VIII. Une aperue de l'avenir : le smurfing et l'IPv6
IX.   Le code d'un smurfer


-------[ I. Introduction

Les failles de l'IP ont t utilise  plusieurs reprises dans le but de
couper l'accs  certains services ou de faire crasher des systmes. Une de
ces mthodes est le SYN flood (DOS) et une autre est le Smurf (un DDOS). En
rflchissant sur l'tablissement des connexions TCP, j'ai reli les deux
mthodes prcdentes pour crer un nouveau DDOS que j'ai nomm le SYN Smurf.
Puis, quelques autres methodes de smurf me sont venus  l'esprit tout comme
une mthode de mail-bombing. Ces mthodes n'ont pas t,  ma connaissance,
rendues publique avant le mag 4 de la RtC.

Les informations contenues dans cet article ne sont pas l dans un but
immoral mais seulement pour le savoir et l'intret de celles-ci (si vous
voulez les testes, utilises-les contre des sites fascistes ou racistes
comme www.kkk.com).



-------[ II. Bases de l'IP, du TCP et de l'UDP utilis ici

----[ II.1 L'ICMP Echo

Un message ICMP est paquet IP avec un header du style :

0                 7|8              15|16                                    31
|----------------------------------------------------------------------------|
|     type         |       code      |          checksum                     |
|----------------------------------------------------------------------------|
|                ident               |        numro de sequence             |
|----------------------------------------------------------------------------|
|                      donnes optionnel (si ncessaire)                     |
|----------------------------------------------------------------------------|

Le message ICMP Echo request est la requete ICMP type 8 code 0 qui ne fait que
demander  la destination dde rpondre par un message ICMP Echo Reply (ICMP
type 0 code 0). Ce message  t cr pour l'entretien des rseaux et la 
vrification de la disponibilit d'une machine de destination.

Donc, pour faire un ICMP Echo, on se contente d'envoyer un paquet IP contenant
l'header prcdent avec le type mit  8 et le code mis  0. puis nous
attendons la rponse qui est un paquet IP avec l'en-tete prcdent avec le
type et le code mis  0.


----[ II.2 Connexion TCP

L'en-tete TCP :

0                                  15|16                                    31
|----------------------------------------------------------------------------|
| Numro du port source (16 bits)    | Numro du port de destination (16bits)|
|----------------------------------------------------------------------------|
|                        numro de squence sur 32 bits                      |
|----------------------------------------------------------------------------|
|                      numro d'acquittement sur 32 bits                     |
|----------------------------------------------------------------------------|
| longueur de l'entte 4| 6 | flags 6|     taille de fentre sur 16-bits     |
|----------------------------------------------------------------------------|
|         checksum sur 16-bits       |       pointeur urgent sur 16-bits     |
|----------------------------------------------------------------------------|
|                         options (s'il y en a)                              |
|----------------------------------------------------------------------------|
|                         donnes (s'il y en a)                              |
|----------------------------------------------------------------------------|

o les flags sont :
URG : le pointeur urgent est valide 
ACK : le numro d'acquittement est valide
PUSH : pour que le gestionnaire rseau passe la trame le plus vite possible au
soft.
RST : rinitialise la connexion.
SYN : signal de synchronisation pour les numro de squence
FIN : fin de la connexion.

Une connexion TCP se fait en trois tapes :

- Tout d'abord, le client demande une connexion  l'hote en envoyant un paquet
dont le flag SYN (paquet SYN) est activ.

- Ensuite, l'hote rpond soit par un paquets dont les flags SYN et ACK sont
activs (paquet SYN+ACK) si la connexion est accepte, soit par un paquet
RST si la connexion est refuse.

- Enfin, le client doit rpondre avec un paquet ACK pour ouvrir la connexion.

Un point  retenir est que, si un ordinateur reoit un paquet SYN+ACK alors
qu'il n'a pas demand une connexion, il doit rpondre par un paquet RST.

 
----[ II.3 Un petit peu d'UDP

Bon, d'abors, l'en-tete UDP :

0                                  15|16                                    31
|----------------------------------------------------------------------------|
|      numro de port (16 bits)      | numro de port de destination (16bits)|
|----------------------------------------------------------------------------|
|      UDP length -  16-bits         |           checksum - 16-bits          |
|----------------------------------------------------------------------------|
|                         donnes (s'il y en a)                              |
|----------------------------------------------------------------------------|

Ensuite, expliquons comment un hote ragit lors de la rception d'un paquet
UDP sur un port ferm : il rpond simplement par un message ICMP Port
Unreachable (ICMP type 3 code 3) si le port est ferm.



-------[ III.  Une exploitation des faiblesses des serveurs : le SYN flood

Le SYN flood est bas sur l'exploitation de faiblesse des serveurs dans
l'implmentation TCP.

Son principe est d'envoyer normment de demande de connexions TCP au serveur
pour le flooder.

En fait, si vous envoyer un paquet SYN, le serveur doit vous rpondre pour 
dire si la connexion est accepte ou non. Donc, cette mthode repose sur
l'envoie d'un grand nombre de paquets SYN  l'hote sur un port (en gnral
ouvert), celui-ci sera alors flooder par le nombre de rponse  envoyer.

Sur certain serveurs, le problme a t rsolue par l'arret de la gestion des
demande de connexion aprs un certain nombre de paquets SYN venant de la meme
machine dans un certain laps de temps. Sur d'autre serveurs, les messages ne
sont plus grs aprs un grand nombre de paquets SYN reu : sur ceux-ci, on
obtient alors un DoS qui ferme un port. Mais, sur la plupart des machines,
corriger cette faille est devenu inutile de par la monte en puissance des
ordinateurs.



-------[ IV. Une exploitation des faiblesses de l'IP : le Smurf

Le Smurf est une variante de l'ICMP Ping flood. Cette mthode de flood a t
normment utilis par le 'hacker' (lamer est un meilleur mot pour lui)
appel MafiaBoy lors du crash de Yahoo et consort.

L'ICMP Ping flood est une vieille mthode de flood ne fonctionnant que sur
des ordinateurs faibles (le lamer habituel utilisant Windows 9x et AOL). Pour
utilis cette mthode, nous nous contentons d'envoyer une masse de requete
ICMP Echo contenant beaucoup de donnes. Bien sur, une bonne bande passante
est ncessaire pour exploiter ce flood.

Le Smurf consiste  envoyer vers un grand nombre d'hote une requete ICMP Echo
contenant l'IP de la victime dans le champs IP de l'expditeur. Puis, toutes
les machines recevant la requete ICMP Echo vont rpondre par un ICMP Echo
Reply vers la victime qui sera overflood par le nombre de rponse. Pour cela,
il faut utilis des adresses de broadcast pour la destination des ICMP Echo
request.

                                    VOTRE MACHINE
              envoyant des requete ICMP Echo avec l'adresse de la victime
                                        |    |
                                        |    |
                                        |    |
                                        |    |
          BROADCAST <--------------------    --------------------> BROADCAST
           |||||||              Toutes les machines des             |||||||
           |||||||                    broadcasts                    |||||||
           |||||||          renvoient des reponse ICMP Echo         |||||||
           |||||||    la victime pour rpondre  la requete echo   |||||||
           |||||||             venant de votre machine              |||||||
           |||||||                                                  |||||||
           ||||||--------->-------------|  |---------<---------------||||||
           |||||---------->------------||  ||--------<----------------|||||
           ||||----------->-----------|||  |||-------<-----------------||||
           |||------------>----------||||  ||||------<------------------|||
           ||------------->---------|||||  |||||-----<-------------------||
           |-------------->--------||||||  ||||||----<--------------------|
           --------------->-------|||||||  |||||||---<--------------------
                                  |||||||  |||||||
                                  |||||||  |||||||
                                  |||||||  |||||||
                                  |||||||  |||||||
                                  |||||||  |||||||
                                  |||||||  |||||||
                       victime recevant beaucoup de rponse
                               echo et qui a trs mal

Une solution qui a t propos est de dsactiv l'ICMP Echo sur les
adresses de broadcast au niveau des routeurs.
 


-------[ V. Rcupr des adresses de broadcast  travers Internet

Bon, avant de faire une attaque smurf, il nous faut rcuprer des adresses
de broadcast. Bien sur, il n'est pas facile d'en trouver des efficaces mais
il y a un moyen de faire.
Cette mthode donn par Craig A. Huegen consiste  pinger simplement des
adresses de broadcast et de garder seulement celle qui renvoyent plus
d'un certain nombre de rponse ping. Cette mthode reste valable pour les
autres attaques smurf dont je vais parler mais ncessite cependant d'etre
lgrement change (on ne peut, par exemple, plus utiliser de script).

Alors, voil les scripts de Craig A. Huegen. Bien sur, je ne garantie pas
que les scripts fonctionnent ou non (je ne les ai pas test) :

[Voir les fichiers bips.sh et chekdup.sh]

Il y a un problme dans ce scan : si vous pingez un gros broadcast, vous
rcuprerez normment de rponse et votre connection risque de lacher.
Un autre problme est que ces scripts ne permettent pas d'obtenir de
nouvelles adresses de broadcast mais nous dit seulement si un broadcast
vaut la peine d'etre utilis.


-------[ VI.   Les nouvelles mthodes de smurf

----[ VI.1 Le SYN Smurf

Une nouvelle manire que j'ai dcouvert d'overflooder des ordinateurs
repose sur l'envoie  travers des adresses de broadcast de paquet TCP
SYN sur des seveurs (comme les serveur Web sur le port 80) qui rpondront
soit par un paquet RST soit par un paquet SYN+ACK.

Un paquet RST floodera simplement la pile TCP, mais un ACK+SYN est plus
interssant car il ncessite une rponse de la victime et floodera ainsi
les process TCP.

Cette mthode est donc trs simple : vous rutilisez la mthode de Smurf
classique mais avec des paquets SYN (d'o son nom SYN Smurf).

Je pense pas qu'il y existe des ordinateurs ou des routeurs qui interdisent
le broadcasting de paquets TCP mais cela se peut.


----[ VI.2 L'UDP Unreach Smurf

Un autre moyen que je pense plus efficace pour flooder est l'utilisation
de la rponse  un paquet UDP sur un port ferm. Aprs avoir reu le paquet
UDP (sur un port ferm), la machine hote doit rpondre par un message ICMP
Port unreachable (ICMP type 3 code 3).

Si vous utilisez cette mthode sur un broadcast, une tonne de message ICMP
Port unreachable seront renvoy  la victime qui crashera probablement.

Pour cette mthode, la seule solution que je voie est de configurer tout les
hotes du rseaux pous ne pas rpondre automatiquement au paquet UDP 
broadcast. Bien sur, il y a peu de chance d'y arriver vu le nombre
d'ordinateurs sur Internet.

----[ VI.3 L'ICMP Unreach Smurf

Cette mthode est totallement thorique. Elle consiste  envoyer des paquets
(de n'importe quel type) sur des machines n'existant pas. Tout les routeurs
rpondront par un message ICMP Destination unreachable (ICMP type 3 code 0-1).
Bien sur, il y a peu de chance que cela marche sur adresse de broadcast 
(aucune en fait) car la seule solution est alors d'utiliser le tunneling
(un rseau entier avec le tunneling activ ??).

Cette mthode est seulement un aperu, je pense qu'il n'y a aucun moyen de 
l'utiliser. C'est seulement pour dire que beaucoup de mthodes de smurf
peuvent etre exploit en utilisant les rponses automatiques des ordinateurs
 certains messages. Je pense que le smurf a encore une longue vie devant
lui...



-------[ VII.  Un DDOS pour le mail-bombing

Il s'agit d'un mail-bombing. Quel est le lien avec le smurf ? Il s'agit juste
de la meme ide : vous envoyez un long mail avec une tonne d'adresses de
destination fausse. Bien sur, ce mail contient l'adresse de la victime au lieu
de la votre (pour cela, allez voir un article sur la manire d'envoyer des
mail anonyme : il y a en a une tonne dans l'underground). Le rsultat sera
que le serveur de mail rpondra par votre long mail et un en tete disant que
l'adresse spcifi n'existe pas.
Je n'ai pas fait code pour faire a : c'est tellement facile de le faire
 la main.

Bon, immagibnez que vous voulez flooder la boite de victim@lamer.org. Une
mthode habituelle est d'envoyer un grand nombre de mail. Une meilleur
mthode est d'envoyer un mail avec plusieurs fausses adresses, comme
ceci (en utilisant le server mail de isp.net).

---------------------------------
evil% telnet mail.isp.net 25
Trying ...
Connected to mail.isp.net
Escape caracter is '^]'.
220 mail.isp.net Sendmail 8.8.5-8.8.7 ready at Mon, 15 Nov 93 13:35:11 EST
helo
250 mail.isp.net Hello (evil.domain.com), pleased to meet you
mail from: victim@lamer.org
rcpt to: victim@lamer.org
data
From: victim@lamer.org
to: xxx@random.ble, xxy@random.ble, xyx@random.ble, yxx@random.ble, xyy@random.ble, yxy@random.ble, yyx@random.ble, yyy@random.ble, xyz@random.ble, aza@random.ble, dsq@random.ble, dst@random.ble, iga@random.ble, mad@random.ble, taz@random.ble, qha@random.ble, jer@random.ble, rtc@random.ble, leo@random.ble, red@random.ble, oxx@random.ble, drm@random.ble, fbi@random.ble, cia@random.ble, kgb@random.ble, dea@random.ble, fgh@random.ble, dos@random.ble, win@random.ble, bil@random.ble, mic@random.ble, ros@random.ble, oft@random.ble, mac@random.ble, ppp@random.ble, net@random.ble, gov@random.ble, edu@random.ble, fuc@random.ble, kto@random.ble, the@random.ble, bhz@random.ble, cri@random.ble, pin@random.ble, hui@random.ble, hhh@random.ble, ggg@random.ble, iii@random.ble, jjj@random.ble, lll@random.ble
Subject: I want to flood you

   Yeah, it's just a flooding message. make it as long as possible.

   Bye, bye and enjoy my message...
.
250 Ok
quit
221 mail.isp.net closing connection
Connection closed by foreign host.
------------------------------------

Aprs ceci, victim@lamer.org recevra environt 50 messages disant que
l'adresse de destination est invalide...

La solution  ce problme est trs simple : configurer les serveurs mail
pour ne pas rpondre aprs un certain nombre d'email dans la destination...



-------[ VIII. Une aperue de l'avenir : le smurfing et l'IPv6

L'IPv6 est maintenant dfini et sur le point d'etre utilis sur Internet. Donc,
la question naturelle est quels sont les corrections apportes contre le 
smurf ? La rponse est simple : plus d'adresse de broadcast.

C'est une bonne mthode contre le smurf car les adresses de broadcast sont
trs simple  rcuprer (elles ont toujours le meme format). Et il y a peu de
personnes qui en ont encore besoin. Bien sur, il y a encore le multicast (on
ne peut le retirer  cause de son utilit), mais obtenir des adresses de
multicast est plus difficile que d'obtenir des adresses de broadcast.

Mais la meilleur protection contre le smurf reste de retirer des
implmentations de l'IP les rponses automatiques  des paquets broadcast 
(comme les rponse ICMP, les paquets TCP SYN+ACK ou RST, ICMP Unreachable 
etc...).



-------[ IX.   Le code d'un smurfer

Maintenant, un petit code ralisant diffrent smurf (pour compiler mettez tout
les fichier dans le meme repertoire et taper 'make') : 

Les fichiers sont fournis avec le mag (Makefile rtcsmurf.h rtcsmurf.c ipraw.c
ipraw.h).

C'est termin.

Nan, je vous assure y'a plus rien ( par un pauv' EOF)...


Rhaaa, z'etes borns, puisque je vous dit qu'il n'y a plus rien...

-------[  EOF
