Inviare eMail da Localhost con PHP

Uno dei primi settaggi fondamentali di PHP quando si lavora in locale è sicuramente la possibilità di inviare email dal proprio PC di lavoro. Per i programmatori alle prime armi o per chi ha questa necessità di inviare posta elettronica per test e prove perché magari ha installato qualche CMS può sembrare complicato, in realtà è più semplice di quello che sembra.

Per prima cosa individuiamo il file php.ini, che generalmente sta nella cartella /bin di Apache oppure nella stessa cartella di Windows, oppure ancora nella cartella /usr/local/lib su Unix. Questo perché la sua posizione cambia in base al web server installato (WAMP, XAMP, MAMP, Installazione manuale di Apache, ecc.). Se non lo trovate fate una semplice ricerca da Windows.

Aprite il file con un editor di testo e localizzate le righe che vedete in figura. Cambiate la voce SMTP inserendo il nome del vostro provider ISP (p.e. smtp.alice.it oppure smtp.tiscali.it) e mettete il vostro email nella voce sendmail_from.

Fate molta attenzione a non modificare altre voci se non sapete esattamente cosa state facendo. Ricordate inoltre di riavviare Apache dopo ogni modifica.

Nel caso vogliate usare un account Google potete utilizzare queste impostazioni:

Potete impostare la modifica di php.ini anche da PHP direttamente:

Spero vi possa aiutare…

PDF Creator    Invia l'articolo in formato PDF   

Phishing Poste Italiane, analisi di un tentativo coreano

Ho già parlato in un precedente articolo di un tentativo di phishing, questa volta analizziamo quello che ho ricevuto da un sito coreano.

La mail si spacciava come proveniente dalle Poste Italiane (poveretti, gli fischieranno le orecchie?). Le Poste sono una delle aziende più colpite da questo genere di truffe. Ecco il testo:

Dall’ ultima indagine e emerso che il fenomeno di pishing e in forte crescita, pertanto stiamo facendo controlli casuali sui conti dei nostri clienti ed il tuo conto e stato contrassegnato per la verifica manuale.

Nel attaccamento sottostante trovera la pagina di verifica che dovra compilare. Trattandosi di una misura di sicurezza la preghiamo di procedere entro e non oltre i 3 giorni lavorativi.

Avvia Procedura Di Verifica

Luana P. – Servizio clienti
Poste Italiane S.p.A. © 2012

Subito possiamo vedere i classici termini sbagliati che rendono il testo abbastanza grottesco, è addirittura sbagliata la stessa parola phishing in inglese. Comunque, allegato al mail c’era il file “login-cliente.html” contenente una pagina abbastanza simile a quelle del sito ufficiale delle Poste. Potete vederne una immagine nello screen-shot.

Phishing Poste Italiane

Fin qui è film già visto, vediamo invece se riusciamo a capire come funziona. Per prima cosa analizziamo il codice HTML (per sicurezza non aprite mai allegati sospetti con estensione .html o simili, salvateli ed apriteli con un editor). Scorrendo fino al punto dove il codice invia i dati del form cliccando sul pulsante Accedi troviamo la seguente riga:

Come possiamo notare, l’action del form invia i dati al link http://ddangfarm.com/php2root/postepay.php. Se prendiamo e scriviamo nel browser il solo dominio si aprirà un sito coreano (http://ddangfarm.com/).

Possiamo però fare di più, provare a scoprire chi c’è dietro. Basta semplicemente collegarsi con uno dei tanti siti Whois e digitare il dominio. Ecco a chi è intestato il sito coreano:

Come possiamo notare il sito scade il 31/01/2014, quindi di email ne arriveranno altre.

Ovviamente, anche se io affronto la cosa in modo divertito voi non sottovalutate mai i possibili danni derivanti da questo genere di truffe, controllate sempre bene i link e le comunicazioni. Se non siete certi al 100% del contenuto della posta elettronica chiamate telefonicamente il mittente e fatevi confermare la richiesta. Difficilmente banche, enti ed istituti chiedono di digitare i vostri dati per conferma.

Ho segnalato il tutto alla Polizia Postale ma come ben sappiamo nessuno risponde quindi si spera vengano presi provvedimenti.

 

Creare PDF    Invia l'articolo in formato PDF   

POSIX Regex deprecate da PHP 5.3

Molti script utilizzano le funzioni Regex come “ereg()” per la validazione degli email, per il controllo dello stato di un paramentro o altri input utente. Dalla versione 5.3.0 queste funzioni devono essere sostituite dalle PCRE Regex:

http://it2.php.net/manual/en/reference.pcre.pattern.posix.php

Ovviamente non mi soffermo su quanto già affrontato da PHP.net ma su come sostituire queste funzioni con le nuove, cosa che ho dovuto fare in parecchio codice scritto negli anni passati.

Prendiamo per esempio una funziona come questa:

La riga con la funzione “eregi” produce un errore di “funzione deprecabile”. La soluzione è abbastanza semplice, basta sostituire la funzione con “preg_match” e aggiungere uno slash a inizio del primo parametro e un /i alla fine dello stesso. Questo perché “eregi()” è case sensitive e il “/i” indica proprio la ricerca case sensitive.

Nel caso la funzione fosse stata per esempio un semplice “ereg()” allora basta racchiudere il primo parametro tra due slash, senza la “i”.

 

Stampante PDF    Invia l'articolo in formato PDF   

Inviare email con credenziali in VB.NET 2008

Il seguente codice l’ho usato in una applicazione scritta per un Server Windows 2008, niente di eccezzionale ma magari potrà aiutare qualcuno. Illustra l’invio di un mail con allegato un file a due indirizzi differenti, un destinatario e uno per conoscenza, verso un server SMTP che necessita di credenziali cioè di ID e Password.

Per richiamare la funzione potete usare questo comando:

Ricordate di avere la porta 25 aperta, se la porta non fosse la 25 potete impostarla con SmtpClient.Port che nel codice sopra diventerebbe client.Port.

PDF Creator    Invia l'articolo in formato PDF   

Ho trovato un fisherman

Oggi mi è arrivata questa simpatica mail con mittente “Verifid by Visa”:

Gentile Cliente,

Abbiamo rilevato attivita irregolari sul tuo Verified by Visa / MasterSecure Code Internet banking sul conto 03/01/2011.
Per la tua protezione, e necessario verificare questo attivita prima di poter continuare a utilizzare il conto.
Si prega di scaricare il documento allegato alla presente e-mail a rivedere le attivita del proprio account.
Rivedremo l’attivita sul tuo conto con voi e alla verifica, e ci consentira di eliminare le restrizioni imposte alle il tuo account.
Se scegliete di ignorare la nostra richiesta, ci lasciano scelta ma di sospendere temporaly tuo account.

Se scegli di ignorare la nostra richiesta, ci lasciano scelta di sospendere temporaneamente il tuo account.

Ti chiediamo di consentire almeno 72 ore per il caso di essere indagato e si consiglia di verificare il tuo conto in quel momento.

Con i migliori saluti,
Responsabile della comunicazione del Cliente
© Copyright Verifid By Visa 2011 – Tutti i diritti riservati

A parte la palese ridicola traduzione che evidenzia il tentativo di fishing strampalato di qualcuno che non sa l’italiano ed utilizza sistemi di traduzione automatico la parte più interessante è l’allegato in formato HTML, al mail era infatti associato il file “Verifid By Visa & MasterCard Secure Code.html” contenente un form da compilare che rimandava a questo indirizzo Internet:

http://69.84.150.184

Ed ecco la parte divertente, provate ad andare a questo IP e scoprirete cosa nasconde il nostro pescatore pasticcione. Io non credevo ai miei occhi, cliccate sulla voce “Serial Numbers” e mettete la lettera “a” nella casella di ricerca in basso, poi cliccate su search. Provate differenti lettere oppure digitate “ac” per far apparire altri programmi ancora.

Ovviamente potete visitare anche le altre parti del menù.

Ora, cosa ci insegna tutto questo? Per prima cosa è facile credere di essere grandi hacker o truffatori come questa persona mentre invece si dimostra solo di essere dei poveri furbetti di quartiere e nenache tanto bravi, inoltre, scopriamo come sia semplice verificare se le comunicazioni in arrivo nascondano in realtà possibili frodi o altro. Mi raccomando quindi, non cliccate su tutto ciò che vedete.

Per vostro diletto riporto di seguito l’immagine del form:

fisherman pasticcione

e il relativo codice HTML:

Free PDF    Invia l'articolo in formato PDF   

Offuscare l’eMail in Javascript

Spesso, nei propri siti Internet, si tende ad inserire, nella pagina dei contatti o in altre pagine, magari anche in modo ricorsivo dentro a pagine incluse, il seguente codice HTML:

Questo modo di inserire tra le proprie pagine un indirizzo email è pericoloso ed espone l’indirizzo stesso alla registrazione da parte di un programma che raccoglie email per usarli in ambienti di spamming (spambot). Le pagine HTML dei siti sono costantemente lette ed analizzate da molti software, non tutti “etici”, che sono proprio alla ricerca di indirizzi validi da archiviare e rendere disponibili a sistemi di spamming di tutti i tipi (tra i più conosciuti ci sono Sendmail, Send Safe e Dark Mailer).

Per evitare il più possibile che il nostro indirizzo email entri in circuiti di spamming e che poi comunicazioni commerciali, spesso di dubbia utilità per non dire di peggio, si può cercare di mascherarlo dalla lettura automatica di questi software che effettuano lo scan delle pagine web.

Per far questo è necessario utilizzare un linguaggio di scripting interpretato dal browser, non è possibile usare linguaggi come PHP o ASP poiché questi linguaggi sono interpretati dal server ed il risultato è tradotto in pagine HTML quindi comunque leggibili dai software di scansione o spider di indirizzi mail.

Quello che segue è un esempio di offuscatore di indirizzo mail scritto in Javascript. E’ un esempio molto semplice e basilare ma sufficientemente efficace ad inibire la lettura del proprio indirizzo mail a moltissimi software di scansione.

Un altro metodo più complesso, anche da realizzare, è quello di utilizzare i valori Unicode dei singoli caratteri che compongono l’indirizzo email.

In Javascript si può scrivere una funzione che restituisce il valore Unicode del testo passato.

In questo caso visualizzeremo i corrispondenti codici Unicode della parole “ciao”: \u0063\u0069\u0061\u006f.

Nota: ovviamente non utilizzate questo codice direttamente nelle pagine web poiché sarebbe inutile sostituire l’indirizzo email nell’equivalente Unicode lasciando comunque l’indirizzo “in chiaro” all’interno dello script! Usate lo script solo per creare il corrispondente indirizzo email in Unicode e poi pubblicate quest’ultimo.

Una tecnica alquanto più sicura ed attualmente definitiva è quella di crittografare l’email sempre realizzando un codice di offuscamento. Un esempio di criptazione sarà però oggetto di un futuro articolo.

PDF Download    Invia l'articolo in formato PDF   

Honeypot e Mail trappola anti-spam in PHP

Se fosse per me ci sarebbe già da parecchi anni, in Italia, una Legge severissima sugli spammer, con pene simili allo stalking e paragonabili a quelli sulla violenza e l’abuso. Chi invia sistematicamente (non parliamo delle offerte di mercato che un’azienda invia un paio di volte l’anno solo ai propri clienti) mail e messaggi senza esplicita richiesta del destinatario e per pubblicizzare materiale assolutamente fuori luogo sempre per il destinatario (mi riferisco per esempio a messaggi in inglese riguardanti la vendita di viagra indirizzati a casalinghe o minorenni che ritengo difficile abbiamo asplicitamente richiesto tali informazioni) dovrebbe essere interdetto dall’uso di Internet. E’ molto complesso ovviamente mettere in pratica questo ma qualche sforzo in più si potrebbe fare.

Lo spam, per chi non lo sapesse, genera, inoltre, traffico di rete e conseguente rallentamento delle operazioni, potrebbe capitare, per esempio, che un vostro mail di lavoro (penso a chi lavora con titoli di borsa o con banche) raggiunga il destinatario ormai troppo tardi a causa del rallentamento dei server di gestione della posta elettronica. Rallentamento dovuto alla mole di messaggi di spam da processare.

Come fanno i programmi che scandagliano la rete a trovare il vostro indirizzo mail e a scrivervi il tutto automaticamente? Per fare questo sono stati realizzati software che si collegano ai siti Internet e leggono il contenuto delle pagine web alla ricerca di indirizzi di posta o di siti.

Per divertirsi a combattere gli spammer con le loro stesse armi possiamo realizzare diversi sistemi-trappola, ne descrivo un paio qui di seguito.

Honeypot eMail

Un honeypot email (esistono anche gli honeypot server) è sostanzialmente un email trappola (mail fake), cioè un indirizzo mail realizzato appositamente per farsi catturare dagli spammer e raccogliere informazioni su di loro. Un software che raccoglie indirizzi mail navigando in rete difficilmente è programmato per riconoscere honeypot (barattoli di miele) quindi tende a registrare tutti gli indirizzi che trova.

L’honeypot viene quindi strutturato per riportare alcune informazioni basilari sullo spammer come per esempio l’indirizzo IP e il momento della cattura, ecco un esempio:

che crea sul vostro sito un link al seguente indirizzo:

ipspam-79.123.1.1-Tuesday-29-Dec-09-01-02-54-GMT@dominio.it

Noterete la particolare formattazione della data che riporta informazioni sufficienti a comprendere quando è stato catturato l’indirizzo da parte dello spammer. Il dominio invece deve essere reale così che i futuri mail di spam siano correttamente inviati e ricevuti. Potete ovviamente modificare tale sintassi aggiungendo altre informazioni oppure, nel caso della data, aiutandovi con quanto messo a disposizione dalle classi del PHP:

http://www.php.net/manual/en/class.datetime.php

Ricordate ovviemente di sostituire la punteggiatura non supportata dagli indirizzi email che per esempio non digeriscono gli slash.

Bene, a questo punto abbiamo sulla pagina del nostro sito un email fasullo generato ad ogni visualizzazione con i dati del momento. Passiamo ora a realizzare un server di posta elettronica. Per far questo potete configurare un computer con Microsoft Exchange Server oppure con IceWarp oppure ancora Kerio MailServer.

Fake eMail

Un secondo metodo, se non vi interessa analizzare le attività di spamming o creare dati statistici sulla posta-spazzatura generata visitando le vostre pagine web, può essere la creazione di email fasulli da riempire i database degli spammer e creargli un flusso dati di ritorno da posta inevasa che possa quanto meno disturbarne l’operato.

Il codice qui sotto riportato genera 10 indirizzi email falsi ma sintatticamente corretti per i motori di raccolta dati degli spammer, i cosidetti spambot:

Potete variare il numero di email generate e i dati in esso contenuti cambiando gli array dai quale attinge la funzione per comporre l’indirizzo.

Se posizionate lo script per esempio in fondo ad una pagina web e cambiando magari il colore degli indirizzi con lo stesso colore di fondo per renderli “invisibili” agli utenti ma non agli spambot avrete una serie di indirizzi email intercettabili dagli spammer ma che non disturberanno i navigatori umani della pagina. Il risultato sarà quello di riempire i database degli spammer con email inesistenti e conseguente traffico di ritorno di email inevase.

PDF    Invia l'articolo in formato PDF