####################################################################### Luigi Auriemma Applicazione: Chaser http://www.chasergame.com Versioni: <= 1.50 Piattaforme: Windows Bug: buffer-overflow Exploitation: remoto, contro i clients Data: 04 Mar 2005 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Chaser e' uno sparatutto in soggettiva sviluppato da Cauldron (http://www.cauldron.sk) ed utilizza il CloakNT game engine. E' stato rilasciato da JoWood (http://www.jowood.com) in Giugno 2003. ####################################################################### ====== 2) Bug ====== Il problema e' un buffer-overflow che affligge i clients ed avviene quando si gestisce il nickname troppo grande di un giocatore che e' entrato nel server. Il bug e' pienamente sfruttabile se l'attacker controlla un server malevolo ma un modo piu' interessante di sfruttarlo avviene se l'attacker entra nel server usando un giocatore con un grande nickname. La cosa interessante in questo caso e' che il pacchetto usato per entrare contiene una firma ("miso") posizionata proprio (alla faccia della fortuna) dove viene sovrascritto l'indirizzo di ritorno della funzione vulnerabile. In breve un attacker non puo' sfruttare questo bug per eseguire codice remoto ma potra' far crashare all'istante qualsiasi client connesso al server nel quale entra. Quando il server gira in modalita' gioco (ossia non come dedicato) crashera' anch'esso in quanto in realta' e' sia server che client allo stesso tempo e quindi non fa' eccezione. Un'ultima cosa interessante riguardo il secondo tipo di attacco e' che la vulnerabilita' puo' essere sfruttata anche se il server e' protetto da password e non si conosce la parola chiave, mentre non si puo' fare nulla se il server e' pieno. ####################################################################### =========== 3) The Code =========== http://aluigi.org/fakep/chaserfp.zip Questo proof-of-concept mostra il secondo metodo che ho spiegato, usa l'opzione -d per abilitarlo. ####################################################################### ====== 4) Fix ====== No fix. Il gioco non e' piu' supportato. #######################################################################