Un sniffer ?

Bonjour tout le monde !



Je suis a la recherche d un sniffer me permettant de decortiquer les paquets TCP transportant de l ICA.

Si cela n existe pas, je voudrais au moins voir du RDP circuler.

Tout ceci est pour illustrer et argumenter mon projet ^^

J ai pu trouver des informations comme quoi ICA se placait apres la couche 4 ou au niveau de la couche 5 ou encore au niveau de la couche 7. Je voudrai donc connaitre la veritable reponse en analysant ce qui passe sur le reseau :slight_smile:



Merci !!!

ICA c’est une couche de Presentation sur l’OSI.



tu ne pourra PAS décoder le trafic ICA pour deux raisons :

  1. c’est un protocole propriétaire
  2. maintenant, il est tres souvent encrypté (RC5 ou au pire RC4 suivant les settings dans la CMC)



    personnellement, j’utilise Wireshark pour l’analyse réseau.

    que cherches tu à décortiquer en fait ? il n’est pas possible de récupérer grand chose une fois le handshake entre le client et le serveur effectué. Je t’ai extrait ce qu’il est possible de facilement voir dans une trace ICA…

Merci beaucoup :slight_smile:



En fait, je cherchais a voir ICA lors d une capture pour “prouver” ou il s applique dans le modele OSI.

Je pensais qu un sniffer avait ete cree pour qu il soit possible de voir ce protocole passer.

Il est bien possible de voir du SMB alors qu il me semble qu il appartienne a Microsoft.



ICA etant une surcouche de RDP, j ai un peu de mal a voir si ces 2 protocoles se partagent la meme couche (la 7eme donc ^^) ou si RDP se situe sur une couche inferieure.



J aimerai avoir l esprit clair sur le role de chacun pour bien l expliquer lors de mon exposer (de plus, ca m aiderait personnellement a comprendre le concept ^^).



J ai base ma batterie de serveurs sur Active Directory.

Si je resume une action de connexion ICA de la part d un client, je dirais que :

-le client interroge le serveur Metaframe ;

  • le serveur Metaframe interroge le controleur de domaine pour verifier son identite et connaitre ses permissions personnelles ;
  • le controleur de domaine repond a la requete du serveur Metaframe ;
  • le serveur Metaframe ouvre (ou non) la session demandee.

    => Voila en fait ce que je voudrai representer par un schema a mes collegues en precisant chaque etape du modele OSI.

    Ai je fait une erreur de comprehension ?

désolé de le confirmer mais oui tu as fait quelques erreurs de compréhension. ;D



ICA n’est PAS une surcouche de RDP. :o >:( Là où toutes les autres sociétés dans le domaine du serveur d’application s’appuient sur le protocole RDP (protocole de niveau 7), Citrix (qui est je le rappelle à l’origine de Terminal Services) possède son propre protocole de presentation => Independant Computing Architecture (plus d’infos sur http://youdeliver.citrix.com/Play/tabid/79/Default.aspx?pid=1048  ;D ;D mais surtout dans le livre de cours Citrix Core Technologies and Architecture CTX-6100 Courseware)



tout sniffer réseau (netmon de MSFT, wireshark (avant il s’appelait Ethereal), sniffer pro, coralreef…) permet de suivre le traffic mais tu ne pourra jamais (à part en travaillant chez Citrix… et encore) décrypter une session ICA. Cependant une simple trace réseau pourra déjà t’aider.

Je conseille la méthode suivante :

  1. configure PN (protocole TCP/IP+HTTP) ou web interface
  2. authentifie toi pour avoir la liste des applications
  3. sur la machine cliente, lance une trace reseau (wireshark est gratuit tout comme netmon 3.0) sans filtres de capture
  4. arrête la trace quand l’application est lancée



    la procédure exacte est :
  5. le client envoie au serveur une requete au broker XML (le serveur configuré dans WI ou PN) pour avoir l’adresse du serveur Metaframe qui heberge l’appli X
  6. le broker XML interroge le DataCollector pour obtenir la liste des serveurs publiant cette application
  7. le DC va renvoyer au broker XML l’IP (ou FQDN suivant la config dans la ferme) du serveur le moins chargé (suivant les regles de load balancing configurées dans la ferme)
  8. le broker XML renvoie cette IP/FQDN au client PN (ou WI qui créé alors le fichier ICA et l’envoie au client)
  9. le client ICA se connecte à cette IP soit sur le port 2598 (si session reliability est actif) soit en 1494 classiquement et commence l’échange TCP
  10. une fois la TSCAL validée, une session Windows s’ouvre et l’utilisateur entre ses credentials.
  11. le serveur MF vérifie les credentials en communiquant avec le Data Controler AD
  12. si les credentials sont validés ET que l"utilisateur fait partie du groupe Remote Desktop user (pour Win2003) alors la session continue






  • le serveur Metaframe interroge le controleur de domaine pour verifier son identite et connaitre ses permissions personnelles ;
  • le controleur de domaine repond a la requete du serveur Metaframe ;
  • le serveur Metaframe ouvre (ou non) la session demandee.

Ce que je ne comprends pas du coup, c est pourquoi faut il installer Terminal Server ?

Terminal Server utilise le protocole RDP, Citrix utilise ICA. Si ICA

J ai vraiment du mal avec le concept, je n ai pas trouve d explications claires sur le fonctionnement de ce protocole.

Par contre, j ai bien compris que Citrix avait travaille sur les codes sources de Windows NT3.51 ce qui lui a permis de sortir Winframe. Puis, si j ai bien compris, Citrix a vendu la technologie de base de Terminal Server pour NT4 TSE.

J avais trouve aussi des infos disant que “Citrix est une surcouche de TSE.” (http://www.novalink.fr/fr/actualites.html?actu_id=16)



J ai deja effectue une capture avec Ethereal (et oui, une vieille version mais elle fonctionne tres bien ^^).

Sauf que je n ai pas compris tout le processus ^^. Je retourne effectuer une etude d une autre capture :stuck_out_tongue:



Pour le moment, je ne peux pas ecouter le lien que tu m as laisse.

Je ne voulais pas m embarquer dans trop de difficultes, alors, j ai tout fait en direct :

  • Server MF : Windows 2000 Advanced Server + le service Terminal installé mais non activé + Tous les composants Citrix sans le serveur de licences + un pack Office pour utiliser Access pour le magasin de données (Data Store)
  • Controleur de domaine AD qui sert aussi de serveur de licences Citrix : Windows 2000 Advanced Server + le gestionnaire de licences Terminal Server + AD + Serveur DNS + Serveur DHCP
  • Un poste pour les tests : Windows 2000 Pro

    Mes machines tournent sous VMWare pour information :slight_smile:



    Si j effetue un ptit schema rapide au niveau du modele OSI, serais je dans le “vrai” en disant :

    Couche 7 : RDP - ICA

    Couche 6

    Couche 5

    Couche 4 : TCP - UDP

    Couche 3 : IP (je ne m etale pas sur les autres protocoles)

    Couche 2 : Ethernet (par exemple)

    Couche 1



    PS : Qu entends tu par PN ? Tu veux parler de NFuse ?
"Opy" wrote:
Ce que je ne comprends pas du coup, c est pourquoi faut il installer Terminal Server ?
Terminal Server utilise le protocole RDP, Citrix utilise ICA.
Terminal serveur, tu ne l'install pas, tu l'active. Il fait depuis WTS (nt4 srv sp3) et 2000 parti du noyau de Windows. RDP et ICA partage la couche multiwin, ce que Citrix a vendu a billou. Le multiwin c'est ce qui permet de gérer le multi user (session) sur le meme windows, il permet d'adresser les process en memoire a la mode *nix.
"Opy" wrote:

PS : Qu entends tu par PN ? Tu veux parler de NFuse ?

Le terme PN désigne le client ICA complet, le Citrix Program Neighborhood

Nfuse peux ce servir de ce client

regarde ton adresse hotmail, t’a un message qui t’attends.

Merci bien recu ^^