DNS Pharming con server DHCP

Di malware della famiglia dei “DNSChanger” se ne sono visti parecchi negli ultimi tempi. DNSChanger per sistemi Mac, DNSChanger per router ADSL e DNSChanger per Windows.

Fino ad ora però la tecnica utilizzata per ogni target era sempre differente. CSRF per i router, modifica del file hosts o del registro di Windows e della modifica delle impostazioni di sistema per i Mac. Adesso è stata escogitata un nuovo modo completamente cross-platform utilizzando il protocollo DHCP. Infatti un nuovo malware segnalato da Symantec e ISC, una volta installato su un sistema Windows, manda in esecuzione, sulla medesima macchina, un server DHCP non legittimo (detto anche rogue DHCP) che di fatto si contrappone a quello già esistente, praticamente,  in tutte le LAN domestiche e aziendali. Di fatto questa cosa consente al “rogue DHCP” di far credere ai client che i server DNS da utilizzare siano quelli in possesso degli attaccanti. ISC a tal proposito segnala che i DNS utilizzati da questo ultimo attacco si trovano tra 85.255.112.0 e 85.255.127.255.

L’idea, sicuramente non nuova, ma mai utilizzata da un malware, sfrutta il fatto che il protocollo DHCP non prevede nessun metodo per verificare se la risposta arriva dal server DHCP legittimo o meno. Le richieste dei client girano sulla rete Ethernet in broadcast. In questo modo qualsiasi server DHCP presente sul dominio di broadcast sarà in grado di rispondere. Il primo, in ordine di tempo, che risponderà alle richieste dei client, sarà quello che verrà preso in considerazione.

Dopo questa premessa vorrei passare ai tool che risultano essere utili per scoprire “rogue DHCP” sulla LAN:

TIME: 2008-12-06 15:17:50.200
IP: 192.168.0.1 (XX:XX:XX:XX:XX:XX) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
OP: 2 (BOOTPREPLY)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 0
XID: a6e51638
SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.0.101
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: YY:YY:YY:YY:YY:YY:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         192.168.0.1
OPTION:  51 (  4) IP address leasetime      86400 (24h)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   192.168.0.1
OPTION:   6 ( 12) DNS server                85.37.17.55,85.38.28.93
OPTION:  15 ( 22) Domainname                domain_not_set.invalid

(Sono stati sostituiti i mac del server con XX:XX:XX:XX:XX:XX e quello del client con YY:YY:YY:YY:YY:YY)

Questo è un esempio di un DHCPACK mandato da un server DHCP dopo le richieste del client. Come si può notare il server DHCP comunica Gateway e DNS.

Ho trovato alcuni tool interessanti per monitorare richieste e risposte DHCP su una LAN:

  • DHCPloc (resurceKit di Windows)
  • DHCPdump (disponibile nei repository della maggiori distribuzioni Linux)

Dove gli antivirus non arrivano, con qualche riga di script non è difficile gestire gli alert in caso siano rilevati server DHCP non legittimi.

 

L’equo compenso dei Phisher

Custom PHP scam scriptPremetto subito che la notizia non è nuova, credo però, che sia degna di nota.

Un gruppo che si fa chiamare Mr-Brain ha rilasciato dei tool, scritti in PHP, utili a chi vuole cimentarsi in truffe a mezzo phishing. Il sito Web del gruppo offre versioni diverse degli script in base al servizio da “impersonare”: eBay, PayPal, Bank of America, ecc..

I tool sono stati scritti in modo da permetterne l’uso a chi di PHP non ne sa niente: è necessario solamente inserire la propria e-mail per ricevere i dati sensibili inseriti da ogni vittima.

I tool-kit possono essere scaricati senza sborsare denaro. Quest’ultima caratteristica e l’immediatezza d’uso hanno permesso una larga diffusione nel mondo di phisher in erba, tanto che ne erano già state individuate tracce all’inizio dell’anno.

Chi pensa che i ragazzi di Mr-Brain hanno rilasciato questi script solo per la gloria o per il gusto di sapere che verranno usati per colpire utenti non molto smaliziati sbaglia di grosso. L’idea, simpatica, degli autori è quella di prendersi un equo compenso da ogni copia usata un po come fa la cara e vecchia SIAE.

Questa è la parte di codice che si occupa della raccolta di tutti i dati inseriti dalla vittima per poi inviarli via mail:

Double mail function

Notate niente di strano?

La funzione mail() è ripetuta due volte utilizzando due nomi variabili diversi, anche se solo per la prima lettera.
Il valore della prima variabile, quella con la “s” minuscola è definibile dal phiser, mentre il valore della seconda variabile, quella con la “S” maiuscola, è settato tramite un campo del form di raccolta dati. il valore di tale campo è stato offuscato codificandolo in base64:

<input type=”hidden” name=”Send” value=”<?=base64_decode(“TXItQnJhaW5ARXZpbC1CcmFpbi5OZXQ=”);?>”>

In questo modo, i dati della vittima, oltre ad essere inoltrati a chi ha personalizzato lo script con la propria e-mail, verranno sempre inviati anche a un indirizzo di proprietà del gruppo Mr-Brain.
Che dire? Forse l’esperienza conta sempre.

 

I cinesi attaccano le PMI italiane, ne siamo sicuri?

Tra gli articoli di Punto informatico della scorsa settimana me ne è rimasto impresso uno intitolato: I cinesi attaccano le PMI italiane.

Da una indagine compiuta su un campione di 500 PMI italiane del nordest – spiega Mirko Gatto di Yarix – si evidenzia come addirittura il 49% dei casi provenga dalla Cina.

Ma quali categorie di PMI sono incluse nel campione? Cosa è stato fatto sui sistemi, una volta attaccati?
Senza questi dati mi è difficile credere allo spionaggio industriale; magari aziende in settori poco appetibili vengono attaccate quanto aziende molto interessanti per i concorrenti cinesi.

Anche la percentuale di IP cinesi registrati negli attacchi non deve essere sottovalutata. Ma chi assicura che non siano stati usati come testa di ponte?

Tra gli attacchi più utilizzati, segnalati da Yarix, vi sono anche i Cross-site Scripting (XSS). Monitorando l’utilizzo di questi ultimi sul sito vittima, non sarebbe così difficile tracciare il vero intento di un attacco. L’XSS infatti è veicolato dalla “macchina” ma sicuramente il fattore determinante, per una buona riuscita, è quello umano.

In particolare, sul campione di 500 PMI, sono stati registrati 122.500 attacchi nei primi sei mesi del 2007.

Sono abbastanza sicuro che almeno la metà di quegli attacchi era automatizzato o comunque finalizzato alla compromissione della macchina per utilizzi come “Malicious Web Server” o semplice defacement.

Speravo in un report dettagliato, ed invece nemmeno sul sito Yarix, azienda fonte della notizia, si trova niente. Peccato perchè la cosa è molto interessante.

Update: noto con piacere che non sono l’unico a pensarla in questo modo: Attacchi dalla Cina alle PMI?, di Claudio Telmon.

 

Nascondere codice PHP all’interno di immagini

Molti servizi di upload “casalingo” utilizzano solo il mime type resituito dalla funzione getimagesize() per controllare se un file è tra quelli consentiti in upload. In base a questo concetto si è arrivati alla conclusione che iniettando all’interno di un’immagine GIF codice PHP e rinominando poi il file in .php si riesce comunque ad effettuare l’upload perchè il mime type rimane inalterato in image/gif.
In questo modo una volta salvato il file sul server, senza averne cambiato l’estensione e potendolo raggiungere direttamente, sarà possibile eseguire il codice inserito all’interno dello stesso.

Ovviamente la cosa si è diffusa in rete e c’è chi ha scritto pure un documento sull’argomento, non mi sono soffermato più di tanto sugli esempi ma devo dire che può essere utile per capire quali sono i problemi derivanti da un sistema di upload pubblico.

Nell’esempio di RSnake il codice PHP viene messo in parti più o meno casuali dell’immagine GIF e vengono usati i commenti “/*” e “*/” perchè ci sono stati problemi di parsing con i dati binari che compongono l’immagine stessa. Personalmente ho creato una semplice immagine GIF di 1×1 pixel, in formato GIF89a il quale permette l’uso dei metadati, e ho salvato dentro ad essa un commento che altro non era che del codice PHP:Hide PHP code into GIF image
A questo punto ho rinominato il file in .php ed ho provato a far effettuare il parsing a mod_php sia in versione 4 che 5 e non c’è stato nessun problema. L’unico inconveniente, se così si vuole chiamare è che il parser riconosce solo il codice all’interno di “<?php ?>” quindi tutti i caratteri ASCII che compongono l’immagine saranno mandati direttamente in output:

PHP code into GIF image

Se il file GIF rinominato .php viene eseguito senza problemi dal parser PHP vuol dire che se cerco di includere l’immagine originale, con il commento che contiene codice PHP, tramite include() o require() questo verrà eseguito: si possono, quindi, usare file di immagine (GIF, PNG e JPEG) per eseguire codice tramite RFI (Remote File Inclusion). A questo punto un qualsiasi servizio di image hosting come ImageShack, Flickr, Zooomr e tanti altri può trasformarsi inconsapevolmente in un hoster di codice per RFI.
Come già detto, per ospitare codice PHP in una immagine, è possibile utilizzare, oltre al formato GIF, anche JPEG e PNG. Per farlo sarà necessario solamente utilizzare i metadati previsti dai due formati.

 

Ancora spam e malware pubblicizzato come Internet Explorer 7

Nelle ultime ore è stata rilevata una nuova variante delle e-mail di spam “Internet Explorer 7.0 Beta”. Tutte quante hanno un link verso un file eseguibile dal nome “update.exe” ospitato su diversi domini.
Per ingannare i filtri anti-spam il testo, inserito nel corpo della mail, è stato racchiuso in tag HTML in modo che ad un loro controllo risultasse una semplice conversazione tra amici e invece all’apertura dell’e-mail con un qualsiasi client di posta venisse visualizzato solamente il link al file eseguibile.

Questi gli header più significativi:

From: <admin@microsoft.com>
To: xxxxx@xxxxxxxxx.xxx
Subject: Internet Explorer 7.0 Beta

Questi i domini, per ora individuati, che ospitano il file eseguibile:

  • httx://accentstaffing.com_/images/update.exe
  • httx://mikelike.cd_/update.exe
  • httx://xoozee.cd_/update.exe
  • httx://merzingo.cd_/update.exe
  • httx://endfriends.cd_/update.exe
  • httx://netdesks.cd_/update.exe
  • httx://pleasedostock.hk_/update.exe
  • httx://wordcasts.cd_/update.exe
  • httx://abyssrecycling.co.uk_/images/update.exe
  • httx://bcweblist.com_/images/update.exe
  • httx://actorsandactresses.co.uk_/images/update.exe

(httx e l’underscore dopo il TLD sono stati inseriti per sicurezza)

Il primo nella lista, almeno nelle e-mail che ho ricevuto io, è stato quello più utilizzato. Fortunatamente già molti dei domini nella lista sono stati ripuliti e il link al file eseguibile restituisce un errore HTTP 404.

Il consiglio è quello di bloccare i domini sopra riportati tramite il proprio gateway o proxy di rete, oppure in maniera più semplice aggiungere, sul proprio server mail, dei pattern per il riconoscimento delle e-mail provenienti da “admin@microsoft.com” con oggetto “Internet Explorer 7.0 Beta”.
Per eventuali aggiornamenti rifarsi alla segnalazione dell’ISC.