Résolu [macOS][Python] MITM Dofus Rétro

Inscrit
10 Septembre 2020
Messages
3
Reactions
1
#1
Bonjour,

Je cherche à faire un MITM Dofus Rétro en Python sous macOS mais j'ai quelques ennuis.

J'utilise proxychains4-ng avec ce script proxychains.conf pour lancer Dofus Retro ;

# proxychains.conf VER 4.x

strict_chain
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
#localnet 127.0.0.0/255.0.0.0


[ProxyList]
http 127.0.0.1 12345


Ensuite avant de me connecter avec le client au serveur de connexion je lance le Proxy :

#!/usr/bin/env python3

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)


s.bind(("127.0.0.1", 12345)) # on initialise un serveur socket qui écoute sur le port 12345 en attente du client D1

fd, addr = s.accept() # on attend que le client D1 se connecte au proxy
ip, port = str(addr[0]), str(addr[1])


data = fd.recv(4096) # on reçoit les données du client Dofus1 (b'CONNECT <IP_CONNEXION_SERVER>:5555 HTTP/1.0\r\nHost: <IP_CONNEXION_SERVER>:5555\r\n\r\n')
print(data)

s_login = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # on initialise un nouveau socket pour se connecte au serveur de connexion de D1
s_login.connect(("<IP_CONNEXION_SERVER>", 5555))


data_login = s_login.recv(4096) # on attend la reponse du serveur
print("[SERVER] ->", data_login) # il répond le premier message "HC"

fd.send(data_login) # on renvoi ce message au client
data = fd.recv(4096) # et on attend sa réponse
print(data) # ca freeze et ca repond ""


s_login.close()
s.close()


Ce que fais ce script très simplement est :
- attendre la connexion du client
- ensuite il se connecte au serveur de connexion de D1
- il recoit le premier message "HC" avec la clef pour le mot de passe
- il envoi le message au client qui c'était connecté précédement
- et il attend la réponse du client

Seulement le script bloque au moment d'envoyer/recevoir la reponse du serveur de connexion au client. Le client freeze sur macOS avant de renvoyer un message vide.

Je ne sais pas si le client Dofus contient une protection (vous pourrez peut etre maiguiller a ce niveau, est ce que certaines personnes ont toujours des MITM fonctionnels aujourd'hui ?) ou si la méthode utilisée n'est pas bonne.
 
Dernière édition:
Haut Bas