Newsgroup: it.comp.www.php
Titolo: Giusto per dare un po' di fastidio ai fishers

Per quelli che ogni tanto guardano il log del server, si saranno accorti della
crescita esponenziale degli attacchi su include($_GET['xxx']) ai danni degli
sprovveduti che hanno attivato la devastante funzionalita' allow_url_include
nel php.ini.
Questi parametri cercano di indurre a scaricare ed eseguire degli script
troiani dal nome tipico id.txt, safe.txt, save_8.gif, css.txt o altri, che
contengono il codice che serve al fisher per identificare se il suo script e'
stato eseguito e identificare il sistema vittima; il fisher poi puo'
liberamente usare la vittima come zombie per le solite pratiche di spamming o
quant'altro. Questi attacchi colpiscono i soliti piccoli siti hostati a quattro
soldi, dove poi montano Joomla, formmail e altri colabrodo di sicurezza, ma non
mancano anche siti aziendali apparentmente curati e presidiati.
Ebbene, negli ultimi gg ho provato un po' ad indagare con questi fishers,
cosi', giusto per curiosita'. Ho scoperto che:
- i sistemi vittime che ospitano i troiani sono parecchie centinaia, forse
  migliaia, e ne individuo una 50-tina ogni giorno
- le vittime, informate della presenza del troiano, in generale si limitano
  a rimuovere il troiano ma poi se lo ribeccano nel giro di uno o due gg al
  massimo ==> avvisarli e' in genere una inutile perdiata di tempo
- il codice troiano usato e' piu' o meno sempre lo stesso, con poche varianti:
  fa un echo "Mic22" o altra stringa (che serve al fisher per verificare se
  il suo script e' stato eseguito) e poi a seguire i dati del sistema vittima
- i server che sparano insistentemente gli URL contraffatti sono circa 150,
  contati tra oggi e ieri
- filtrando dal firewall gli IP di queste macchine, le richieste contraffatte
  si riducono del 90%
- ne segue che i responsabili di tutto questo traffico sono una manciata di
  persone introno al mondo, ci vorrebbe poco a neutralizzarli
- da parte nostra mettere sempre nel php.ini:
allow_url_fopen = Off
allow_url_include = Off
e seguire tutte le guide alla sicurezza per la programmazione PHP (validare i
dati acquisiti, upload dei file fuori della docroot, attenzione agli header di
mail() e le solite raccomandazioni che tanto i novizi non seguiranno mai
comunque).
Per divertirmi un po', oggi ho anche messo in tutte le pagine del mio sitino
questo codice che intercetta le richieste con parametri del tipo x=http:// e
risponde picche:
function fisher_detector()
{
    if( $_SERVER['REQUEST_METHOD'] !== 'GET' )
        return;
    foreach( $_GET as $v ){
        if( substr($v, 0, 4) === 'http' ){
            header("HTTP/1.1 666 Fishing request detected");
            exit(0);
        }
    }
}
Ovviamente non bisogna avere parametri GET legittimi che iniziano con http,
altrimenti e' un pasticcio :-)
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

Umberto Salsi ha scritto:

ma il primo e' sempre http:
piu che alto hai la lista di ip da mettere in evidenza ?


 ma il primo e' sempre http:
----------------
Che vuoi dire?
Che tu passi dati che iniziano con "http" ???
solitamente avviene qualcosa del genere:
www.miosito.it/pagina1.php?quale=220
"

   massimo ==> avvisarli e' in genere una inutile perdiata di tempo
mettere una shell, entrare e formatttagli l'hd?
oppure localizzarli e staccargli la corrente?
oppure raccogliere dati sull'amministratore e mettergli delle foto
satiriche personali?
ti bastano come metodi di persuasione? :)

 piu che alto hai la lista di ip da mettere in evidenza ?
Prendo i log del server Apache, un po' di grep/sed/sort/uniq assortiti, ed ecco
la mia lista. Lo puoi fare anche tu. Se non hai accesso al log, allora puoi
mettere un po' di codice PHP all'inizio di ogni pagina che ti intercetta i dati
utili (IP, data, URL, REFERRER, ...) e li scrivi su file. Altrimenti vai su
www.spamhaus.org
 e trovi addirittura nomi e cognomi degli spammers (ne elenca
circa 200).


 wrote:

Piu' che altro ho capito perche' gli ISP, sebbene vedano montagne di spam
uscire verso la porta TCP 25, non bloccano i loro utenti: avvisarli non serve,
chiudergli l'account fa scappare il cliente, aiutarli a risolvere il problema a
gratis non rende, ... E' un problema.


On 4 Giu, 07:04, Umberto Salsi <sa...@icosaedro.italia> wrote:

k,,,,, il problema e' il loro server...