Correction dans le texte de l’énoncé



Yüklə 22,31 Kb.
tarix27.10.2017
ölçüsü22,31 Kb.

EXR1520 : Etude d’une attaque par « TCP Spoofing »

Correction dans le texte de l’énoncé

Enoncé
Supposons que (voir figure EXR9003.F1) :



  • A est la machine du pirate (on supposera que son adresse est 80.0.0.66) ;

  • B une machine-serveur « MS Windows NT 4 » avec le service pack SP3 sur lequel le pirate changer le mot de passe administrateur ; On supposera que seules des machines avec une adresse IP locale sont autorisées à ouvrir un shell sur B. Le programme-serveur pour les shells se trouve sur le port 513. Le serveur B dispose également d’un serveur SMTP (on supposera que son adresse est 194.254.0.1) ;.

  • C une machine autorisée à ouvrir des shell sur B (puisqu’elle est sur le réseau local). (on supposera que son adresse est 194.254.0.22)

Contrainte pour le pirate :

A est distant, il ne dispose pas de moyen de capture (sniff) sur le réseau local. Il doit donc deviner le numéro de séquence initial (ISN : Initial Sequence Number) que B a envoyé à C pour que C accepte paquet 3 (issu de A) qui doit acquitter avec le numéro qui va bien le paquet 2 qui est inconnu de A puisqu’il ne lui pas été envoyé.
L’administrateur système de B a appris la défaillance de l’ISN de Win NT, il décide alors d’installer un patch (SP4) qui est censé pallier à ce trou de sécurité.


Questions


1) Supposons dans un premier temps que la machine C est paralysée (elle ne répond rien au ACK que lui envoie B). Comment le pirate peut-il procéder pour deviner l’ISN renvoyé par la machine lorsqu’il initiera (avec un SYN) une session TCP sur le port 513 de la machine B.

Pour pouvoir prédire le numéro de séquence, A envoie 2 requêtes vers le serveur SMTP de B. Ainsi il prédire le numéro de séquence que renverra B suite au paquet ACK que A envoie à B en usurpant l’adresse de C.


2) Résumer cette procédure sur une figure en listant les premiers échanges entre A, B et C (en précisant les adresses IP et port TCP source ainsi que la valeur des flags ACK, SYN, RST, …)

Voir tableau Figure EXR9003.F2


3) Sachant que le temps écoulé entre ne peut être qu’approximatif, comment le pirate devra-t-il agir pour être sûr de réussir ?

Envoyer environ 5000 paquets avec chacun un numéro de séquence pris dans une fourchette entre X et X+5000 (autorisant ainsi une erreur d’évaluation sur le temps de l’ordre de 5 secondes (puisqu’il y a un incrément de 1 par millisecondes)


4) Pourquoi ce type d’attaque n’est plus possible aujourd’hui ? Penser en particulier aux systèmes interconnectant le réseau local avec le réseau externe (Internet).

Avec les pare-feu, des paquets venant de l’extérieur avec une adresse IP interne sont refusés.


5) Quel type d’attaque peut mener le pirate sur C pour éviter qu’elle ne réponde ?

Une attaque de type DoS (déni de service), telle que CHARGEN-ECHO (vu en cours, voir aussi http://cio.cisco.com/warp/public/707/3.html ou http://www.netcraft.com/presentations/interop/dos.html), …


6) Suite à une première attaque, l’administrateur décide d’installer le SP4 de Windows NT4 (voir section Document). Pourquoi cela ne résoud pas le problème ?

Le document montre qu’il suffit d’envoyer 8 paquets différents (soit X, le numéro de séquence du paquet précédent ; la session suivante aura pour ISN X+2 ou X+4, … jusqu’à X+14). Il n’y a plus de problème de mesure du temps !!! Aussi incroyable que cela puisse paraître, le patch SP4 ETAIT ENCORE MOINS SUR QUE LE SP3 !!! Comme quoi, la fortune n’est pas forcément en rapport avec le sérieux de la maison !

Cf Source EXR9003.S1


Figure EXR9003.F1




Figure EXR9003.F2

Les deux premiers échanges permettent de s’assurer de la prédiction de l’ISN

Le 3ème débute l’attaque sur le port 513 correspondant à un rlogin






Documents




Source EXR9003.S1

Source:

http://support.microsoft.com/support/kb/articles/Q192/2/92.ASP



Unpredictable TCP Sequence Numbers in SP4

Liste des produits concernés par cet article…

This article was previously published under Q192292

SYMPTOMS


The TCP protocol assigns an initial sequence number to each connection. Prior to Service Pack 4, it is possible, through careful analysis, to determine the initial TCP sequence number for a specific Windows NT communications session. By predicting a TCP session's sequence number, it could be possible to disrupt the integrity of a communication session that does not provide its own session integrity. This is often referred to as "connection hijacking."
In Service Pack 4, the method of assigning sequence numbers to TCP session has changed to make them more unpredictable.
RESOLUTION

To resolve this problem, obtain the latest service pack for Windows NT version 4.0. For more information, please see the following article in the Microsoft Knowledge Base.


152734 How to Obtain the Latest Windows NT 4.0 Service Pack
STATUS

Microsoft has confirmed this to be a problem in Windows NT version 4.0. This problem was first corrected in Windows NT 4.0 Service Pack 4.



Source EXR9003.S2

Details

The key features of the new SP4 pattern are:


a) It uses small positive increments between 0 and 14 inclusive;

b) The increment appears to always be an even number: 0, 2, 4, 6, 8, 12, 10 or 14;

c) The increment does not appear to be time-related - the pattern is the same whether the time difference between samples is 20ms or 1s.
An example of the observed behavior is shown in the table below:
Sequence Number

Difference of occurrences

------------- ------------------------

0 648


2 584

4 608


6 660

8 602


10 666

12 641


14 590
This data shows the distribution of differences between sequence numbers from a total of 5,000 initial sequence number samples (i.e. 4,999 differences). So for example, the difference between two consecutive initial TCP sequence numbers was 10 in 666 out of 4999 sample pairs.
This data was gathered from a quietscent system on an Ethernet LAN. However, it is similar to data that was obtained from Internet-connected systems such as IIS Web servers.




Source EXR9003.S3

Source :

http://www.securiteam.com/windowsntfocus/NT_Predictable_initial_TCP_sequence_vulnerability_revisited.html



Title 28/8/1999

NT Predictable initial TCP sequence vulnerability revisited


Summary


As many people know, the Microsoft TCP/IP stack for NT 4.0 up to and including SP3 used a simple "one-per-millisecond" increment for the initial TCP sequence number. This was changed in SP4 to make the initial sequence number generation less predictable. However, while the initial TCP sequence number pattern was changed from SP3 to SP4, it's still quite predictable (and even more predictable then before).

A predictable sequence numbering helps attackers when spoofing or hijacking connections (see: Hunt, the hijacking tool)


Details


The key features of the new SP4 pattern are:
a) It uses small positive increments between 0 and 14 inclusive;

b) The increment appears to always be an even number: 0, 2, 4, 6, 8, 12, 10 or 14;

c) The increment does not appear to be time-related - the pattern is the same whether the time difference between samples is 20ms or 1s.
An example of the observed behavior is shown in the table below:
Sequence Number

Difference of occurrences

------------- ------------------------

0 648


2 584

4 608


6 660

8 602


10 666

12 641


14 590
This data shows the distribution of differences between sequence numbers from a total of 5,000 initial sequence number samples (i.e. 4,999 differences). So for example, the difference between two consecutive initial TCP sequence numbers was 10 in 666 out of 4999 sample pairs.
This data was gathered from a quietscent system on an Ethernet LAN. However, it is similar to data that was obtained from Internet-connected systems such as IIS Web servers.
While this new initial TCP sequence number pattern is different from the old pre-SP4

behavior, it is still quite easy to predict: The data above shows that there are only 8 possible next-sequence numbers. Bearing in mind that most TCP/IP stacks simply ignore incorrect sequence numbers, it's easy to bracket the expected range with a number of packets. Indeed, this new pattern may actually be easier to predict than the old behavior over the Internet and other WANs because in this environment, it's probably easier to send a spread of 8 packets than to predict the packet latency to within 8 milliseconds over a long-haul connection.


The "correct" thing for a TCP/IP stack to do when generating initial TCP sequence numbers is to make them random as recommended in RFC1948. It is known that many operating systems including Linux 2.x and Solaris 2.6 (when tcp_strong_iss is set to 2) already do this, although there are still lots of stacks out there generating predictable initial TCP sequence numbers.
Microsoft's description of the NT SP4 sequence number change is in knowledge base article ID: Q192292 "Unpredictable TCP Sequence Numbers in SP4".

Pour en savoir plus sur les ISN, voir aussi:

http://www.securiteam.com/securitynews/5PP081P4AC.html



INSA-ROUEN - ASI / UV Réseaux


Yüklə 22,31 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2020
rəhbərliyinə müraciət

    Ana səhifə