|
Vous aller pas vraiment faire une plainte :P?
Sinon via le site GG au mec
Tu me dirai comment il a fait ca
J'ai les IP, j'ai le motus operandi, me manque plus que le mobile, car là j'avoue que je vois pas trop.
A moins que.. que le but du mec était de m'aider à débugger le site ?
Voyez vous c'est troublant :
1. Il n'a pas touché aux autres persos de la base de donnée (alors qu'il aurait pu)
2. Il n'a pas volé de compte GM (alors qu'il aurait pu), bon, il a tenté de chopper mon password de compte sysop, mais je pense que c'était pour la forme
3. Il a fait des modifs très visibles sur des persos qu'il a exposé en public immédiatement
4. ils étaient 2 au moins à un moment (ou alors il a quatre bras et 2 ips différentes en même temps, pour leveler 2 persos)
5. il a fait toutes ses tentatives, essais et autres bidouilles via un compte facilement identifiable : test0
6. depuis 3 jours je l'observe en live dans le site web en le suivant à la trace, et c'est comme si il me "montrait" en live les problèmes, que j'ai corrigé au fur et à mesure en observant en même temps ce qu'il allait trouver ensuite.
7. Depuis hier soir, que j'ai corrigé tout ce que j'ai pu voir, il n'y a plus aucune activité suspecte sur le site.
Bref, maintenant, je suis sur que ça interresse tout le monde de connaitre la méthode (en tout cas ce que j'ai pu en comprendre) :
Tout commence le vendredi 17 avril à 00:30 avec la création d'un perso Aemeath jamais vu sur abo, IP inconnue apparement de la ville de Montsouris, etc. Le mec sort de nulle part quoi.
Ce personnage commence humain level 1 à LH, et bute tranquillement des rats et fait la quete du vieux en rouge. à 1H du mat, il est fatigué ou lassé de leveler, et part donc se coucher.
Il revient donc à 16h le vendredi après midi et continue d'XP pendant 2 bonnes heures. Puis il va se poser au temple, et commence à essayer de hacker le site web :
Première tentative : " OR 1=1 --" failed to log in Le coup classique de tentative d'injection SQL (pour le coup... je suis presque déçu, la syntaxe "--" généralement c'est bon pour de l'ASP de Microsoft, pas pour du PHP) mais c'est pas grave. Il fera bien mieux après
Il va donc dans le site, et tente d'identifier les pages vulnérables à une injection SQL, pour cela il entre des valeurs bidons dans les différents champs, genre "\'" ou \\, ou encore ' '; mais aussi il va tenter de faire exploser les buffers de la base de donnée en entrant des "noms de personnages" de plus de 500 lettres - visiblement sans succès- etc jusqu'a trouver...
Pas de bol pour moi, il y avait une page vulnérable (à priori celle de la gestion des guildes, qui je l'avoue avait été faite un peu à l'arrache).
Le lendemain ;donc le 18 avril; il avait trouvé un moyen d'executer de l'SQL et fait ses essais sur un perso bidon créé pour l'occasion : test10 ou test0, une fois l'essai concluant, il bidouille donc son perso Aemeath, à priori par un simple changement de l'XP totale du perso (mais sans changer le level), il fait donc un truc du style : update players set XP='700000000' where name='Aemeath' bref, il se donne l'XP d'un haut level aux environs de 15h.
Il se reconnecte, et va taper des rats dans le sous sol de LH, à chaque coup porté il gagnera donc 1 level.
(Misc1),4/18/2009,9:35:43,Player Aemeath gained a level! ( now level 9 ).
(Misc1),4/18/2009,9:36:00,Player Aemeath gained a level! ( now level 10 ).
(Misc1),4/18/2009,9:36:02,Player Aemeath gained a level! ( now level 11 ).
(Misc1),4/18/2009,9:36:03,Player Aemeath gained a level! ( now level 12 ).
(Misc1),4/18/2009,9:36:04,Player Aemeath gained a level! ( now level 13 ).
(Misc1),4/18/2009,9:36:05,Player Aemeath gained a level! ( now level 14 ).
(Misc1),4/18/2009,9:36:07,Player Aemeath gained a level! ( now level 15 ).
(...)
(Misc1),4/18/2009,9:40:07,Player Aemeath gained a level! ( now level 95 ).
Une fois au level 95, il a visiblement laissé le perso de coté, satisfait du résultat, il était temps de passer à l'étape suivante.
Il se connecte et crée un nouveau perso nommé Meath, il se déconnecte immédiatement.
Il va ensuite faire la même méthode pour ce personnage, en bidouillant son XP totale, puis en allant taper des rats. Une fois au level 118 il va déconnecte, probablement qu'il avait mal calculer l'XP totale qu'il voulait, ou qu'il a été un peu plus gourmand.
Il déconnecte donc, remodifie encore un peu son XP totale et reviens pour aller apprendre ses sorts puis aller à nouveau "taper" des monstres jusqu'au level 159. Rendu là, il se dit : mince je suis à poil, je ressemble à un noob coupable de cheat. Il va donc se déconnecter, et se transférer une robe blanche ainsi qu'une fiole de liquide bleuté (pour sa quete d'accès)
Il se logue ensuite sur le perso Spasz (renommé ensuite Spawnecro) et le dépouille littéralement de tout ce qu'il avait, OR, items etc..
(Misc1),4/18/2009,13:39:25,Finished a trade between characters [ Spazs ] and [ Meath ]
(Misc1),4/18/2009,13:39:25, Character Spazs received:
(Misc1),4/18/2009,13:39:25, Character Meath received: gold pieces x15000000,
Afin de tenter de rester discret, il donne cet or à une mule qui sera plus tard chargée de faire les emplètes. Le perso en question était fete.
(Misc1),4/18/2009,13:47:02,Finished a trade between characters [ fete ] and [ Meath ]
(Misc1),4/18/2009,13:47:02, Character fete received: gold pieces x20000000,
(Misc1),4/18/2009,13:47:02, Character Meath received:
S'en suit donc une série d'achats d'items :
(Misc1),4/18/2009,13:54:44,Finished a trade between characters [ Coffre à Mages ] and [ fete ]
(Misc1),4/18/2009,13:54:44, Character Coffre à Mages received: gold pieces x950000,
(Misc1),4/18/2009,13:54:44, Character fete received: High clerist's robes x1, Golden emerald encrusted tiara x1,
(Misc1),4/18/2009,13:57:27,Finished a trade between characters [ Coffre à Mages ] and [ fete ]
(Misc1),4/18/2009,13:57:27, Character Coffre à Mages received: gold pieces x400000,
(Misc1),4/18/2009,13:57:27, Character fete received: Ring of pure faith x1,
(Misc1),4/18/2009,14:02:53,Finished a trade between characters [ fete ] and [ GalaXorI ]
(Misc1),4/18/2009,14:02:53, Character fete received: Robe of the Arch Magi x1,
(Misc1),4/18/2009,14:02:53, Character GalaXorI received: gold pieces x400000,
(Misc1),4/18/2009,14:04:07,Finished a trade between characters [ fete ] and [ GalaXorI ]
(Misc1),4/18/2009,14:04:07, Character fete received: Spider-shaped ring x1,
(Misc1),4/18/2009,14:04:07, Character GalaXorI received: gold pieces x300000,
(Misc1),4/18/2009,14:13:17,Finished a trade between characters [ fete ] and [ Meath ]
(Misc1),4/18/2009,14:13:17, Character fete received:
(Misc1),4/18/2009,14:13:17, Character Meath received: Robe of the Arch Magi x1, Golden emerald encrusted tiara x1, Ring of pure faith x1, High clerist's robes x1, Spider-shaped ring x1,
(Misc1),4/18/2009,14:14:50,Finished a trade between characters [ fete ] and [ Azorka Ivy ]
(Misc1),4/18/2009,14:14:50, Character fete received: Robe of hell x1,
(Misc1),4/18/2009,14:14:50, Character Azorka Ivy received: gold pieces x300000,
(Misc1),4/18/2009,14:16:00,Finished a trade between characters [ fete ] and [ Meath ]
(Misc1),4/18/2009,14:16:00, Character fete received:
(Misc1),4/18/2009,14:16:00, Character Meath received: Robe of hell x1,
(Misc1),4/18/2009,14:18:45,Finished a trade between characters [ Meath ] and [ Spazs ]
(Misc1),4/18/2009,14:18:45, Character Meath received:
(Misc1),4/18/2009,14:18:45, Character Spazs received: Robe of hell x1, Robe of the Arch Magi x1, Spider-shaped ring x1,
(Misc1),4/18/2009,16:16:56,Finished a trade between characters [ Meath ] and [ SpawNecro -AdN ]
(Misc1),4/18/2009,16:16:56, Character Meath received: Adamantite platemail gauntlets x1, Adamantite platemail boots x1, Adamantite platemail leggings x1,
(Misc1),4/18/2009,16:16:56, Character SpawNecro -AdN received:
Le perso Meath est donc maintenant full equipé, et visiblement sur RD.
C'est à ce moment (minuit le samedi soir) qu'entre en scène son copain : Night Shader (peut être le même qui se targue de développer un proxy/emulateur T4C sur quelques fofos suspects)
Le temps de former son compère (ou de lui faire la bidouille et de lui expliquer), et quelques 2 heures plus tard Night Shader est level 126.
Quand on est nombreux, c'est bien connu, on coute plus cher. C'est le moment de faire des folies et des placements sûrs :
(Misc1),4/18/2009,20:45:38,Player Night Shader deposited 24000000 gold (now has 24000000 gold) in the Lighthaven Bank (Mithrand).
(Misc1),4/18/2009,20:46:08,Player Night Shader deposited 800000 gold (now has 24800000 gold) in the Lighthaven Bank (Mithrand).
(Misc1),4/18/2009,20:50:36,Player Meath deposited 15000000 gold (now has 15000000 gold) in the Lighthaven Bank (Mithrand).
Il est temps d'équiper son copain :
(Misc1),4/18/2009,20:51:45,Finished a trade between characters [ Night Shader ] and [ Meath ]
(Misc1),4/18/2009,20:51:45, Character Night Shader received: Oak composite bow x1, Oak compound bow x1, Scalemail helmet x1, Scalemail gauntlets x1, Flight arrows (unlimited) x1, Scalemail armor x1, Scalemail protector x1, Scalemail boots x1, Shimmering white robe x1, Potion of serious healing x11, The Ham ! x1, Death Jester's skull x1,
(Misc1),4/18/2009,20:51:45, Character Meath received:
Night Shader part ensuite (level 126 il était temps) apprendre ses compétences de base dont l'archery qu'il va monter à 500, quelques minutes plus tard c'est Meath qui finit de placer des points en sagesse pour atteindre 355 et apprendre le sort de soin qui va avec.
Nous sommes maintenant le dimanche 19.
Meath donne ensuite 10K à Drag Vargas (pas compris pourquoi)
(Misc1),4/19/2009,0:10:45,Player Meath dropped 10000 item gold pieces ID( GOLD ) at ( 214, 684, 0 )
(Misc1),4/19/2009,0:11:05,Player Drag Vargas got 10000 item gold pieces ID( GOLD ) from ( 214, 684, 0 ).
Puis Meath s'occupe d'acheter des piles de bois pour la quête d'accès à l'ile neige.
(Misc1),4/19/2009,1:33:42,Finished a trade between characters [ Saccharose ] and [ Meath ]
(Misc1),4/19/2009,1:33:42, Character Saccharose received: gold pieces x500000,
(Misc1),4/19/2009,1:33:42, Character Meath received: Stack of demon tree wood x12,
En ne manquant pas d'aller chercher un peu d'argent de poche :
(Misc1),4/19/2009,1:34:02,Player Meath (aemeath) withdrew 2000000 gold (now has 13000000 gold) from the LightHaven Bank (Mithrand).
(Misc1),4/19/2009,1:36:27,Finished a trade between characters [ Mirrage KoS ] and [ Meath ]
(Misc1),4/19/2009,1:36:27, Character Mirrage KoS received: gold pieces x50000,
(Misc1),4/19/2009,1:36:27, Character Meath received: Stack of demon tree wood x1,
(Misc1),4/19/2009,1:38:54,Finished a trade between characters [ Night Shader ] and [ Meath ]
(Misc1),4/19/2009,1:38:54, Character Night Shader received: Stack of demon tree wood x5,
(Misc1),4/19/2009,1:38:54, Character Meath received:
Meath place ensuite encore quelques points en sagesse pour atteindre les 515 et apprendre quelques sorts utiles comme dispel/major/invis.
Et ensuite 20 minutes plus tard... Il supprime ses 2 persos Meath et Aemeath.
Il est temps de faire les choses en grand.
Il crée donc un perso Light Shader et va utiliser la même injection SQL pour bidouiller son XP, avec cette fois ci en prime un proxy type PAK process + plugin autoXP pour répartir les points automatiquement pendant le leveling (car pour le coup, ses premiers persos bidouillés, n'étaient pas parfait.. vu qu'il n'avait rien tanké)
Le perso Night Shader est supprimé également, puis rebelote :
(Misc1),4/19/2009,12:46:58,Player Night Shader gained a level! ( now level 2 ).
(Misc1),4/19/2009,12:47:07,Player Night Shader trains stats.Trained 5 points in END. 50 -> 55.
(Misc1),4/19/2009,12:47:26,Player Night Shader gained a level! ( now level 3 ).
(Misc1),4/19/2009,12:47:34,Player Night Shader trains stats.Trained 5 points in END. 55 -> 60.
(Misc1),4/19/2009,12:47:36,Player Night Shader gained a level! ( now level 4 ).
(Misc1),4/19/2009,12:47:42,Player Night Shader trains stats.Trained 5 points in END. 60 -> 65.
(Misc1),4/19/2009,12:48:03,Player Night Shader gained a level! ( now level 5 ).
(Misc1),4/19/2009,12:48:10,Player Night Shader trains stats.Trained 5 points in END. 65 -> 70.
(Misc1),4/19/2009,12:48:18,Player Night Shader gained a level! ( now level 6 ).
(Misc1),4/19/2009,12:48:29,Player Night Shader trains stats.Trained 5 points in END. 70 -> 75.
(Misc1),4/19/2009,12:48:36,Player Night Shader gained a level! ( now level 7 ).
(Misc1),4/19/2009,12:48:44,Player Night Shader trains stats.Trained 5 points in END. 75 -> 80.
(...)
(Misc1),4/19/2009,13:14:27,Player Night Shader gained a level! ( now level 49 ).
(Misc1),4/19/2009,13:14:33,Player Night Shader trains stats.Trained 5 points in END. 285 -> 290.
(Misc1),4/19/2009,13:14:35,Player Night Shader gained a level! ( now level 50 ).
(Misc1),4/19/2009,13:14:41,Player Night Shader trains stats.Trained 5 points in END. 290 -> 295.
(Misc1),4/19/2009,13:14:51,Player Night Shader gained a level! ( now level 51 ).
(Misc1),4/19/2009,13:14:57,Player Night Shader trains stats.Trained 5 points in END. 295 -> 300.
C'est ensuite le tour de Light Shader :
(Misc1),4/19/2009,13:15:05,Player Light Shader gained a level! ( now level 2 ).
(Misc1),4/19/2009,13:15:06,Player Light Shader gained a level! ( now level 3 ).
(Misc1),4/19/2009,13:15:45,Player Light Shader gained a level! ( now level 4 ).
(Misc1),4/19/2009,13:15:46,Player Light Shader gained a level! ( now level 5 ).
(..)
(Misc1),4/19/2009,13:18:11,Player Light Shader gained a level! ( now level 127 ).
(Misc1),4/19/2009,13:18:11,Player Light Shader gained a level! ( now level 128 ).
Hop, un peu d'argent de poche :
(Misc1),4/19/2009,13:25:24,Player Light Shader (aemeath) deposited 60000000 gold (now has 60000000 gold) in the Lighthaven Bank (Mithrand).
Fin de la fête ingame :
2009-04-19 16:55:31 : "test0" failed to log in from IP : xxxxxx
2009-04-19 16:55:40 : "test0" failed to log in from IP : xxxxxx
(Warning),4/19/2009,17:23:11,User test0 at IP xxxxxx tried to log on server. This account is currently locked-out.
Je désactive le site, le temps de mettre en place ce qui me permettra d'utiliser les talents de notre petit malin...
Et voila ! bonne pioche, le lendemain il reviens donc à la charge, cette fois visiblement décidé de me piquer mon compte sysop :
120; \'
120; UPDATE playingcharacters SET playername=(SELECT useraccount FROM UserAccounts WHERE 1=1) WHERE playername=\'test10\';
120; UPDATE playingcharacters, UserAccounts SET playername=[UserAccounts]![useraccount] WHERE playername=\'test10\' AND ([UserAccounts]![id]=0);
(...)
120; SELECT * FROM playingcharacters WHERE PlayerName LIKE \'%test%\';
120; SELECT * FROM playingcharacters WHERE \'a\'=\'a\';
(...)
PlayerGuilds.GuildID WHERE PlayerGuilds.UserID=120; UPDATE playercharacters SET playername = (SELECT accountname FROM playercharacters WHERE userid = 10179) WHERE (userid = 10179);
Toutes ces tentatives ont quand même permise à un moment d'identifier le nom du "compte", mais je pense que ça s'arrête là. J'ai corrigé ces failles en live, pendant qu'il cherchait, et visiblement ça l'a fait rire :
'120; UPDATE playingcharacters SET PlayerName=\'lol\' WHERE UserID=10179\'
Il a ensuite tenté d'éffacer ses traces :
'120; DELETE FROM playingcharacter WHERE AccountName LIKE \'test%\' OR \'Aemeath\'\'
PlayerGuilds.GuildID WHERE PlayerGuilds.UserID='\' --\';
Et depuis ce matin, mardi donc (visiblement il n'a rien à faire de ses journées, il est peut être en vacances scolaires ?)
(ou quelqu'un d'autre à pris le relais)
Il y va carrément avec des outils commerciaux, dont SQL Inject Me.
Là ça sent le noob...
2009-04-21 00:15:29;AM4200940904200900000029;xxxxxx;1_1
2009-04-21 00:15:29;AM4200940904200900000029;xxxxxx;_; DESC users; --
2009-04-21 00:15:29;AM4200940904200900000029;xxxxxx;1 AND USER_NAME() = _dbo_
2009-04-21 00:15:29;AM4200940904200900000029;xxxxxx;1_ AND 1=(SELECT COUNT(*) FROM tablenames); --
2009-04-21 00:15:29;AM4200940904200900000029;xxxxxx;1 AND 1=1
2009-04-21 00:15:30;AM4200940904200900000030;xxxxxx;1 EXEC XP_
2009-04-21 00:15:30;AM4200940904200900000030;xxxxxx;1_1
2009-04-21 00:15:31;AM4200940904200900000031;xxxxxx;1 AND USER_NAME() = _dbo_' AND userpassword = 'Change this to the value you want tested'
2009-04-21 00:15:32;AM4200940904200900000032;xxxxxx;1_ AND 1=(SELECT COUNT(*) FROM tablenames); --' AND userpassword = 'Change this to the value you want tested
(...)
Gagné. L'IP correspond à un joueur qui a déjà des antécédent de hacking et contre qui j'avais déjà porté plainte au commissariat y a 2 ans. Bon, bah je lock tous les comptes en attendant de voir la suite
Bref tout ca pour dire :
Merci mes amis hackers ! Vous aidez à sécuriser abo 
(par contre si ça vous dérange pas : merci d'utiliser plutot COMME TOUT LE MONDE le problem report ou me faire un email.)
|