Merci pour ton aide Tazman, j'ai pu réaliser le fameux programme! C'est une superbe expérience.
En revanche, je rencontre un autre problème...
Je hook à l'aide d'un programme donné par un membre de la communauté: NoAnkama (disponible sur Github), je redirige le traffic vers un serveur Socket fait en Node.js.
J'ai créer deux classes, une pour le client et une pour le serveur. Je fais très simple pour le moment, j'affiche le buffeur envoyé par le client et par le serveur, et je les redistribue comme cela devrait se passer.
const { ClientSocket } = require("./Net/client.js");
const { ServerSocket } = require("./Net/server.js");
var client = new ClientSocket();
var server = new ServerSocket();
server.on("s-data", (datas) => {
console.debug("[SERVEUR]: ", datas.toString('hex').match(/../g).join(' '));
client.send(datas);
})
client.on("c-data", (datas) => {
console.debug("[CLIENT] sended :\n", datas.toString('hex').match(/../g).join(' '));
server.send(datas);
})
Jusque là tout va bien, donc je suis content, et je test un peu, donc j'essaye avec un mot de passe qui ne fonctionnera pas (un faux quoi!) et là j'ai bien le message identifiants incorrects.
Par contre, si je met le bon mot de passe, j'ai tout un tas d'échange qui se produit et là, le client ne répond plus après 4 infos lâchés par le serveur...
Je vous laisse un screen des derniers échanges (on dirai presque le début d'une enquête :D)
![[Image Introuvable]](https://i.gyazo.com/1462c24606766c248c65a5bec5eb7a3d.png)
Je ne comprend pas pourquoi le client bloque, y'a même pas le petit sablier, c'est juste mort, et si je regarde la liste des processus, la mémoire ne bouge pas, rien...
Je vais continuer de chercher mais si vous avez une idée avant moi je suis preneur!
Je peux donner les sources si besoin!
EDIT: Après avoir durement travaillé sur le programme, je me suis dit que peut être je parse mal les paquets, et qu'il faut les découper, ou alors les rallonger... Mais non, même le premier paquets: "ProtocolRequired", ID: "00 05" affiche un longueur de (2052 - 4).
J'attend pourtant d'autre données, mais rien n'arrive, comment est-ce possible?
this.client.on('data', (data) => {
console.debug("[SERVEUR]: ", data.toString('hex').match(/../g).join(' '));
});
Le programme principal: https://hastebin.com/bamobesasa.js
La class Serveur: https://hastebin.com/talesorudu.js
La class Client: https://hastebin.com/zezuleyine.js
EDIT : Résolu! Le soucis était le suivant. Je lisais mal la longueur d'un message. Maintenant il bloque toujours mais j'imagine que je dois changer de serveur donc tout va bien! :)
Ce n'est pas très propre pour le moment, mais si ça peut d'un côté aider certaine personne à comprendre le MITM et d'un autre côté à m'aider via vous.. :)
Merci d'avance.