[Hacking] Gruge de compte

Répondre
Partager Rechercher
Salut à vous la communauté des développeurs,

voila certains le savent déjà mais des joueurs s'amusent à se connecter avec les persos des autres grace au multicompte : le denomminateur commun restait la clef publique. Un ban de celle-ci suffisait.

Mais je viens de constater sur mon serveur que des joueurs sont allés encore plus loin dans leur méfait en parvenant à changer leur clef publique (en ayant qu'un seul CD de nwn). La manip reste heureusement compliquée. Bref, il n'y a plus aucun moyen de controler une frange des joueurs qui s'est mise à foutre en l'air des serveurs (vol de joueurs, diminution d'XP, sape de campagne...).

Il y a un moyen de lutter contre eux, c'est de mettre en commun les clefs de ces individus et les bans de tous nos serveurs. Je ne les mettrai pas ici, mais envoyez moi un mp et je vous communique ma liste.
Les preuves sont mes logs. Oui je pourrais les transmettre. Faudrait également faire un signalement de faille à Bioware. Quelqu'un a une adresse ? Si on est plusieurs à leur faire la remarque, je pense qu'ils réagiront.
Citation :
Provient du message de Sherazade
L'information serait à donner sur le forum NWN Server Admin de Bioware.

Pour notre part, nous n'en sommes qu'en alpha privée donc nous n'avons pas eu encore ce genre de problème.
Non non surtout pas !
Mis a part le fait que le forum NWN Server Admin de bioware est aussi fréquenté que la friche industrielle de Tchernobyl, poster le message sur le forum ne ferait que répendre la connaissance de cet exploit.

il faut envoyer un mail ici:
nwbugs@bioware.com
nwexploits@bioware.com

en décrivant bien la procédure et les conditions nécessaire a la re-création de cet exploit. Attention, je crois savoir qu'ils ont un systeme de filtrage de spam assez aggressif et je te conseille de ne mettre aucun lien dans ton mail (et si possible de l'envoyer en unicode et sans HTML).
__________________
..::Heavenlynet le net paradisiaque ::..
http://gw.heaven-ly.net/images/stories/divers/sigfg042.gif
Je reçois des mps concernant d'autres joueurs malhonnêtes : l'envers du décor nwn n'est pas rose du tout...

On me demande des précisions sur cet exploit. En fait je n'ai rien à ajouter si ce n'est le fait qu'à présent :

Code PHP:

 un jeux acheté != une clé publique 

(la clef public est celle qu'on obtient via GetPCPublicKey(object oPC) )

Donc on ne peut plus bannir les joueurs par CD, ce qui semblait la manière la plus sure de le faire. Quand on ajoute à cela la possibilité d'usurper des comptes et donc de jouer avec les persos d'autres joueurs, on arrive à l'anarchie.

Enfin oui j'ai vu cette adresse Rhygar, je m'en occupe ce week-end.
Il y a des trucs que je comprend pas.
Citation :
mais des joueurs s'amusent à se connecter avec les persos des autres grace au multicompte
Donc ça voudrait dire que si je crée un perso sur un serveur sous le compte Machin, la personne qui se connectera sur ce serveur sous le compte Machin pourra prendre mon perso ? Et le mot de passe du compte il sert à quoi alors ?
Citation :
Mais je viens de constater sur mon serveur que des joueurs sont allés encore plus loin dans leur méfait en parvenant à changer leur clef publique (en ayant qu'un seul CD de nwn). La manip reste heureusement compliquée. Bref, il n'y a plus aucun moyen de controler une frange des joueurs qui s'est mise à foutre en l'air des serveurs (vol de joueurs, diminution d'XP, sape de campagne...).
Si le joueur change sa clé, celle-ci risque de ne pas être reconnue par le Master Server de BioWare non ?
Citation :
Il y a un moyen de lutter contre eux, c'est de mettre en commun les clefs de ces individus et les bans de tous nos serveurs. Je ne les mettrai pas ici, mais envoyez moi un mp et je vous communique ma liste.
Mais s'ils changent leur clé cd comme ils veulent, ça sert à rien de mettre les clés en commun.
Ensuite, il faut faire attention à cette mise en commun. Imaginons la personne qui a un pc qui sert pour lui et pour son 'petit frère boulet en puissance'. Si c'est le petit frère qui se connecte et qui pose problème, au final l'autre frère subira lui aussi les conséquences de ce bannissement. Il doit être possible de trouver d'autres exemples dans ce style.

Si pour les explications il venait à être nécessaire de dire comment on reproduit cet exploit pour que je puisse comprendre, alors je ferais sans les explications (ou alors uniquement par MP).
Simkim, il y a deux catégories en effet dans ce hacking. Il y a ceux de bas vol qui hack les comptes. Je ne sais pas comment ils obtiennent les clés mais qq chose me dit que c'est pas trop difficile.

Puis il y a les hackeurs de haut vol qui ont trouvé une faille dans la gestion des clés publiques. Le vrai probleme est que le hackeur de haut vol est aussi celui de bas vol mais que celui de bas vol n'est pas forcément celui de haut vol ... On peut en effet lutter contre les premiers mais pas contre les seconds.
Je vais rester volontairement dans le vague, mais récemment deux de mes connaissances ont été victimes d'un pirate qui a su se procurer leur n° de cd-key.
Résultat, il ne leur restait plus qu'à attendre qu'il soit allé se coucher pour pouvoir jouer.
Heureusement pour ces deux là, le crétinisme de ce genre d'individu n'a pas de limite et ils ont finalement réussi à rejouer.
Il n'y a pas moyen d'avoir l'IP de la personne et de porter plainte ? telle IP, connectée à telle heure sur votre serveur = personne physique identifiable normalement non ?
Je me pose une question là. Normalement on a droit à 5 comptes par clé-cd si je me souvient bien, chaque compte pouvant être protégé par un mot de passe.

Si je me crée 5 comptes, chacun avec un mot de passe différent et bien compliqué et connus de moi seul (je ne coche pas la case pour que NWN se souvienne du mot de passe), mais que quelqu'un prend ma clé-cd. Normalement cette personne ne devrait pas pouvoir jouer non ?
voici une piste a explorer :

Code PHP:

void main()
{
object oPC GetEnteringObject();
string sCDKey GetPCPublicCDKey(oPC);
int nEstDejaVenu GetCampaignInt("VENUES",GetName(oPC),OBJECT_INVALID);

if(
nEstDejaVenu==TRUE)
    {
    
DelayCommand(2.0f,FloatingTextStringOnCreature("Verification de votre clef CD par le serveur...",oPC,FALSE));
    if(
GetCampaignString("VENUES_CD_STRINGS",GetName(oPC),OBJECT_INVALID)!=sCDKey)
        {
        
DelayCommand(2.5f,FloatingTextStringOnCreature("Les clefs ne correspondent pas...",oPC,FALSE));
        
DelayCommand(3.0f,BootPC(oPC));
        }
        else
        {
        
DelayCommand(4.0f,FloatingTextStringOnCreature("Correspondance entre la clef CD et votre personnage verifiee.",oPC,FALSE));
        
DelayCommand(5.0f,FloatingTextStringOnCreature("Bienvenue a Markhor !",oPC,FALSE));
        }
    }


if(
nEstDejaVenu==FALSE)
    {
    
SetCampaignString("VENUES_CD_STRINGS",GetName(oPC),sCDKey,OBJECT_INVALID);
    
SetCampaignInt("VENUES",GetName(oPC),TRUE,OBJECT_INVALID);
    }

Ceci contre les hackeurs de bas vol, dans le sens ou si le master server est HS, il verifie la correspondance entre la clef regulierement utilisee par le joueur pour ce personnage précis. Si elles ne correspondent pas, le personnage est bloqué.

Tenez moi au courant...

++++
Mayk
FR - [CEP] - MARKHOR
Citation :
Provient du message de Mastokk
Il n'y a pas moyen d'avoir l'IP de la personne et de porter plainte ? telle IP, connectée à telle heure sur votre serveur = personne physique identifiable normalement non ?
Je crains que des plaintes pour cause de "foutage de gueule sur un serveur de jeu" n'aboutissent pas au niveau des FAI.

Pour le script du dessus, j'y vois deux inconvénients :
- Une personne qui joue depuis le PC d'un ami et donc sans sa clé habituelle.
- Une personne changeant de machine et dont le CD s'est abîmé, achète donc un autre CD et réinstalle, mais surtout ne pense pas à utiliser son ancienne clé CD.

Je donne ces deux exemples qui me passent par la tête car ils ont été vécus par certaines connaissances.
Un joueur séreux prévient alors l'admin du serveur qu'il a changé de clef.

Cela les force a contacter l'admin, ce qui permet a ce dernier de garder un controle sur les évènements...

Sans ce code, la porte est grande ouverte... Mieux vaut barrer la route aux emmerdeurs.

Il t'arrive de voir les aspects positifs de temps en temps ?


Je le met en route sur Markhor. On verra bien ce que cela donne...
Oui tu as raison . Il semble alors nécessaire de bien prévenir qu'en cas de changement de clé il est indispensable de prévenir un admin.

Tiens juste en passant, tu pourrais optimiser ton code en ne faisant qu'un seul GetCampainString, sur la chaine correspondant à la clé. Si la personne n'est pas encore venue alors elle n'existe pas et vaut donc "".

[Edit : Pas bien d'éditer pendant que je suis en train de répondre .]
[Edit bis : Encore moins bien d'éditer sa réponse .]
[Edit ter : Mais il insiste le bougre .]
Perso j'irai même plus loin en créant une table MySQL de clés bannies. Ainsi, certaines actions illicites entrainent un bannissement. (dialogue en boucle pour récuper les pos et les xps et en conservant les items résolvant la quete, etc.)

Sinon ton script mayk entraine un cd = un compte = un perso sur le serveur. C'est un peu hard comme restriction. Remplace le GetName par GetPCPublicName (son login) plutot.
Nope :

1 CDKEY = autant de persos que tu veux

le serveur associe le nom du perso a la clef de CD, quel que soit le perso.

Il est vrai que l'on pourrait vérifier que le nom de compte correspond a la clef CD. Cela suffirait.
je viens de relire le thread et j'ai l'impression que cela recoupe un autre hack que tout admin se doit de connaitre.

quand biobio desactive son masterserver , (pour check, maintenance ou autre... vous le savez car nwn vous averti que le master server est injoignable) il n'y a plus aucun check de clef (et de mot de passe du compte puisque verifié AUSSI par le master server), et donc à ce moment là, si vous connaissez le nom de compte d'un joueur, vous pouvez rentrer dans le jeu A LA PLACE de ce joueur avec n'importe quoi comme clef cd et mot de passe compte
et donc utiliser ses persos et faire ce que bon vous semble sous son nom (en jeu j'entend)....

donc pour les admin se serveur persistant ou 24/24, quand le master serveur de bio est HS, NE LANCER PAS VOTRE MODULE... (et CESSER DE DEMANDER à vos joueurs d'ouvrir des comptes forums en utilisant leur nom de comptes nwn...)

biobio est en train de cogiter à une fonction qui renvoie false/true quand le master server est online ou non, ce qui permet par scripting d'empecher la connection des joueurs, ou du moins de la gerer...(normalement pour la 1.63)
oui mais...c'est le master server qui verifie si cette clef est valide ou non... et si le master server est offline, tu peux faire ce que tu veux en local avec ta clef (une fois que nwn est installé, il n'y a plus que le master server qui l'utiliser pour check) et donc tupeux la bricoler pour qu'elle ressemble à une autre... ou plein d'autres choses...
Quasiment tous les modules utilisent une base de donnée. Je pense qu'il est tout a fait envisageable de mettre en place un mot de passe en jeu qui déconnecté le joueur si il n'a pas fourni le bon mot de passe. Chaque joueur dispose ainsi d'un mot de passe NWN et d'un mot de passe par personnage sur le serveur. Le joueur a la connexion doit saisir son mot de passe pour se retrouver en jeu. Il suffit de définir le mot de passe comme pattern d'un PNJ. C'est un peu gênant pour les joueurs mais c'est une solution acceptable
Je vous reexplique ce que fait mon script :

1 - un joueur se connecte apres avoir cree son perso.

Son nom de perso est enregistré avec le N° de sa clef de CD.
Ce personnage est verrouillé avec cette clef.

2 - un joueur pour la deuxieme fois avec ce personnage.

La clef de CD qui a été enregistrée la premiere fois est comparée à celle qu'il utilise cette fois ci. Si elles sont différentes, le joueur est ejecté.

Donc plus de possibilité de hacker un compte, que la clef CD soit valide ou non. Et plus de dépendance du Masterserver de bioware.



++++
Mayk
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés