Date: 13 May 2003 Ho scritto un exploit riguardo un altro effetto del "bug del segno negativo" che trovai alcuni mesi fa' nel motore di Unreal (http://aluigi.org/adv/ueng-adv-ita.txt). I programmi vulnerabili sono SOLO i clients del gioco UnrealTournament 2003 v2199 ed il demo v2206. La patch v2225 corregge il problema del gioco completo. Invece per il demo v2206 bisogno scaricare il nuovo file IpDrv da qui: Win: http://unreal.epicgames.com/files/UT2003Demo2206WindowsUpdate1.zip Linux: http://unreal.epicgames.com/files/IpDrv.so.bz2 L'exploit simula un server UT2003 che accetta connessioni sulla porta usata per le informazioni (10777) e quando un client si connette ad esso, lui gli inviera' un pacchetto UDP contenente un numero index negativo che consumera' una determinata quantita' di memoria del client remoto e puo' anche crasharlo se tale memoria non puo' essere allocata completamente (per maggiori informazioni basta dare un'occhiata all'advisory ueng-adv-ita.txt sul mio sito). L'exploit puo' essere compilato sia su Windows che su Unix: http://aluigi.org/poc/ut2003pdos.zip La miglior soluzione per un attacker e' quella di lanciare contemporaneamente l'exploit con un heartbeat emulator che fa' comparire il proprio indirizzo IP nelle liste ufficiali di Epic e quindi gli permettera' di crashare tutti i clients che vogliono fare una partita online (le richieste verranno infatti fatte automaticamente quindi quando il client vede la lista di servers) (http://ut2003master.epicgames.com/serverlist/full-all.txt). Il codice di esempio per far cio' si trova qui: http://aluigi.org/testz/ut2003ms.zip NOTA: per usare l'exploit assieme all'heartbeat emulator bisogna specificare la porta 7778 come porta d'ascolto. Per esempio: # ut2003ms e su un altra console: # ut2003pdos 300 7778 BYEZ