Tool Test Vulnerabilità P2P Injection

Stato
Discussione chiusa ad ulteriori risposte.

Misterioso

Utente Electrum
8 Febbraio 2009
380
14
193
192
Ultima modifica:
Gentili utenti,

5 mesi dopo la prima pubblicazione riguardante un piccolo tool "Test Vulnerabilità Messenger Injection" vi ripropongo un altra piccola utility per testare se il proprio server é affetto dalla vulnerabilità riguardante l'injection tramite la porta P2P del database.

Questo tipo di vulnerabilità é nota già da parecchio tempo, ma nonostante ciò ci sono ancora server che non prendono nemmeno le minime precauzioni legate alla sicurezza avendo come conseguenza l'imminente chiusura.

Per chi non conoscesse il principio, qui di seguito rilascio una breve descrizione:

Lo scambio interno di pacchetti tra i vari cores (db, auth, game) avviene tramite le porte P2P specificate nei files di configurazione che ben conoscete. Le informazioni che viaggiano tramite questo canale, non richiedono autenticazione né viene nativamente applicato un controllo sulla provenienza dei pacchetti. Di conseguenza in caso la propria infrastruttura non viene protetta e isolata dall'esterno, un malintenzionato può inviare pacchetti arbitrari direttamente al core che gestisce i dati del DB arrivando in questo modo ad avere ad esempio 64 caratteri a disposizione per portare a termine il suo attacco.

Come nella scorsa discussione, non mi dilungo né nei dettagli riguardanti la vulnerabilità, né dei relativi fix in quanto é sufficiente chiudere la macchina in modo completo lasciando solo accessibili le porte strettamente necessarie.



Manuale d'uso
1) Creare una tabella di nome test nel database player nel server MySQL del proprio server. Non importa quante colonne abbia, é più che sufficiente un campo solo. In seguito inserita un paio di dati a caso e chiudetela.

Ad esempio:
Codice:
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`name`)
) ;

INSERT INTO `test` VALUES ('A');
INSERT INTO `test` VALUES ('Caso');
INSERT INTO `test` VALUES ('Parole');
INSERT INTO `test` VALUES ('Scrivendo');
INSERT INTO `test` VALUES ('Sto');

2) Aprire il prompt di comandi e recatevi nella cartella dell'eseguibile

3) Avviate l'eseguibile usando:
nomeFile.exe ipServer portaP2PDatabase
Esempio: P2PInjection_Test.exe 1.2.3.4 15000​

4) Verificare se la tabella creata prima sul database si é svuotata usando navicat, shell o qualsiasi altro mezzo.
In caso fosse vuota, siete affetti da questo tipo di vulnerabilità e dovete immediatamente reagire per evitare brutte sorprese...

Limitazione:
la tabella "test" deve trovarsi nel database "player", in caso si usano nomi diversi non é possibile usare questo test.


Se qualcosa non fosse chiaro, fatemi sapere e vedrò se/come posso aiutarvi.



Cordiali saluti,
Misterioso


Nota:
Non rilascio il sorgente dell'eseguibile per evitare che certi bimbi si mettano a giocare a fare i piccoli hacker sui server privati altrui.
 
Stato
Discussione chiusa ad ulteriori risposte.