Saturday, February 03, 2007

Mi sono stancato di blogger, ancora troppi bug... L'avventura continua su WordPress: http://2befree.wordpress.com

Thursday, February 01, 2007

MAC Address

Tanto per cambiare, per una definizione, mi avvalgo della mitica Wikipedia. Wiki definisce Mac Address (o indirizzo MAC) come:
"un codice di 48 bit (6 byte) assegnato in modo univoco ad ogni scheda di rete ethernet prodotta al mondo. Rappresenta in sostanza un nome per un particolare dispositivo di rete: ad esempio due schede di rete in due diversi calcolatori avranno due diversi nomi (e quindi diversi indirizzi MAC), così come avranno nomi diversi una scheda Ethernet ed una scheda wireless posizionate nel medesimo computer. MAC è un acronimo che significa Media Access Control e viene utilizzato per l'accesso al mezzo fisico dal livello datalink secondo lo standard ISO/OSI. La maggior parte dei protocolli di livello 2 usa uno dei tre spazi di numerazione regolati dall'IEEE: MAC-48, EUI-48, and EUI-64. Essi sono progettati per essere globalmente unici, anche se non tutti i protocolli di comunicazione richiedono tale caratteristica. L'IEEE rivendica i diritti sui nomi "EUI-48" e "EUI-64". (La sigla "EUI" sta per Extended Unique Identifier.) Il compito della conversione dagli indirizzi di livello 3 come l'Internet Protocol agli indirizzi MAC di livello 2 è comunemente demandato all'ARP. Nelle reti broadcast come l'Ethernet, il MAC address permette di identificare univocamente ciascun host e permette di contrassegnare i frame come destinati a specifici host."

Il punto principale da assimilare è che ogni scheda di rete ha un indirizzo MAC che è UNICO al mondo.

Riportando un esempio tratto da IRONGEEK potremmo simulare il seguente "dialogo" tra computer:
Computer 1 (IP = 192.168.1.1): Hey, mi rivolgo a tutti i computer presenti sulla rete (FF:FF:FF:FF:FF:FF), chi è che tra di voi ha l'IP (Internet Protocol) 192.168.1.2? Il mio indirizzo MAC è DE:AD:BE:EF:CA:FE quindi rispondetemi.
Computer 2 (IP = 192.168.1.2): Ciao DE:AD:BE:EF:CA:FE, io ho l'IP 192.168.1.2 ed il mio indirizzo MAC è 12:34:56:78:90:12, puoi quindi mandarmi i dati che desideri.

La sequenza alfanumerica utilizzata è fittizia ma potete dare uno sguardo alla vostra:
- sotto Windows, Start, Esegui, cmd, digitate "arp -a"
- sotto Linux digitate semplicemente "arp"

Ma perché tutto questo interesse verso un indirizzo MAC?
- Su un router potrebbero essere accettati soltanto determinati indirizzi MAC (es. schede di rete di computer all'interno di un'azienda o, più banalmente, di un hotel). Utilizzando tecniche di sniffing della rete diventa facile trovare degli indirizzi MAC validi, che sono cioé "abilitati" su quel dato router. Se riusciste a cambiare il vostro indirizzo MAC nell'indirizzo MAC "valido" che avete trovato avrete pure voi accesso al router: questa tecnica è chiamata MAC spoofing. Due indirizzi MAC identici sulla stessa rete potrebbero causare instabilità ma in genere non si presentano comunque grossi problemi.
- Trovando un indirizzo MAC in una rete e facendolo proprio (cioé cambiando il nostro MAC in quello che abbiamo trovato: MAC spoofing) possiamo ricevere dati che erano indirizzati al proprietario originale di quel indirizzo MAC. Per uno scopo simile è però più appropriato utilizzare una tecnica di "ARP poisoning".
- Cambiare MAC risulta anche utile per "aggirare" il problema dei log: quando avviene un'intrusione su un sistema le prime cose che l'amministratore esamina sono i log che contengono informazioni quali l'IP, il MAC e l'host. Utilizzare un MAC "fasullo" in certi casi è quindi indispensabile...

Ma come si cambia l'indirizzo MAC?
- Se utilizzate Linux:
ifconfig eth0 down hw ether 00:00:00:00:00:01
ifconfig eth0 up
- Se utilizzate Windows:
o vi decidete a passare a linux... oppure fate prima ad utilizzare appositi tools... Un interessante programma è MADMACs e viene fornito sempre dal sito IRONGEEKS. Lo potete anche trovare nella pagina di download del mio sito internet.

Thursday, January 25, 2007

Exploit

Come promesso ho aggiunto qualche exploit nella pagina dei download del mio sito web. Potete accedere direttamente alla pagina che vi interessa cliccando QUA.

Gli exploit saranno evidenetemente salvati come codici sorgenti all'interno di file testuali (estensione "txt").

Probabilmente man mano che ne aggiungerò di nuovi farò anche una divisione per categorie (es. exploit per siti web, per server, ecc). Per il momento ho creato un'unica categoria, riuscite ad indovinare quale? Microsoft...

Gli exploit sfruttano delle falle dei sistemi: tali falle posso venir "tappate" quindi vi consiglio di guardare la data in cui ho fatto l'upload dell'exploit. Se la data è recente avete probabilità molto alte che la falla non sia ancora stata riparata e che quindi l'exploit faccia "il suo lavoro".

Bill, ma che ti ridi?! <<>> Privilege escalation exploit

Il nuovo giocattolino di Bill, Microsoft Vista, è uscito da poco anche qua in Italia e già si contano i primi exploit. Mitica Microsoft! Ma quello di Vista è un altro argomento, forse prossimamente pubblicherò nel forum o nella zona download qualche exploit interessante. Per il momento cominciate a dare un'occhiata al sito PROJECTSTREAMER:

Un SEMPLICISSIMO exploit per Windows Xp grazie al quale passare dalla "cacca user" ai privilegi di una user da amministratore. Linee e linee di codice, programmi vari, approfondite conoscenze di assembler, ecc??? Assolutamente niente del genere. Tutto quello che vi serve è già incorporato nel buon vecchio Windows Xp. Tempo pochi secondi ed il gioco è fatto, avrete addirittura il potere di resettare la password dell'amministratore stesso! Sul sito che ho linkato trovate persino un comodo video che spiega passo passo le poche e semplici procedure da seguire.
Quello che stupisce maggiormente è che, pur essendo l'articolo datato (è di giugno 2006), funziona ancora alla perfezione sulla stragrande maggioranza delle macchine!

...Bill, qualcosa mi dice che nei prossimi mesi parlerò ancora di te...

Thursday, January 18, 2007

Diventare un Hacker

No, non si tratta certamente di una maxi-guida, non basterebbe un'intera enciclopedia per coprire tutte le varie sfaccettature che riguardano l'argomento! Si tratta semplicemente di saggi consigli elargiti da Daremo su un post che pubblicò nell'anno 2003. Ne pubblico un "estratto" tradotto, se trovate errori sono sicuramente dovuti alla mia traduzione e non al testo originale.


Piccola premessa. Le pene per reati di intrusione informatica & Co. sono salite dappertutto, in quasi tutte le nazioni un'intrusione può costare tranquillamente sino a vent'anni. Il gioco è cambiato, la sicurezza è più stretta, le pene più severe. Negli anni 60, negli USA, il possesso di un seme di marijuana poteva costarvi la reclusione a vita. Quei maledetti giorni rivivono oggi per gli Hacker. Le pene per una rapina in banca e quelle per un intrusione in un sistema informatico possono essere le medesime. L'unica differenza è che con l'hacking vi guadagnate una probabilità maggiore di farla franca rispetto ad un furto in banca. Di conseguenza non incamminatevi in alcuna impresa a meno che non conosciate realmente che cosa state facendo e siate disposti a essere totale responsabili delle vostre azioni. "Fare hacking" senza un'adeguata indagine sull'obiettivo è puro suicidio. Prima anche solo di pensare di intraprendere un'azione dovete come minimo fare ciò che segue:

1) Assicuratevi di essere il più nascosti possibile: catene di proxy, agite tramite una macchina sulla quale avete già precedentemente "entrati", utilizzate tecniche di spoofing e MAI E POI MAI, in nessuna circostanza, far partire un exploit da casa vostra, da scuola o dall'ufficio. Non fatelo neanche da un internet caffè: le macchine presenti in genere mantengono log dell'attività svolta. E questo ci porta la punto 2...

2) Fate "pulizia" dietro di voi... Dovreste considerare TUTTI i log dalla macchina obiettivo: ciò richiede però di avere un accesso da amministratore sul tale macchina. Non limitatevi però a cancellarli: è meglio se li editate ed eliminate soltanto le corrispondenze che vi riguardano. E' un'operazione che porta via molto tempo ma si rivela estremamente utile per la vostra sicurezza. Molto probabilmente non avrete l'accesso da amministratore in ogni macchina facente parte della vostra catena di proxy ed è un problema in quanto chiunque trovi la prima traccia può risalire a ritroso fino a voi. Se potete dovete spezzare la catena entrando in uno dei proxy che la formano e distruggendo i dati dell'hard disk (naturalmente si intende un wipe profondo, non una semplice eliminazione: i settori dell'hard disk vanno riscrittti più e più volte). Tuttavia anche procedendo in questo modo non sarete totalmente al sicuro in quanto l'hard disk potrebbe essere recuperato oppure i log del proxy potrebbero essere salvati su una macchina esterna ad esso collegato. Ora passiamo al terzo punto, come trovare un obiettivo adatto...

3) Trovare le vulnerabilità del sistema tramite tecniche di rilevamento NON INTRUSIVE. La maggior parte degli scanner utilizzano tecniche di rilevamento che risveglierebbero i morti. Questo è dovuto al fatto che il compito degli scanner è quello di fornire agli amministratori della sicurezza un mezzo per testare le proprie reti, non sono fatti per gli hacker... Per scansionare l'obiettivo utilizzate uno scanner che vi permetta un ottimo controllo sulle tecniche di scansione da utilizzare. Scanner tipo Xscan, GFI LanGuard ed altri simili sono totalmente inadatti per l'hacking. Siate inoltre sicuri di conoscere realmente COME funziona lo scanner e le sue varie opzioni. In un primo tempo scegliete una tecnica di scansione veramente "delicata", in seguito deciderete come muovervi a partire dai risultati che avrete ottenuto. Quarto punto: guardatevi dietro...

4) Trovatevi un BUON packet sniffer. Usatelo per controllare se qualcuno sta cercando di rintracciarvi. Regolatelo per vedere i pacchetti in ingresso, non solo quelli provenienti da parte dell'obiettivo ma anche quelli della sottorete di classe C. In effetti, per essere più sicuri, potreste preferibilmente analizzare anche i suoi pacchetti di classe B. Potete impostare lo sniffer per analizzare TUTTI i pacchetti in entrata e filtrare separatamente quelli provenienti dall'obiettivo da tutti gli altri. Lo potete anche impostare per lanciare un allarme ad ogni pacchetto "sospetto" comunemente utilizzato per rintracciarvi. Ora si inizia ad entrare nel vivo dell'hacking...

5) Formazione. Potreste essere considerati degli idioti se lanciate un exploit senza sapere ciò che segue:
5a) TCP/IP: come funziona, layout del pacchetto, modello OSI, ogni cosa. Come pensate di interpretare lo sniffer per vedere se vi stanno rintracciando se non sapete "leggere" un pacchetto TCP/IP?
5b) Programmazione in C: dovete essere in grado di compilare l'exploit con le vostre mani, potreste avere bisogno di farlo una volta entrati nell'obiettivo.
5c) Linguaggio Assembly: poiché molti exploit agiscono tramite shell dovete conoscere l'assembly per poter maneggiare ed aggiustare gli exploit. L'assebly vi permette un alto grado di controllo sull'obiettivo.
5d) Siate degli esperti sul sistema operativo dell'obiettivo. Come potete pensare di fare tutte le cose necessarie per realizzare l'exploit se, una volta che siete entrati, non conoscete le funzioni basilari del sistema operativo?
5e) Siate degli esperti su ogni programma che utilizzate. Punto seguente...

6) Date un'occhiata NON intrusiva attorno all'obiettivo. Cercate anche eventuali altre macchine della sottorete che potrebbero potenzialmente controllare il vostro obiettivo. Inoltre esaminate ogni firewall, router o altre infrastrutture di rete che potrebbero ostacolare od aiutare a portare a termine il vostro exploit. Analizzate l'obiettivo in cerca di un IDS (Intrusion Detection System). Assicuratevi che il potenziale obiettivo non sia un honeypot. Il fallimento nel portare avanti un'analisi sulle macchine/sulla rete INTORNO all'obiettivo è un brutto segno. Molti principianti vengono "presi" dagli honeypot o dai IDS perché non dedicano abbastanza tempo allo studio del loro obiettivo. Il lavoro di investigazione non deve essere limitato all'obiettivo ed ai suoi immediati dintorni...

7) Esaminare il WHOIS ed altri dati rilevanti sui proprietari del sistema obiettivo. Potreste anche scoprire un honeypot piazzato molto bene. Esaminando i "paper trail" potete scoprire altre reti con cui il vostro obiettivo è affiliato. Alcune di queste possono presentare un più facile accesso e condurvi ad una porta con la quale entrare nel vostro obiettivo. Alcuni amministratori provano un falso senso di sicurezza a stare dietro ai propri firewall e lasciano aperti degli accessi fra le varie sottoreti all'interno. E' un'arma che quando possibile è bene sfruttare. Tuttavia, senza procedure di sicurezza adeguate, potete essere inchiodati molto facilmente; allo stesso modo, dietro il firewall, potete essere loggati da diverse direzioni.

8) Hardware... Di cosa avete bisogno? Il consiglio è quello di procurarvi un computer portatile che sia il più piccolo, leggero e sottile possibile. Inoltre avrete bisogno di vari accessori: telefono, Ethernet, USB, ecc. Inoltre avrete bisogno di un cavo del telefono per il vostro modem che termina in morsetti a coccodrillo molto piccoli. Questo per poter utilizzare una derivazione del telefono in un posto molto calmo... Il computer dovrebbe avere le seguenti porte: ethernet, wireless, bluetooth, 56kb modem e USB. L'idea è che tutto possa essere sistemato nelle tasche o in un sacchetto nascosto sotto il vostro cappotto. Trasportare un computer molto piccolo non è un crimine (come trasportare gli attrezzi per scassinare una casa)... ma dai ai federali una opportunità... computer piccolo = prigione.

9) Software… di che cosa avete bisogno? La raccomandazione è di utilizzare Linux con un assortimento di programmi: scanners, sniffers, assembler, compilatori e guide varie. La cosa migliore è di utilizzare i codici sorgenti dei programmi disponibili per migliorarli ed adattarli alle proprie esigenze. Mentre infatti alcuni software sono abbastanza buoni molti altri non si prestano assolutamente ed essere utilizzati con tecniche "invisibili". E per finire...

10) Etica...
10a) Non commettere un crimine se non ne hai il tempo. Con questo si intende dire che non vi conviene eseguire un exploit contro una macchina senza che ne abbiate l'autorizzazione: stareste infrangendo la legge. In tal caso siate uomini (o donne) e preparatevi ad accettare l'eventuale punizione.
10b) Il beneficio che traete dalle vostre azioni deve superare il rischio che correte compiendole. Se state rubando online milioni di dollari, beh, 20 anni della vostra vita è un rischio standard da calcolare. Ma se state solo "giocando" con un vostro amico... è il caso di rischiare una condanna per una cosa simile?
10c) La Conoscenza è Potere e l'Informazione è Ricchezza.
10d) TANSTAAFL. Si tratta di un anagramma: "There Ain't No Such Thing As A Free Lunch" (traducibile con "non c'è niente come il poter consumare un pranzo all'aperto, in libertà). In pratica significa che non si ottiene niente per niente. La versione hacker della legge di conservazione dell'energia di Newton. Se il vostro obiettivo sembra troppo bello per essere vero è probabilmente una trappola.

Bene, dopo che avete preso in considerazione tutti questi punti POTREBBE essere sicuro eseguire un exploit. Ma potrebbe anche non esserlo... Se pensate che tutto questo sia troppo complicato e che ci dev'essere un modo più semplice, avete ragione. Connettetevi semplicemente da casa vostra, eseguite xscan per trovare un PC vulnerabile da su cui lanciare l'exploit. Ma tenetevi pronti degli spuntini e qualche drink perché, presto o tardi, avrete visite...


Piccola conclusione personale: se volete mettere alla prova le vostre abilità senza rischiare la prigione raggiungete la più grande comunità di hacking e sicurezza che potete trovare su internet: ASTALAVISTA. Astalavista mette infatti a disposizione alcuni server proprio con lo scopo di essere violati. Visitate inoltre la sezione download del mio sito web, troverete articoli interessanti.

Mailinator

Sempre più siti web, per poter essere navigati integralmente in tutti i loro contenuti, richiedono una registrazione con i vostri dati. Effettuata la registrazione si può accedere all'intero sito senza restrizioni, comprese quindi eventuali aree riservate o forum; altre volte siamo costretti a registrarci per poter usufruire di un servizio. E così riusciamo finalmente ad utilizzare appieno le funzionalità del servizio e a visitare quel determinato sito e via dicendo... e magari, a conti fatti, ci rendiamo conto che i contenuti/servizi a cui abbiamo avuto accesso presentano una scarsa qualità e che non li useremo mai più.
Morale della storia? Dopo varie registrazioni su siti internet cominciamo a ricevere spam o ci ritroviamo involontariamente iscritti a mailing list da cui riuscire a farsi cancellare rappresenta un'impresa epica. Soluzione? Se non strettamente necessario, durante la registrazione, non inserite il vostro indirizzo e-mail principale. Che indirizzo inserire? No, non è il caso di creare appositamente un secondo account: utilizzate il servizio messo a disposizione dal sito MAILINATOR. Vi verrà fornito un nuovo account e-mail ogni volta che fate il refresh (tasto F5) della pagina: si tratta di un servizio gratuito che in pratica vi permette la creazione di account usa e getta in meno di mezzo secondo.

Sunday, January 14, 2007

Programmazione: JAVA

Il JAVA è considerato da molti uno tra i migliori linguaggi di programmazione. Tutto ciò che è necessario per iniziare ad avvicninarsi a tale linguaggio è la JDK (Java SE Development Kit), un editor (vi consiglio l'editor gratuito NotePad++ anche se in teoria è sufficiente il semplice block notes di Windows), un buon manuale.
In rete si trovano tanti manuali, molti scaricabili gratuitamente. La maggior parte presuppone però che abbiate già un minimo di conoscenza di un qualche linguaggio. Un ottimo manuale per neofiti assoluti, che tra l'altro mi ha "iniziato" al Java, è invece quello di Claudio De Sio: "Object Oriented & Java 5". Attualmente la versione Java è la 6, il manuale non contiene quindi le ultimissime novità ma lo giudico comunque un ottimo supporto per chi come me è alle prime armi. Se poi volete, dallo stesso autore, in libreria potete trovare "Manuale di Java 6" (ISBN 8820336588). "Object Oriented & Java 5" lo potete invece scaricare dal sito dell'autore o dalla sezione download del mio sito web.

Un'altra ottima risorsa reperibile on-line è costituita dalle videolezioni dell'Università Nettuno. Si può scaricare il corso di Java completo tramite un programma Peer to Peer quale eMule. Il link per il download del file è: ed2k://fileUninettuno%20Corso%20Java%20Completo%20-%20Videocorso.zip361138908021643FE0D0EAFC43EFAAA1ABE523B51C/
Unica pecca la dimensione del file, proibitiva per chi non dispone di un collegamento a banda larga: 3,36GB.