[Résolu] Principe d'un Man In The Middle (Dofus 2)

A

Anonymous

Invité
#1
Bonjour,

C'est en essayant de faire mon bot socket "normal" (pas de MITM) que j'ai compris à quoi servait réellement la technique du Man In The Middle...
Avec cette technique, on n'a pas besoin de s'embêter avec la connexion, le RSA, tout ça... On laisse faire le sale boulot au client et on modifie/rajoute ce qu'on veut. De plus les chances de se faire bannir sont moins importantes du fait que le client va répondre à tous les messages normalement sans que l'on ait besoin de s'en occuper.

Alors j'ai laissé tomber mon bot socket "normal" et je suis partis sur un MITM (comme le BiM de bouh2 en fait, mais en très simplifié).

En gros le principe c'est : Client Dofus <-> Application MITM (127.0.0.1) <-> Serveur de connexion (213.248.126.39)
J'ai réussi à mettre en place le MITM (en modifiant le config.xml etc) et ça fonctionne bien jusqu'à la sélection du serveur (SelectedServerDataMessage, ID 42). C'est le passage Serveur de connexion -> Serveur de jeu.


À partir de là je crois que je n'ai pas très bien compris et j'aurais besoin d'une confirmation/rectification.
Le message SelectedServerDataMessage contient (entre autres) l'IP du serveur de jeu et le port du serveur de jeu. Voici comment je procède :
  • J'ouvre un socket au serveur de jeu (avec l'IP et le port fournis par SelectedServerDataMessage) pour relayer les messages au client Dofus
  • Je modifie le message SelectedServerDataMessage : je remplace l'IP par 127.0.0.1 et le port par 5556 (ce n'est qu'un exemple, j'aurais pu prendre un autre port)
  • J'ouvre un socket d'écoute sur le port 5556 (qui est donc censé être le port du serveur de jeu) pour que le client Dofus s'y connecte -> problème, il ne s'y connecte jamais
  • J'envoie le message SelectedServerDataMessage au client Dofus avec l'IP et le port modifié

Comme je l'ai écris plus haut, le problème c'est que j'attends que le client Dofus se connecte au port 5556 (qui est censé être le serveur de jeu) pour relayer les messages (même principe que j'ai fais pour le serveur de connexion), mais il ne s'y connecte jamais. Et à partir de là plus de messages.


Mon approche est-elle bonne ? Ai-je oublié quelque chose ?
Merci.
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#2
Re: Principe d'un Man In The Middle (D. 2)

Salut , pour le port je sais pas si 5556 c'est faisable , officiellement ca se connecte que sur 5555 ou 443.
Le probleme vient surement des 2 1ers octets du message et/ou de la taille de l'utf (que tu envois au jeu via le bot) qui contient l'ip , 127.0.0.1 (taille = 9) a pas la meme taille que l'ip d'origine 213.xxx.xxx.xxx (taille = 15) , du coup l'utf a pas la meme taille et du coup le message final non plus (ce qui change forcement les 2 1ers octets :mrgreen: )
Si les 2 1ers octets sont les memes que ce que le serveur officiel t'envoie c'est pas bon ou si la taille de l'utf est la meme c'est pas bon
 
A

Anonymous

Invité
#3
Re: Principe d'un Man In The Middle (D. 2)

Je pense qu'on peut sans problème se connecter sur le port 5556 (je parle pas du serveur de connexion hein, mais bien du serveur de jeu) pour 2 raisons :
  • Ankama n'aurait pas prévu un champ "port" dans le SelectedServerDataMessage si le port était toujours le même
  • bouh2 semble lui aussi utiliser ce port 5556 dans son BiM pour le serveur de jeu (d'ailleurs s'il était dans les parages :) )

Normalement le problème ne vient pas du paquet, il devrait être bien sérialisé/envoyé puisque je ne modifie pas les octets à la volée mais je prend un SelectedServerDataMessage que je serialize.
De plus les 2 premiers octets ne devraient pas se voir modifiés puisque :
  • L'ID du paquet ne change pas (42 dans les 2 cas)
  • La longueur de la taille du paquet ne change pas (dans un cas le paquet fait 58 octets, dans l'autre 53 -> dans les 2 cas on peut coder ça sur 1 octet)
Par contre le 3ème octet qui représente la taille, lui effectivement il change (de 58 à 53).

Pour la taille de l'UTF elle change également.

Voici mes 2 logs WPE Pro :

Sans MITM
Code:
1  192.168.1.66:5189  213.248.126.40:5555  4  Send  
0000  02 D9 01 01                                        ....

2  213.248.126.40:5555  192.168.1.66:5189  11  Recv  
0000  00 05 08 00 00 05 E1 00 00 05 E3                   ...........

3  213.248.126.40:5555  192.168.1.66:5189  349  Recv  
0000  00 0E 01 55 00 20 68 66 74 78 64 71 6A 35 78 59    ...U. hftxdqj5xY
0010  58 78 31 65 28 56 42 71 7D 21 64 27 7C 41 33 37    Xx1e(VBq}!d'|A37
0020  44 44 71 75 79 49 01 31 86 9B DF 57 76 33 49 C3    DDquyI.1...Wv3I.
0030  8B 52 92 5E C0 3C 7A 5A 0C 01 07 87 07 65 9F 34    .R.^.<zZ.....e.4
0040  D5 ED B3 14 33 37 11 00 AF DA 81 24 3E 5E B2 30    ....37.....$>^.0
0050  0B FE E0 63 2B 5C DE F0 8D 58 6A 3B 32 49 98 05    ...c+\...Xj;2I..
0060  83 0B 30 A7 36 8F A8 B0 05 DF 67 E6 7D 85 56 03    ..0.6.....g.}.V.
0070  9E 21 10 73 6F B3 0A BB 48 BE 8B B0 CF A1 8E 80    .!.so...H.......
0080  31 C4 FC 7D BC 7A F0 DA 8B 75 E1 24 3B C9 DB 4A    1..}.z...u.$;..J
0090  11 50 B7 85 1F 26 D1 6F A8 18 30 A9 C8 23 BF E0    .P...&.o..0..#..
00A0  FD 6B 37 1E 30 B3 B3 CB B7 BB BB 95 70 6F 93 42    .k7.0.......po.B
00B0  E4 C3 DB 75 0C 81 CA 33 B7 CB D5 EB 26 2E A3 95    ...u...3....&...
00C0  F3 E5 0F D7 4B A8 4F F5 B1 62 C8 8D F1 18 AC 0E    ....K.O..b......
00D0  E2 8C 73 1A FC 82 6B AD 08 8E FE 57 5C EF B8 53    ..s...k....W\..S
00E0  CC C9 B6 38 E4 31 7E 50 85 24 1E CD 2F 4C 23 7F    ...8.1~P.$../L#.
00F0  63 8C AF 4C E6 48 44 44 52 44 69 3C 65 6F E4 7C    c..L.HDDRDi<eo.|
0100  AB F5 F4 36 08 FF 7A FE 8D 6A B1 FE 10 1A 93 2F    ...6..z..j...../
0110  BE 59 F7 1B D0 A6 2B 4C 21 ED A3 4D ED 63 73 44    .Y....+L!..M.csD
0120  9C 3F 5E AE F6 44 59 13 29 A2 A6 11 F1 ED 37 71    .?^..DY.).....7q
0130  9D 2F DA B1 A6 86 7A 31 E0 95 1B 28 4C D9 74 BF    ./....z1...(L.t.
0140  28 C2 A1 3C 16 1E F2 8C C3 77 91 64 0F 39 2F C6    (..<.....w.d.9/.
0150  8C 58 F7 74 B3 C3 52 5B 71 02 DD 01 01             .X.t..R[q....

4  192.168.1.66:5189  213.248.126.40:5555  280  Send  
0000  00 12 01 14 01 02 0B 01 00 01 19 14 01 00 01 01    ................
0010  00 02 66 72 01 00 04 3D 68 08 05 FA 26 84 E1 EF    ..fr...=h...&...
0020  E1 9A 69 34 55 22 2B 49 B6 02 60 04 8C AD 8B 27    ..i4U"+I..`....'
0030  BF D9 46 CA 9B B1 ED 15 A9 F4 2B 8D 5E A3 E3 2B    ..F.......+.^..+
0040  56 26 76 65 F0 29 7A DB 86 A7 8A C1 86 0D 0D 0C    V&ve.)z.........
0050  74 8F FE 4E B8 2E DE 31 4C B0 AD AF C3 9F 19 4F    t..N...1L......O
0060  AD 92 50 11 5A FA E5 AB CE 15 DC 54 50 1D E7 EB    ..P.Z......TP...
0070  30 9F A5 42 F7 08 81 0E 0C 84 54 C3 18 29 BE 9E    0..B......T..)..
0080  BC 10 3A 97 07 5D 91 DF F1 90 2D 8E BB 2B 93 E8    ..:..]....-..+..
0090  56 B0 77 E9 71 3A 9A A7 C1 9B 10 98 76 51 81 FF    V.w.q:......vQ..
00A0  7A 9A 86 0A B7 D0 0C 80 F2 72 C3 ED 94 E1 31 06    z........r....1.
00B0  84 EF E3 DB AF F3 41 F2 CB BE EC 77 DD F7 79 FC    ......A....w..y.
00C0  D5 1E 59 F0 58 21 27 CF B1 FE 17 B3 3C 49 63 DE    ..Y.X!'.....<Ic.
00D0  D3 BD 70 24 74 3D 77 3F 95 24 73 CD 2F D3 75 1A    ..p$t=w?.$s./.u.
00E0  7E 74 0E 6A 6F 66 99 0C 99 9F 70 9C C0 1E 92 61    ~t.jof....p....a
00F0  DA 01 68 2F 75 BE 2D 60 64 54 03 2F AC 34 A9 CE    ..h/u.-`dT./.4..
0100  5E 91 66 D2 3B 58 47 26 43 6E 17 F0 C4 7D 20 AC    ^.f.;XG&Cn...} .
0110  FB 1B CA 4A 3D CE 00 00                            ...J=...

5  213.248.126.40:5555  192.168.1.66:5189  7  Recv  
0000  00 29 04 00 65 00 65                               .)..e.e

6  213.248.126.40:5555  192.168.1.66:5189  798  Recv  
0000  62 A8 00 29 04 00 00 00 64 00 59 34 00 00 0C 62    b..)....d.Y4...b
0010  6F 74 73 6F 63 6B 65 74 30 30 31 00 0C 53 6F 63    otsocket001..Soc
0020  6B 65 74 42 6F 74 30 30 31 04 28 88 C8 00 00 00    ketBot001.(.....
0030  00 00 00 00 00 00 00 00 42 73 E1 84 90 A0 00 00    ........Bs......
0040  00 7A 02 DA 00 34 00 13 03 00 01 00 00 00 00 00    .z...4..........
0050  00 00 00 00 00 10 03 00 01 00 00 00 00 00 00 00    ................
0060  00 00 13 89 03 00 00 00 00 00 00 00 00 00 00 00    ................
0070  00 06 03 00 01 00 00 00 00 00 00 00 00 00 00 19    ................
0080  03 00 01 00 00 00 00 00 00 00 00 00 0F A3 03 00    ................
0090  00 00 00 00 00 00 00 00 00 00 00 0C 03 00 01 00    ................
00A0  00 00 00 00 00 00 00 00 00 1F 03 00 00 00 00 00    ................
00B0  00 00 00 00 00 00 00 12 03 00 01 00 00 00 00 00    ................
00C0  00 00 00 00 00 25 03 00 01 00 42 73 E2 DC C9 74    .....%....Bs...t
00D0  D0 00 00 05 03 00 01 00 00 00 00 00 00 00 00 00    ................
00E0  00 18 03 00 01 00 00 00 00 00 00 00 00 00 0F A2    ................
00F0  03 00 00 00 00 00 00 00 00 00 00 00 00 0B 03 00    ................
0100  01 00 00 00 00 00 00 00 00 00 00 1E 03 00 01 00    ................
0110  00 00 00 00 00 00 00 00 1B 59 03 00 00 00 00 00    .........Y......
0120  00 00 00 00 00 00 00 11 03 00 01 00 42 73 E2 D4    ............Bs..
0130  AE 65 E0 00 00 24 03 00 01 00 00 00 00 00 00 00    .e...$..........
0140  00 00 00 04 07 00 00 00 00 00 00 00 00 00 00 00    ................
0150  00 17 03 00 01 00 00 00 00 00 00 00 00 00 0F A1    ................
0160  03 00 00 00 00 00 00 00 00 00 00 00 00 0A 03 00    ................
0170  01 00 00 00 00 00 00 00 00 00 00 1D 03 00 01 00    ................
0180  00 00 00 00 00 00 00 00 0F A7 03 00 00 00 00 00    ................
0190  00 00 00 00 00 00 03 E9 03 00 00 00 00 00 00 00    ................
01A0  00 00 00 00 00 23 03 00 01 00 00 00 00 00 00 00    .....#..........
01B0  00 00 17 72 03 00 00 00 00 00 00 00 00 00 00 00    ...r............
01C0  00 03 03 00 01 00 00 00 00 00 00 00 00 00 00 16    ................
01D0  07 00 00 00 00 00 00 00 00 00 00 00 00 29 03 00    .............)..
01E0  00 00 00 00 00 00 00 00 00 00 00 09 03 00 01 00    ................
01F0  00 00 00 00 00 00 00 00 00 1C 03 00 01 00 00 00    ................
0200  00 00 00 00 00 00 23 29 03 00 00 00 00 00 00 00    ......#)........
0210  00 00 00 00 0F A6 03 00 00 00 00 00 00 00 00 00    ................
0220  00 00 00 0F 03 00 01 00 00 00 00 00 00 00 00 00    ................
0230  17 71 03 00 00 00 00 00 00 00 00 00 00 00 00 02    .q..............
0240  03 00 00 00 00 00 00 00 00 00 00 00 00 15 03 00    ................
0250  01 00 00 00 00 00 00 00 00 00 00 28 03 00 00 00    ...........(....
0260  00 00 00 00 00 00 00 00 00 08 03 00 00 00 00 00    ................
0270  00 00 00 00 00 00 00 1B 03 00 01 00 00 00 00 00    ................
0280  00 00 00 00 0B B9 03 00 00 00 00 00 00 00 00 00    ................
0290  00 00 0F A5 03 00 00 00 00 00 00 00 00 00 00 00    ................
02A0  00 0E 03 00 01 00 00 00 00 00 00 00 00 00 00 21    ...............!
02B0  03 00 01 00 00 00 00 00 00 00 00 00 00 01 07 00    ................
02C0  00 00 00 00 00 00 00 00 00 00 00 14 03 00 01 00    ................
02D0  00 00 00 00 00 00 00 00 00 07 03 00 01 00 00 00    ................
02E0  00 00 00 00 00 00 00 1A 03 00 01 00 00 00 00 00    ................
02F0  00 00 00 00 0F A4 03 00 00 00 00 00 00 00 00 00    ................
0300  00 00 00 0D 07 00 00 00 00 00 00 00 00 00 00 00    ................
0310  00 20 03 00 01 00 00 00 00 00 00 00 00 00          . ............

7  192.168.1.66:5189  213.248.126.40:5555  5  Send  
0000  00 A1 02 00 11                                     .....

8  213.248.126.40:5555  192.168.1.66:5189  58  Recv  
0000  00 A9 37 00 11 00 0E 32 31 33 2E 32 34 38 2E 31    ..7....213.248.1
0010  32 36 2E 38 32 15 B3 01 00 20 33 63 35 32 61 34    26.82.... 3c52a4
0020  62 66 61 36 66 35 66 38 62 33 31 32 39 64 35 38    bfa6f5f8b3129d58
0030  66 62 35 32 34 62 66 36 32 66                      fb524bf62f

9  213.248.126.82:5555  192.168.1.66:5190  13  Recv  
0000  00 05 08 00 00 05 E3 00 00 05 E3 01 94             .............

10  192.168.1.66:5190  213.248.126.82:5555  41  Send  
0000  01 B9 26 00 02 66 72 00 20 33 63 35 32 61 34 62    ..&..fr. 3c52a4b
0010  66 61 36 66 35 66 38 62 33 31 32 39 64 35 38 66    fa6f5f8b3129d58f
0020  62 35 32 34 62 66 36 32 66                         b524bf62f

11  213.248.126.82:5555  192.168.1.66:5190  9  Recv  
0000  63 69 06 00 00 00 00 00 6E                         ci......n

12  213.248.126.82:5555  192.168.1.66:5190  56  Recv  
0000  01 BC 02 BD 06 51 75 74 D5 1C 20 63 11 06 00 02    .....Qut.. c....
0010  66 72 00 00 62 85 0E 00 06 00 01 00 02 00 03 00    fr..b...........
0020  04 00 05 00 06 61 21 0A 04 28 88 C8 01 7F FF 7F    .....a!..(......
0030  FF 00 61 ED 01 01 02 C0                            ..a.....

13  192.168.1.66:5190  213.248.126.82:5555  2  Send  
0000  02 58                                              .X

14  213.248.126.82:5555  192.168.1.66:5190  9  Recv  
0000  63 69 06 00 00 00 01 00 96                         ci.......

15  213.248.126.82:5555  192.168.1.66:5190  29  Recv  
0000  5F 51 04 00 01 00 01 5F 51 04 00 00 00 00 02 C0    _Q....._Q.......
0010  5F 51 04 00 00 00 00 02 5D 03 00 00 00             _Q......]....

Avec MITM
Code:
1  127.0.0.1:5208  127.0.0.1:5555  4  Send  
0000  02 D9 01 01                                        ....

2  127.0.0.1:5555  127.0.0.1:5208  11  Recv  
0000  00 05 08 00 00 05 E1 00 00 05 E3                   ...........

3  127.0.0.1:5555  127.0.0.1:5208  349  Recv  
0000  00 0E 01 55 00 20 68 66 74 78 66 31 73 31 24 24    ...U. hftxf1s1$$
0010  51 53 5D 6A 71 6A 61 7A 74 7D 72 43 68 41 45 4B    QS]jqjazt}rChAEK
0020  4D 36 2A 2B 25 68 01 31 60 1F 66 5B 39 43 B9 CE    M6*+%h.1`.f[9C..
0030  DA CB 2B 2B 0E 43 86 2F 32 20 9D E6 E0 1C B4 A3    ..++.C./2 ......
0040  C1 3F 88 10 04 F1 E7 E2 C1 56 BD 8E 79 C1 72 30    .?.......V..y.r0
0050  7D 7A 86 B1 D2 E4 69 B1 61 18 13 46 F7 95 43 CD    }z....i.a..F..C.
0060  CC 09 B0 8E 88 1D 70 D7 D4 C7 CE 1F 07 AE D5 0E    ......p.........
0070  F4 87 CA 9C 90 E4 39 CB 35 79 46 59 70 3E 2B 8A    ......9.5yFYp>+.
0080  C1 93 E5 69 A7 9C 93 B8 8F 31 2A 7D 87 84 2A DE    ...i.....1*}..*.
0090  FF B1 E1 08 C9 EE 53 15 FC 51 B5 07 7E 99 EE 8C    ......S..Q..~...
00A0  53 2F 29 DB 77 6C 72 CE 11 8C A1 3C 0C 10 D0 D6    S/).wlr....<....
00B0  DD 92 4F 7D CA 8E 08 B6 CB 8B F2 DE 2B D3 8E 56    ..O}........+..V
00C0  47 3B B1 43 31 E3 97 9C 18 2A B9 B1 A2 6A B1 5A    G;.C1....*...j.Z
00D0  AD 86 6A D2 91 C3 2D 1D F6 00 A0 35 AC 16 C7 F1    ..j...-....5....
00E0  F5 32 05 BD 7B 71 3D DB C1 79 5F 99 CC 6A B5 C3    .2..{q=..y_..j..
00F0  73 9C 67 61 86 6C 2C 2A 8C 85 C9 5C 85 3F D3 57    s.ga.l,*...\.?.W
0100  7D 6F 6F 3D 76 E3 86 B0 7A 20 2F 3C 43 B4 A9 63    }oo=v...z /<C..c
0110  6C 6C 0F 74 8F 2B F5 73 D4 52 18 33 C1 CF 21 DC    ll.t.+.s.R.3..!.
0120  31 96 0C A9 26 4B D1 C6 64 06 5D 12 CB 50 1B 8C    1...&K..d.]..P..
0130  5F D5 B2 C8 7B 06 6D A7 C5 F0 FF A5 11 8A D1 E1    _...{.m.........
0140  CF 5F 16 16 DD 47 66 83 B7 0F DB 04 5B 52 FC 91    ._...Gf.....[R..
0150  AC 40 8E D2 B4 8A 6E 56 5D 02 DD 01 01             [email protected]]....

4  127.0.0.1:5208  127.0.0.1:5555  280  Send  
0000  00 12 01 14 01 02 0B 01 00 01 19 14 01 00 01 01    ................
0010  00 02 66 72 01 00 59 6A 15 DB 0B 99 52 FA 90 D4    ..fr..Yj....R...
0020  DA DC 63 0B 34 2E 5A 2C 27 F7 95 11 91 1D 3F 46    ..c.4.Z,'.....?F
0030  E7 31 35 05 FF F6 5C 21 40 18 87 AF AA CB 6E 0F    .15...\[email protected].
0040  F6 0F EF C2 B4 E6 ED B3 83 DA C1 A7 F5 FD CA B0    ................
0050  5D 87 F3 08 95 3B 60 DD 8F 34 7E 38 33 65 83 02    ]....;`..4~83e..
0060  80 1E C6 54 55 97 77 E4 1A B8 3E 89 46 42 2A 4A    ...TU.w...>.FB*J
0070  F4 E0 52 F7 26 63 F6 DA B7 84 DE 69 37 F3 4B E3    ..R.&c.....i7.K.
0080  4D EA C5 81 7A B2 55 FF 14 E7 A9 30 E8 16 EF DB    M...z.U....0....
0090  5D 7C 4B D2 8E 2F 81 B5 11 6B 67 23 CB 03 5C E6    ]|K../...kg#..\.
00A0  9F D4 1B CD 0D 7F B5 96 56 A2 0A F1 41 BA CB E6    ........V...A...
00B0  1A 91 46 14 8D D1 3C B0 0A 8E 75 FD E2 5C 87 EB    ..F...<...u..\..
00C0  71 D8 D7 34 86 26 B8 D6 3E 4C 1B 17 10 16 13 24    q..4.&..>L.....$
00D0  46 6F 50 B2 22 07 B1 B9 28 F1 B2 46 F5 00 F4 8A    FoP."...(..F....
00E0  CC 38 A4 BD E5 A8 BB 51 0E 48 95 EB CB 45 6D A8    .8.....Q.H...Em.
00F0  F2 B3 6B 86 04 9C 87 31 B9 41 D2 17 45 AE A8 5C    ..k....1.A..E..\
0100  88 95 BA CA C8 2F 2D 5F A1 B7 48 00 69 30 EF A4    ...../-_..H.i0..
0110  9C 8A 27 B8 15 1D 00 00                            ..'.....

5  127.0.0.1:5555  127.0.0.1:5208  7  Recv  
0000  00 29 04 00 1E 00 1E                               .).....

6  127.0.0.1:5555  127.0.0.1:5208  798  Recv  
0000  62 A8 00 29 04 00 00 00 1B 00 59 34 00 00 0C 62    b..)......Y4...b
0010  6F 74 73 6F 63 6B 65 74 30 30 31 00 0C 53 6F 63    otsocket001..Soc
0020  6B 65 74 42 6F 74 30 30 31 04 28 88 C8 00 00 00    ketBot001.(.....
0030  00 00 00 00 00 00 00 00 42 73 E1 84 90 A0 00 00    ........Bs......
0040  00 7A 02 DA 00 34 00 13 03 00 01 00 00 00 00 00    .z...4..........
0050  00 00 00 00 00 10 03 00 01 00 00 00 00 00 00 00    ................
0060  00 00 13 89 03 00 00 00 00 00 00 00 00 00 00 00    ................
0070  00 06 07 00 00 00 00 00 00 00 00 00 00 00 00 19    ................
0080  03 00 01 00 00 00 00 00 00 00 00 00 0F A3 03 00    ................
0090  00 00 00 00 00 00 00 00 00 00 00 0C 03 00 01 00    ................
00A0  00 00 00 00 00 00 00 00 00 1F 03 00 00 00 00 00    ................
00B0  00 00 00 00 00 00 00 12 03 00 01 00 00 00 00 00    ................
00C0  00 00 00 00 00 25 03 00 01 00 00 00 00 00 00 00    .....%..........
00D0  00 00 00 05 03 00 01 00 00 00 00 00 00 00 00 00    ................
00E0  00 18 03 00 01 00 00 00 00 00 00 00 00 00 0F A2    ................
00F0  03 00 00 00 00 00 00 00 00 00 00 00 00 0B 03 00    ................
0100  01 00 00 00 00 00 00 00 00 00 00 1E 03 00 01 00    ................
0110  00 00 00 00 00 00 00 00 1B 59 03 00 00 00 00 00    .........Y......
0120  00 00 00 00 00 00 00 11 03 00 01 00 42 73 E3 2D    ............Bs.-
0130  06 5B E0 00 00 24 03 00 01 00 00 00 00 00 00 00    .[...$..........
0140  00 00 00 04 07 00 00 00 00 00 00 00 00 00 00 00    ................
0150  00 17 03 00 01 00 00 00 00 00 00 00 00 00 0F A1    ................
0160  03 00 00 00 00 00 00 00 00 00 00 00 00 0A 03 00    ................
0170  01 00 00 00 00 00 00 00 00 00 00 1D 03 00 01 00    ................
0180  00 00 00 00 00 00 00 00 0F A7 03 00 00 00 00 00    ................
0190  00 00 00 00 00 00 03 E9 03 00 00 00 00 00 00 00    ................
01A0  00 00 00 00 00 23 03 00 01 00 00 00 00 00 00 00    .....#..........
01B0  00 00 17 72 03 00 00 00 00 00 00 00 00 00 00 00    ...r............
01C0  00 03 03 00 01 00 00 00 00 00 00 00 00 00 00 16    ................
01D0  07 00 00 00 00 00 00 00 00 00 00 00 00 29 03 00    .............)..
01E0  00 00 00 00 00 00 00 00 00 00 00 09 03 00 01 00    ................
01F0  00 00 00 00 00 00 00 00 00 1C 03 00 01 00 00 00    ................
0200  00 00 00 00 00 00 23 29 03 00 00 00 00 00 00 00    ......#)........
0210  00 00 00 00 0F A6 03 00 00 00 00 00 00 00 00 00    ................
0220  00 00 00 0F 03 00 01 00 00 00 00 00 00 00 00 00    ................
0230  17 71 03 00 00 00 00 00 00 00 00 00 00 00 00 02    .q..............
0240  03 00 00 00 00 00 00 00 00 00 00 00 00 15 03 00    ................
0250  01 00 00 00 00 00 00 00 00 00 00 28 03 00 00 00    ...........(....
0260  00 00 00 00 00 00 00 00 00 08 03 00 00 00 00 00    ................
0270  00 00 00 00 00 00 00 1B 07 00 00 00 00 00 00 00    ................
0280  00 00 00 00 0B B9 03 00 00 00 00 00 00 00 00 00    ................
0290  00 00 0F A5 03 00 00 00 00 00 00 00 00 00 00 00    ................
02A0  00 0E 03 00 01 00 00 00 00 00 00 00 00 00 00 21    ...............!
02B0  03 00 01 00 00 00 00 00 00 00 00 00 00 01 07 00    ................
02C0  00 00 00 00 00 00 00 00 00 00 00 14 03 00 01 00    ................
02D0  00 00 00 00 00 00 00 00 00 07 03 00 01 00 00 00    ................
02E0  00 00 00 00 00 00 00 1A 03 00 01 00 00 00 00 00    ................
02F0  00 00 00 00 0F A4 03 00 00 00 00 00 00 00 00 00    ................
0300  00 00 00 0D 07 00 00 00 00 00 00 00 00 00 00 00    ................
0310  00 20 03 00 01 00 00 00 00 00 00 00 00 00          . ............

7  127.0.0.1:5208  127.0.0.1:5555  5  Send  
0000  00 A1 02 00 11                                     .....

8  127.0.0.1:5555  127.0.0.1:5208  53  Recv  
0000  00 A9 32 00 11 00 09 31 32 37 2E 30 2E 30 2E 31    ..2....127.0.0.1
0010  15 B4 01 00 20 37 35 65 33 36 31 34 66 65 65 34    .... 75e3614fee4
0020  64 65 37 34 62 66 63 36 32 36 66 38 35 36 39 39    de74bfc626f85699
0030  35 38 61 32 38                                     58a28

Je sais que les logs contiennent le nom de compte/mot de passe : ce n'est pas grave, il n'y a même pas de personnage dessus et c'est un compte dédié à mes essais de bots.


Si les sources vous intéressent, elles sont en pièce jointe. Le mot de passe du zip est cadernis.fr.

EDIT : le code n'est pas super propre et le programme va buguer en cas de multicomptes.
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#4
Re: Principe d'un Man In The Middle (D. 2)

hum... en plus j'ai dit n'importe quoi , c'est le 3ieme octet qui doit etre different et oui il est bien different :( j'ai plus les reflexes depuis le temps que j'ai pas été la dedans , tu as essyé de deco le bot du client apres avoir envoyé le 42 ?
 
A

Anonymous

Invité
#5
Re: Principe d'un Man In The Middle (D. 2)

Comment ça ? Arrêter le processus du MITM après que le Packet 42 soit envoyé ?

Si oui voilà ce que ça donne : http://img15.hostingpics.net/pics/557240firewall.png

5 personnes ont téléchargé les sources, personne n'a trouvé le problème :p ?
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#6
Re: Principe d'un Man In The Middle (D. 2)

Dans la théorie c'est bien ça, si le client ne s'y connecte pas tu peux envoyer un BasicPingMessage (voir BiM.MITM/MITM.cs @ ligne 138).
N'oublis pas de gérer AuthenticationTicketMessage, enregistre le ticket pour retrouver le client qui se connecte au world apres ;)

Comme ça là je vois pas ce qui cloche
 
A

Anonymous

Invité
#7
Re: Principe d'un Man In The Middle (D. 2)

bouh2 a dit:
Dans la théorie c'est bien ça, si le client ne s'y connecte pas tu peux envoyer un BasicPingMessage (voir BiM.MITM/MITM.cs @ ligne 138).
N'oublis pas de gérer AuthenticationTicketMessage, enregistre le ticket pour retrouver le client qui se connecte au world apres ;)

Comme ça là je vois pas ce qui cloche
J'envoie le BasicPingMessage à l'AuthServer ou au GameServer ?
Et à quel moment je l'envoie ?

J'ai regardé dans BiM mais le code est assez danse... D'après ce que j'ai compris tu l'envoies dès que le client est connecté au MITM ? Par contre je n'ai pas bien compris à quel serveur tu l'envoies.
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#8
Re: Principe d'un Man In The Middle (D. 2)

Oui en fait ce n'est pas le même problème que j'avais, moi c'était le serveur distant qui ne répondait pas.

Le seul endroit où ça peut bloquer c'est que ton bot n'accepte pas de connexion, tu devrais revoir cette partie du code.
 
A

Anonymous

Invité
#9
Re: Principe d'un Man In The Middle (D. 2)

bouh2 a dit:
Oui en fait ce n'est pas le même problème que j'avais, moi c'était le serveur distant qui ne répondait pas.

Le seul endroit où ça peut bloquer c'est que ton bot n'accepte pas de connexion, tu devrais revoir cette partie du code.
Je ne vois vraiment pas l'erreur... Pourrais-tu jeter un coup d’œil au code ci-dessous ? Je ne vois pas pourquoi il ne fonctionnerait pas mais bon...

Fonction qui lance l'écoute sur le port 5556 :
Code:
private void StartMitmGameServer()
{
    _mitmGameListenerSocket = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
    _mitmGameListenerSocket.Bind(new IPEndPoint(IPAddress.Any, _mitmGamePort)); // _mitmGamePort = 5556
    _mitmGameListenerSocket.Listen(10);

    AsyncCallback acceptSocketAsyncCallback = new AsyncCallback(MitmGameListenerAcceptSocket);
    _mitmGameListenerSocket.BeginAccept(acceptSocketAsyncCallback, _mitmGameListenerSocket);
}

Fonction qui accepte le Socket (elle n'est jamais appelée, j'ai vérifié avec des points d'arrêt) :
Code:
private void MitmGameListenerAcceptSocket(IAsyncResult result)
{
    _gameClientSocket = _mitmGameListenerSocket.EndAccept(result);

    Thread receiveDataFromGameClient = new Thread(new ThreadStart(ReceiveDataFromGameClient));
    receiveDataFromGameClient.Start();


    AsyncCallback acceptSocketAsyncCallback = new AsyncCallback(MitmGameListenerAcceptSocket);
    _mitmGameListenerSocket.BeginAccept(acceptSocketAsyncCallback, _mitmGameListenerSocket);
}


Partie du code qui modifie SelectedServerDataMessage et le renvoie :
Code:
switch (packetId)
{
    case SelectedServerDataMessage.PacketID:
        SelectedServerDataMessage selectedServerDataMessage = new SelectedServerDataMessage();
        selectedServerDataMessage.Deserialize(packetStream);


        IPAddress d@fus2GameServerIp = IPAddress.Parse(selectedServerDataMessage.Address);
        _d@fus2GameServerSocket = new Socket([email protected], SocketType.Stream, ProtocolType.Tcp);
        [email protected](new IPEndPoint(d@fus2GameServerIp, _d@fus2AuthServerPort)); // Connect to the Game Server

        Thread receiveDataFromGameServer = new Thread(new ThreadStart(ReceiveDataFromGameServer));
        receiveDataFromGameServer.Start();



        selectedServerDataMessage.Address = _mitmGameIp.ToString(); // _mitmGameIp = 127.0.0.1
        selectedServerDataMessage.Port = _mitmGamePort; // _mitmGamePort = 5556
        selectedServerDataMessage.Serialize(_authClientStream); // Send the modified SelectedServerDataMessage to the Client
        break;
}


J'ai même désactivé mon pare-feu, le port 5556 n'est pas bloqué...
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#10
Re: Principe d'un Man In The Middle (D. 2)

µnKn0wn_H4CK3r a dit:
Comment ça ? Arrêter le processus du MITM après que le Packet 42 soit envoyé ?

Si oui voilà ce que ça donne : http://img15.hostingpics.net/pics/557240firewall.png

5 personnes ont téléchargé les sources, personne n'a trouvé le problème :p ?
non juste fermer la connexion du client <-> socket de loging , socket.disconnect , tant que celui la est pas deco le client cherchera pas (peut pas ?) a aller se co sur l'autre (socket de jeu) , juste apres :
selectedServerDataMessage.Serialize(_authClientStream); // Send the modified SelectedServerDataMessage to the Client
// deco le socket de loging
 
A

Anonymous

Invité
#11
Re: Principe d'un Man In The Middle (D. 2)

ToOnS a dit:
non juste fermer la connexion du client <-> socket de loging , socket.disconnect , tant que celui la est pas deco le client cherchera pas (peut pas ?) a aller se co sur l'autre (socket de jeu) , juste apres :
selectedServerDataMessage.Serialize(_authClientStream); // Send the modified SelectedServerDataMessage to the Client
// deco le socket de loging
En effet, ça fonctionne ! En fermant la connexion client Dofus <-> auth server MITM le client Dofus demande bien la connexion pour le game server !

Je n'y avais même pas pensé... Je ne sais pas pour quelle raison ils (les dev d'Ankama) attendent que le socket au serveur de connexion soit fermé pour se connecter au serveur de jeu... Même si c'est plus logique en effet rien n'empêcherait d'avoir 1 socket connecté au serveur de connexion et 1 autre au serveur de jeu en même temps.


Enfin bref, je peux enfin continuer (ou plutôt commencer) mon bot.

Merci à vous !
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#12
Re: [Résolu] Principe d'un Man In The Middle (D. 2)

tu vas voir que ils (les dev d'la société du jeu D.) sont un peu bizards :mrgreen: meme souvent carrément a coté de la plaque
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#13
Re: [Résolu] Principe d'un Man In The Middle (D. 2)

Simplement parce qu'il fallait bien qu'un des deux (client ou serveur) ferme la connexion. En l'occurence ici c'est le client pour éviter toute ambiguité.
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#14
Re: [Résolu] Principe d'un Man In The Middle (D. 2)

non c'est le serveur :lol: en effet c'est ambigue :mrgreen:
 
Haut Bas