links for 2007-05-31

31 05 2007




SMS Spoofing: modificare il mittente di un SMS

31 05 2007

Alla luce dell’interesse riscontrato nei confronti del precedente articolo nel quale spiegavo la procedura per modificare il CallerID di una telefonata (procedura usata da Alessandro Marzini nell’ormai famosa intervista a SkyTg24), ritorno sull’argomento spiegando come sia tecnicamente possibile modificare il mittente di un SMS.

Prima di tutto, un po’ di storia…:-)

gsm_network.pngNel 1990 l’European Telecommunication Standards Institute pubblico’ le specifiche dell’allora nuovo sistema GSM. In queste specifiche venne introdotto un sotto-protocollo, inizialmente poco conosciuto in quanto poco pubblicizzato.
Nessuno degli addetti ai lavori, nei primi anni ‘90, avrebbe mai immaginato che un servizio per l’invio di brevi messaggi di testo (Short Message Service, appunto SMS) avrebbe avuto tanto successo in futuro.
Ideato inizialmente come servizio per la diffusione di broadcast delle informazioni, aveva infatti anche la possibilità di inviare brevi messaggi tra i terminali: nessuno ci credeva, in quanto sembrava troppo complicato (e snervante!) scrivere un messaggio utilizzando esclusivamente i tasti di un cellulare (e il T9 non era ancora nemmeno all’orizzonte!).

Cos’è quindi un SMS? Si tratta di un semplice messaggio di testo di massimo 160 caratteri, in formato 7 bit.
Vengono scambiati tra cellulare e SMSC (Short Message Service Center) e fra SMSC; vengono spediti utilizzando il canale di segnalazione, permettendone quindi la ricezione anche quando i canali voce/dati sono già impegnati.

Vengono ricevuti dal terminale corredati da una serie di dati ‘accessori’: oltre (ovviamente) al testo del messaggio, il SMSC invia al cellulare tra le altre cose anche il numero del mittente e il numero del gateway utilizzato.
Nel protocollo tuttavia non è inserito alcun sistema di autenticazione, per cui non è possibile avere la certezza che il numero del mittente sia davvero quello ricevuto: il mittente infatti viene inviato dal terminale stesso all’SMSC, e c’e’ effettivamente modo di modificarlo.

Attingo quindi a piene mani da un’articolo pubblicato da Jack McKrak sul numero 8 del 30/04/2000 della storica e-zine Butchered From Inside, nel quale si tratta proprio di SMS Spoofing e delle tecniche per l’ implementazione dello stesso.

Iniziamo con una premessa

Spesso gli operatori
di telefonia mobile offrono il servizio di invio sms tramite appositi
SMS-Gateway raggiungibili via modem. Sono la stessa cosa dei vari servizi
presenti su internet, solo che in questo caso non devi compilare una form web,
ma ti colleghi via telefono e ottieni il servizio attraverso un protocollo di
comunicazione. [di protocolli] se ne usano principalmente due: il TAP e l’UCP.

E l’UCP e’ quello vulnerabile a tecniche di spoofing. Tuttavia i gateway disponibili che utilizzano l’UCP sono sempre meno. :-P

Nel protocollo UCP

si
invia una trama formattata in questo modo:

<STX> HDR DATA CRC <ETX>

dove <STX> e <ETX> sono i caratteri di start-stop rispettivamente 02h e 03h.

L’header (HDR) contiene alcuni sottocampi separati dal carattere ‘/’

TRN/LNG/OR/OPN

TRN [2 NUMERIC CHAR] e’ il numero della transizione (casuale) e varia
fra 0 e 99
LNG [5 NUMERIC CHAR] la lunghezza della trama ovvero quanti caratteri ci sono
fra <ETX> e <STX>
OR [1 CHAR] puo’ essere il carattere ‘O’ che indica la richiesta di
servizio o il carattere ‘R’ che indica risposta a una
richiesta
OT [2 NUMERIC CHAR] e’ il codice dell’operazione richiesta ed e’ il parametro
piu’ interessante.

La lista dei servizi e’ elencata (come del resto tutti gli altri parametri
tecnici) nel doc di definizione del protocollo UCP che e’ compreso nel
documento “ETS 133-3″ prodotto dall’ETSI, ovvero l’ente che in europa si
occupa di gran parte degli standard in materia di telecomunicazioni.

I servizi piu’ interessanti alla fine pero’ sono due: lo 01 e lo 02.

01 Invio di un singolo SMS
02 Invio di un SMS multiplo

Esempio di header 01/00020/O/01

Il campo DATA varia da servizio a servizio. Per lo 01 e’ composto da questi
sottocampi:

AdC/OAdC/OAC/MT/AMsg

AdC [STRING OF NUM CHAR] E’ il numero del destinatario del messaggio
visto che di solito i gateway sono fuori dall’italia
il numero e’ meglio scriverlo ad esempio come:
0039347000000 dove 0039 e’ sempre presente
OAdC [STRING OF NUM CHAR] E qui casca l’asino! Questo e’ il numero sorgente
del messaggio! Qui potete metterci qualsiasi serie
di caratteri fra 0 e 9. Anche tipo 666 o 123456 o
0000000.
Se pero’ notate i messaggi autentici indicano il
numero del mittente come +39ecc. Purtroppo il ‘+’
non si riesce a mettere e i vostri messaggi al
massimo possono arrivare da un 0039ecc.
OAC [STRING OF CHAR] Codice di autentificazione del mittente. Non so a
che cazzo serva. Va lasciato in bianco.
MT [1 NUM CHAR] Tipo di messaggio. Qui va messo sempre 3 che indica
un messaggio alfanumerico.
AMsg [STRING OF CHAR] Il messaggio vero e proprio.

Per l’AMsg va fatta una piccola digressione. Il testo non e’ scritto in
chiaro, ma va codificato in stringhe IA5: si tratta di scrivere i caratteri con la loro codifica ascii
invece che in chiaro. Questo perche’ gli ingegneri che hanno
redatto il protocollo volevano inserire un controllo di errore in piu’ visto
che per inviare un carattere cosi’ bisogna mandarne due.

Cosa forse inutile, visto che l’ultimo campo CRC e’ un controllo di errore.
Questo paramentro sono due caratteri che costituiscono un numero in
esadecimale. Il numero si ottiene prendendo le ultime due cifre significative
(esadecimali) o della somma di tutti i caratteri che compongono header e data.

Fatta questa premessa, utilizzando un software che appoggiandosi a uno di questi gateway possa inviare messaggi, e modificandolo opportunamente in modo da inviare un OAdC modificato, possiamo inviare SMS con un mittente a nostra scelta.

Il software preso in esame e’ SMSClient, un client per l’invio di sms sviluppato per linux e rilasciato sotto licenza Gpl, quindi con il sorgente disponibile e modificabile.

Una volta scaricato il sorgente si SMSClient 2.0.8, sara’ necessario sostituire il file ucp.c presente nella directory /src/driver con questa versione. Un bel make e make install e salvo imprevisti il programma e’ pronto per essere utilizzato.

Piccolo appunto sulla configurazione:

C’e’ anche una sottodir ’services’, dentro questa
ci sono i file che corrispondono ai gateway sms sparsi per il mondo.
Ovviamente ce ne sono solo alcuni e per giunta quelli piu’ conosciuti.
Questo implica che sono quelli piu’ usati e che solitamente lasciano meno
possibilita’ di smanettare e di divertirsi. Sta a voi recuperare altri numeri
di qualche gateway piu’ disponibile.
Spesso per fare andare il prog cambiate il ‘+’ nel numero del gateway
impostato in questi file con ‘00′ da chiamata internazionale (okkio a non
stare collegati troppo, nell 99% dei casi chiamate qualche paese estero).

E ora le direttive sull’utilizzo:

Ora siamo pronti per mandare un messaggio, manca solo da editare il file
‘codice’ Questo file e’ usato dalla mia modifica di ucp.c per poter mandare
comandi qualunque al gateway, senza passare dalle ridotte opzioni di
sms_client.

Create il file ‘codice’.

In questo file va messa una parte del campo HEADER e del campo DATA dell’sms
che volete inviare. Dell’header solo il campo OT, del data tutto tranne AMasg.

Ovvero, rifacendosi al messaggio ‘Satana ti vede’, dentro il file ‘codice’ va
messa questa riga di testo:

01/0039347123456/666//3

Salva il file. Ora spostalo nella dir dove e’ presente l’eseguibile sms_client
e batti

./sms_client d2:0 ‘Satana ti vede’

In questo caso Il nostro pc telefonera’ al gateway di d2 (file definito nella
dir /etc/sms/services) e cerchera’ di mandare il messaggio secondo quello che
e’ scritto nel file ‘codice’. Il programma vi fara’ vedere cosa combina passo
per passo e se tutto e’ andato a buon fine qualche vostro amico potrebbe
riconsiderare “L’Esorcista”.

Per mandare un sms multiplo il nostro file codice dovra’ contenere ad esempio
la riga

02/3/0039347123456/0039347543210/0039347234765/666//3

e partiranno 3 sms con un’unica chiamata.

Un sms bombing sara’ invece cosi’

02/20/0039347123456/0039347123456/0039347123456/0039347123456/0039347123456/
… eccetera

per i dettagli vi rimanto all’articolo completo di Jack McKrak che, vi faccio notare, risale al lontano anno 2000! (giusto per ribadire il concetto di ‘Scoperta dell’acqua calda‘) :-D





Google Maps: geomapping e salvataggio coordinate su database

31 05 2007

Ieri ho avuto il piacere di seguire l’ottimo Gianpiero nella creazione di una pagina che tramite il javascript e le solite chiamate asincrone permettesse di:

  1. Caricare un elenco di indirizzi dal database
  2. Effettuare il geomapping dei suddetti indirizzi
  3. Salvare le coordinate cosi’ ottenute sul DB.

Il risultato lo potete trovare sul blog di Gianpiero.





links for 2007-05-29

29 05 2007




links for 2007-05-28

28 05 2007




Morfik: uscita la versione 1.0.2.5

28 05 2007

Nell’ultima versione di Morfik WebOS gli sviluppatori hanno lavorato molto per correggere il noto problema di lentezza dell’ambiente…come scritto nella newsletter ufficiale:

The highlights of this release is SPEED – better than 10X faster for incremental compiles

Senza dubbio l’applicazione è piu’ reattiva e la compilazione non è piu’ biblica: comincia a essere utilizzabile! :-)





Digilab e Spoofing telefonico: la scoperta dell’acqua calda!

26 05 2007

Da qualche giorno sta girando sui blog un video di un’intervista a Alessandro Marzini (Digilab), trasmessa da Sky Tg 24 dove lo stesso Marzini parla della scoperta di una “grossa falla nel sistema telefonico che permette di falsificare il mittente di una chiamata“.

La notizia e’ rimbalzata poi anche su Punto-Informatico, che ha pubblicato una ulteriore intervista.

Beh, piu’ o meno e’ come se un giorno pubblicassi sul mio blog la notizia a caratteri cubitali Scoperta Grossa Falla nel protocollo SMTP: e’ possibile inviare mails con l’indirizzo di un’altra persona!” :-D

Con l’avvento della tecnologia VoIp, la modifica del CallerId e’ diventata infatti accessibile a chiunque: basta mettere in piedi un proprio server Asterisk, agganciarsi a un provider Voip che fornisca una certa liberta’ di configurazione (purtroppo quelli ‘free’, come VoipStunt e altri non lo permettono) e inviare chiamate con il CallerID desiderato.
Il CLI infatti altro non e’ che un dato inviato da un terminale a un’altro sulla rete (piu’ o meno come il ‘mail-from’ negli header delle email).
Cito infatti WikiPedia:

Il termine Caller ID, CLID (Calling Line IDentifier) o CLI, viene utilizzato in telefonia per identificare il numero telefonico dell’utente chiamante.

Per poter visualizzare il numero del chiamante, il ricevente deve avere un telefono compatibile CLIP (CLI Present) e una linea telefonica abilitati a ricevere l’informazione. In Italia, su linea fissa, il servizio è disponibile opzionalmente su tutte le linee PSTN mentre è un servizio incluso nel canone di abbonamento delle linee ISDN. La ricezione del CLI è abilitata in automatico su tutte le linee mobili.

La visualizzazione del CLI è soggetta anche alle impostazioni dell’utente chiamante, a questo infatti è data la possibilità di impedire al destinatario della chiamata di visualizzare il proprio numero. Questa funzionalità è comunque limitata e non vale in caso di chiamata a numeri di emergenza pubblica o a numeri verdi.

Il Caller ID è utilizzato in alcuni casi come identificativo dell’utente chiamante per garantire l’accesso a sistemi riservati (esempio significativo è quello delle segreterie telefoniche che permettono la telelettura dei messaggi) tuttavia questo metodo di autenticazione è dimostrato essere molto vulnerabile. Su Internet esistono infatti molti siti che permettono a qualsiasi utente di chiamare facendo sì che al destinatario venga visualizzato un CLI a scelta.

E di questo se n’e’ parlato abbondantemente, a partire dal talk tenuto da Lucky225 al Defcon 12 del 2004.

Girando su internet, poi, ci si imbatte in chi ha realizzato addirittura uno script per asterisk che permette, chiamando un numero registrato sul pbx, di digitare il numero dal quale si vuole far partire la telefonata, il numero da chiamare e poi far partire la chiamata con il callerID ’spoofato’, il tutto in pochissime righe di codice:

//(step 1) Prompt user for input
$agi->stream_file(’enter_spoof’); //(step 2) Grab 10 digits
$result = $agi->get_data(’beep’, 3000, 10);
//set variables and output debug info
$spoofnumber= $result[’result’];
$agi->verbose(”Spoof Number:”.$spoofnumber);

//(step 3) Prompt user for input
$agi->stream_file(’call_spoof’);
//(step 4) Grab 10 digits
$result = $agi->get_data(’beep’, 3000, 10);
//set variables and output debug info
$callnumber= $result[’result’];
$agi->verbose(”Number to call:”.$callnumber);

//(step 5) Set callerid to whatever the input was in step 2
$agi->set_callerid($spoofnumber);
//(step 6) Make call to number from input in step 3 and 4
$agi->exec(”Dial IAX2/yourpassword@provider/1″.$callnumber);

E se non sbaglio nel video tanto discusso Marzini digita un numero, attende un segnale, poi digita un’altra serie di caratteri: a occhio e croce, segue proprio i passi dettati dallo script citato qualche riga fa.

In ultimo, esistono provider Voip commerciali che forniscono nativamente la modifica del CallerID: uno tra tutti Voicetrading.com, della Betamax (la stessa di VoipStunt e VoipBuster), servizio a pagamento dedicato esclusivamente alle aziende con partita IVA.

Concludendo, a mio avviso ci si trova davanti a una classica NON notizia, come le tante che i nostrani giornalisti partoriscono quando tentano di affrontare argomenti tecnici senza averne le basi: la ‘falla’ in questione esiste da sempre , nessuno l’ha mai tenuta nascosta, quindi anche la ’scoperta’ e’ una NON scoperta! :-D

Il buon Alessandro Marzini, dal canto suo, ha cavalcato l’onda probabilmente con l’idea di fare un po’ di pubblicita’ alla Digilab; e infatti conclude l’intervista con una frase sibillina:

noi non abbiamo inventato nulla ma semplicemente scoperto qualcosa che, non saprei dire da quando, qualcuno ha utilizzato ed utilizza quotidianamente alle spalle delle gente e delle istituzioni; per questo, ci dichiariamo a disposizione di chiunque – magistratura, forze dell’ordine, avvocati, cittadini – ritenesse di dover approfondire un argomento di attualità così delicata e, perché no, anche di collaborare con gli Operatori telefonici ed offrire le nostre conoscenze.

(Gratis, vero?)





Google Video oscura Sex Crimes and the Vatican!

25 05 2007

sex_crimes_and_vatican_02.jpgCome da oggetto, Punto Informatico ha segnalato la scomparsa da GoogleVideo del controverso documentario.
Poco male, e’ possibile visionarlo in streaming direttamente dal sito di ArcoirisTV, questi link:

Guarda in Formato Real Player - ADSLGuarda in Formato Windows Media Player - ADSL





Lost: finale della terza stagione…che tristezza!

25 05 2007

Bah…che dire di questo finale? Gli autori dovevano trovare il modo di allungare il brodo per attaccare altre 2 serie…:-)

newspaperclipping2.jpgCmq, il mio grosso interrogativo (uno tra i numerosi) e’: di chi era il funerale? Dal ritaglio di giornale che Jack si rigira in mano non si riesce a interpretare molto…:-)

E comunque, lo spoiler da me pubblicato il 20 maggio su TheBloggers si e’ rivelato ‘tragicamente’ vero…:-D





Nokia N70 e Gmail: evitare il messaggio di ‘Certificato non attendibile’

24 05 2007

Comodissima la possibilita’ di scaricare i messaggi dell’account Gmail con il cellulare…

Ancora piu’ comoda la funzionalita’ che permette lo scaricamento automatizzato a intervalli regolari…

Un po’ meno comodo il messaggio che sul mio N70 appare ogni volta che viene tentato l’aggiornamento, nel quale mi viene segnalato che gmail ha inviato un ceritificato non attendibile e mi viene richiesto se continuare o no.

Per ovviare a questo problema, e’ necessario scaricare il certificato Equifax Secure Certificate Authority (DER encoded X.509), inviarlo al cellulare tramite bluetooth o connessione usb e installarlo.





Apple Store Roma Est!

22 05 2007

Giornatona piena oggi!

Mattinata passata in università: ho accompagnato la dolce metà a seguire una bella conferenza sulla conservazione del patrimonio culturale tenuta dal bravo Philippe Daverio.

foto06.jpgUscendo ho avuto il piacere di fotografare un bell’errore di Windows su un tabellone informativo. :-)

Nel pomeriggio, un salto al nuovo centro commerciale di Roma Est a dare uno sguardo all’Apple Store.

Bellissimo ambiente, i ragazzi del Genius Bar sono simpatici appassionati e preparatissimi: dopo aver pagato uno zaino per il mio ibook mi sono soffermato a fare due chiacchiere con ‘Massimo’, discutendo dei rumors riguardanti l’uscita di scena degli iMac 17” e il conseguente calo di prezzo dei ‘tagli’ superiori (non mi ha confermato apertamente la voce ma ha chiuso con un laconico “se venisse effettuato un aggiornamento della serie, la scomparsa dei 17” sarebbe una mossa probabile”).

Ora sono spalmato sulla poltrona e non ho voglia di alzarmi a cercare il cavo della macchina fotografica digitale: domani aggiorno il post e aggiungo una foto dello Store. :-)





SQL Tips: Selezionare una riga casuale da una tabella

22 05 2007

Mi e’ capitato, anche spesso, di dover selezionare una riga casuale da una tabella: senza dover scomodare il linguaggio di programmazione utilizzato per l’accesso ai dati, possiamo effettuare l’operazione direttamente da SQL.

MySQL:
SELECT * FROM tabella
ORDER BY RAND()
LIMIT 1

Microsoft SQL Server:
SELECT TOP 1 * FROM tabella
ORDER BY NEWID()

PostgreSQL:
SELECT * FROM tabella
ORDER BY RANDOM()
LIMIT 1

Oracle:
SELECT * FROM
( SELECT * FROM tabella
ORDER BY dbms_random.value )
WHERE rownum = 1

IBM DB2:
SELECT * FROM tabella
ORDER BY RAND()
FETCH FIRST 1 ROWS ONLY





Sex Crimes and Vatican: forse trasmesso da Santoro?

21 05 2007

Dopo il risalto dato al documentario dalla blogsfera, pare che Michele Santoro sia interessato ad acquistarne i diritti per trasmetterlo durante una puntata del suo AnnoZero, naturalmente accompagnato da un bel codazzo di polemiche.

Ne parla Repubblica.it.





Sex Crimes and Vatican

20 05 2007

Il blog di Matteo Flora e’ per me una fonte continua di spunti e notizie, come nel caso di questo post, dedicato a un documentario della BBC trasmesso in Inghilterra nel 2006.
In tale documentario si fa riferimento al “Crimen Sollicitationis” e a un documento di Ratzinger che rinnova il divieto a testimoniare in tribunali civili (pena la scomunica) per reati di abusi sessuali che avessero coinvolto religiosi.

Di solito non tratto questo tipo di argomenti (raramente posto articoli non tecnici o non ‘geek-oriented’) ma nel dubbio che quanto riportato nel documentario sia vero mi sembra doveroso fornire la massima visibilita’ al video in questione, considerando anche il fatto che in Italia non sia stato (ovviamente!) trasmesso.

Concludo citando due frasi dal post di Matteo:

Non sono anticattolico. Ma non vedo perché parlare dell’incriminazione degli agenti del G8 e tralasciare cose altrettanto importanti. L’informazione è libera se libera SEMPRE e non solo quando fa comodo…

e

Detto questo personalmente non credo proprio si tratti di falso, soprattutto dopo la missiva di Ratzinger ai Vescovi italiani.

Comunque sia, siate Illuminati, non credete a me ma guardate i fatti.

Ed ecco il documentario:





Loghi e suonerie, la guida definitiva alla disattivazione!

19 05 2007

L’ottimo Alessandro, ovvero l’autore del post dal quale ho tratto l’elenco dei metodi di disattivazione dei servizi in abbonamento per cellulare, ha lanciato un nuovo sito che sembra andare incontro al crescente interesse dei visitatori della blogsfera riguardo questo argomento.

Su http://disattivali.proveditrasmissione.net/ potrete trovare una lista aggiornata regolarmente con tutti i metodi per disattivare i ’servizi succhiasoldi’ legati alla telefonia cellulare.

Ringrazio anche Alessandro per avermi citato in un suo post memorabile: fortunatamente il numero di telefono che ho pubblicato nella pagina dei contatti è un interno voip al quale hanno accesso un ristretto numero di caller-id (principalmente clienti), mentre tutti gli altri finiscono dritti in segreteria…e proprio grazie a questo ‘trucchetto’, nella segreteria mi ritrovo queste primizie! :-D