domenica 16 novembre 2008

Shell

In un sistema operativo, la shell è il programma che permette agli utenti di comunicare con il sistema e di avviare i programmi. È una delle componenti principali di un sistema operativo, insieme al kernel. La shell è l'"ambiente di lavoro" attraverso il quale è possibile impartire al computer comandi, richiedendo l'esecuzione di programmi. Esistono molti tipi di shell, che si dividono principalmente in testuali e grafiche. Quando si parla semplicemente di "shell", si intende di solito una shell testuale.

I cracker utlizzano queste shell, come la c99, per defacciare un sito o prenderne il controllo, tramite un RFI (Remote File Inclusion) o altri metodi. Io, a differenza di altri forum, non metto la procedura per utilizzare questa shell e non metto nemmeno la fonte per poterla scaricare; evitando così qualche lamer, che viene, legge quelle poche righe, e poi un poveraccio si vede il sito distrutto, dopo averci faticato.

Consiglio comunque che chi vuole utilizzare queste shell, la utilizzi sul proprio sito per vedere se è vulnerabile a questa cosa. E se vi interessa conoscerl in modo migliore, consiglio di crearsi da soli le shell, magari con comandi banali, però dopo la soddisfazione di aver creato e capito qualcosa rimane. Dico solo di non fare casini.
L'unico aiuto che vi posso dare è di non metterla in un estensione di programmazione, ad esempio php, ma metterla in formato txt (per le shell testuali) o in formato jpg (per le shell grafiche); solo così potrà essere utlizzata.


Mi raccomando... bye

Installazione Ubuntu su Hard Disk esterno

Questa miniguida descrive come installare openSuse 10.3 su un hard disk esterno USB, utilizzando un PC il cui BIOS supporta l'avvio da disco USB. L'obiettivo è quello di avere l'hard disk esterno completamente avviabile ed evitare di modificare l'MBR del disco principale del PC.

Nota: la guida e' stata scritta in base all'esperienza affettuata su openSuSE 10.3; tuttavia la procedura non dovrebbe essere diversa per le altre distribuzioni.

Nel caso in esame i dischi sono visti da linux come /dev/sda per l'hard disk interno /dev/sdb per l'hard disk USB Pertanto le partizioni saranno individuate da /dev/sdaN quelle ricavate nel disco interno e da /dev/sdbN per quelle eventualmente presenti nel disco USB.

Per l'installazione di Linux, si collega l'hard disk usb e si avvia il sistema da DVD eseguendo una normale installazione, facendo attenzione alla scelta del disco da utilizzare per l'installazione del sistema operativo.

Procedete ora con un normale partizionamento, trovate qui un'ottima guida che vi insegna come partizionare correttamente un disco in presenza di Linux. Nella parte di configurazione del boot loader GRUB ho fatto ricorso alle "Opzioni del boot loader", ho attivato i flag in corrispondenza alle voci "Imposta il flag attivo nella tabella delle partizioni per la partizione di avvio" e "Scrivi il codice generico di boot nell'MBR". Tale configurazione evita di riscrivere l'MBR del disco principale.

Procedendo con l'installazione si arriva al punto del riavvio del sistema. Il sistema così configurato non si riavvia dal disco e quindi dovrete procedere con l'opzione "Avvia un sistema installato" disponibile nella procedura di recupero di openSuSE. Effuettuato il riavvio, YaST completerà l'installazione del sistema e vi verrà presentata la schermata di login. Il sistema installato non si avvia dal disco esterno in quanto essendo il secondo disco, il riferimento di GRUB ad esso è hd1 e quindi il riferimento alla partizione di boot è (nel mio caso) (hd1,1); in realtà per il corretto funzionamento GRUB vede come hd0 il disco in cui si è installato. Pertanto occorre modificare nel file /boot/grub/menu.lst tutti i riferimenti ad (hd1,1) in (hd0,1) e in generale tutti i riferimenti ad hd1 in hd0. Tale modifica va ovviamente eseguita con i privilegi di root e usando il vostro editor preferito.

A questo punto il sistema dovrebbe avviarsi correttamente dal disco USB esterno.

giovedì 13 novembre 2008

Esempio di un attacco ad un sistema informatico

Senza scendere nel dettaglio dei singoli programmi descrivo una tipica sessione di lavoro di un hacker su una rete. Il successo dipende da molti fattori: l'abilità dell'hacker nel conoscere i vari ambienti operativi, nel riconoscere le possibili difese dispiegate, ecc., la qualità del codice del software di intrusione, il livello di protezione del sistema da attaccare (proxy, firewalls, ecc.). E un po' di fortuna.

S'inizia col "phreaking": si lancia un "line-screener", un programma che scruta nella sequenza di numeri telefonici da 0 a N e individua le "porte" di computer (telefonici o di sistema): l'operazione è automatica ma è lunghissima ed è tipica di gruppi di phreakers professionisti che si passano questi elenchi. Così si fa anche spionaggio. A questo punto si lancia un "protocol-mapper" che aggancia per un attimo il numero telefonico del sistema da attaccare e individua il protocollo di comunicazione del sistema.

Normalmente un hacker conosce già il numero e il protocollo del sistema da attaccare. Su Internet è tutto più facile perchè gli indirizzi dei vari nodi sono identificati da un numero inconfondibile, detto IP, e il protocollo standard è il TCP/IP che governa Internet. Le porte di accesso non sono poi molto fantasiose e ci sono dei programmi che le rilevano.

Decodificato il protocollo si procede all'intrusione: con una serie di programmi (wrapper) ci si mette in linea (nascosti a valle dello sbarramento delle parole chiave) e si intercettano l'insieme dei comandi di un visitatore qualsiasi, tra cui la sua password. Con questa, poi, si entra e si lanciano vari programmi: un watchdog (cane da guardia) che ci sgancia automaticamente se le difese del sistema si sono accorte di qualcosa e sono scattate, uno sniffer (annusatore) che ci segnala e decodifica i messag gi che transitano e che ci segnala se qualcuno è sulle nostre piste. Uno degli sport preferiti dagli hackers è far scattare gli sniffer di sistema, lanciarli alla propria ricerca e seminarli senza farsi prendere.

Quindi, si fa un crack delle password di alto livello (tipicamente del supervisor, che mettono in grado di gestire l'intero sistema) e si passa ad esplorare ovunque. Si può rubare, falsificare, fare "esplodere" il sistema, ecc. MA CHI LO FA NON E' UN VERO HACKER.

Gli Hacker

Cos'è un hacker?

Un hacker è un esperto di informatica che sfrutta le proprie conoscenze per fare del bene. Risolvono problemi e costruiscono cose, e credono nella libertà e nell'aiuto reciproco; infatti agli hacker piacciono i software open source, proprio perchè credono nella libertà. Per essere accettato come hacker, devi comportarti come se anche tu avessi questo tipo di atteggiamento. E per comportarti come se avessi questo atteggiamento, devi crederci con convinzione. Un vero hacker non si definisce mai come tale, finché non sono gli altri hacker a chiamarlo in questo modo; a quel punto si è davvero degli hacker. Molte volte chi si definisce hacker non lo è veramente, ma un lamer (se ne parla tra poco). L'hacker è una persona onesta e, navigando in rete, trovasse qualche bug, lo segnalerebbe subito al webmaster; chi invece cerca di sfruttare i bug trovati, viene definito cracker (se ne parla tra poco).

Il lamer è quella persona che, priva di conoscenze informatiche, si autodefinisce hacker. Fa il grande con i conoscenti, dicendo magari di aver creato un virus o di aver defacciato un sito con una shell. In realtà, invece, il lamer non conosce nemmeno il semplice linguaggio html, però magari riesce a defacciare un sito copiando le informazioni specifiche che danno gli altri (hacker, cracker o lamer). E' da specificare che anche l'hacker sa defacciare un sito, ecc. e alcune volte scrive anche come fare, ma in modo superficiale, solo per far capire come avviene questo tipo di attacco. I lamer vengono visti in malomodo dagli hacker; infatti "lamer" è il nome che utlizzano gli hacker come dispregiativo nei confronti della gente che non ha conoscenze informatiche e crede di fare chi sa cosa.

Il cracker è una persona con conoscenze informatiche come quelle dell'hacker, solo che utlizza le sue conoscenze per fare del male; deacciare siti, prendere il controllo di forum come admin, ecc. I cracker creano virus per i loro scopi e sono anche i creatori dei siti di phising (a chi di voi non è mai arrivata una email di paypal, poste italiane o altro con un link?? beh, alcune volte reindirizzano a dei siti simili a quelli originali, solo per rubare le password di accesso).



Cosa devo sapere per diventare un hacker?

L'attitudine hacker è vitale, ma le capacità lo sono ancora di più. L'attitudine non è un sostituto della competenza, e c'è un insieme di capacità di base che devi avere prima che qualsiasi hacker si sogni di chiamarti tale.Questo bagaglio di conoscenze cambia lentamente nel tempo, man mano che la tecnologia crea nuove abilità e ne rende obsolete altre. Per esempio, esso in genere include la programmazione in linguaggio macchina e solo di recente richiede l'HTML. Al momento attuale il bagaglio di conoscenze di base prevede quanto segue:

1. Impara a programmare.
Questa, ovviamente, è la capacità fondamentale dell'hacker. Se non conosci alcun linguaggio di programmazione, ti suggerisco di iniziare con Python. È progettato in maniera chiara, ben documentato e abbastanza adatto ai principianti. Malgrado sia un buon linguaggio con il quale cominciare, non è proprio un giocattolo; è molto potente e flessibile e adatto anche a grandi progetti. Ho scritto una più dettagliata recensione su Python. Dei buoni manuali sono disponibili sul sito web di Python. Anche Java è un buon linguaggio per imparare a programmare. È più difficile di Python, ma produce un codice più veloce rispetto a Python. Lo ritengo un eccellente secondo linguaggio. Ma devi essere conscio che non raggiungerai i livelli di abilità di un hacker o più semplicemente di un programmatore se conosci solamente uno o due linguaggi - hai bisogno di imparare a pensare ai problemi legati alla programmazione in maniera più generale, indipendentemente dal linguaggio specifico. Per essere un vero hacker, hai bisogno di arrivare al punto di poter apprendere un nuovo linguaggio in pochi giorni semplicemente confrontando il manuale con quanto già sai. Questo significa che dovrai imparare parecchi linguaggi differenti tra loro. Se vuoi dedicarti seriamente alla programmazione, dovrai imparare il C, il linguaggio cardine di Unix. Il C++ è molto vicino al C; se già ne conosci uno, non ti sarà difficile imparare l'altro. Nessuno di questi due linguaggi, comunque, è adatto per iniziare ad imparare. E, al momento, quanto più riesci a evitare di programmare in C tanto più sarai produttivo. Il C è veramente efficiente, e utilizza al meglio le risorse della macchina. Sfortunatamente, C fornisce questa efficienza in cambio di una notevole mole di lavoro manuale per la gestione delle risorse (quali la memoria) ad un basso livello. Tutta la programmazione di basso livello è complessa e soggetta a bug, e ti richiederà un'enorme quantità di tempo per il debugging. Con le odierne macchine, così potenti, questo in genere rappresenta un cattivo compromesso - è più conveniente utilizzare un linguaggio che impiega in maniera meno efficiente il tempo della macchina ma che impiega più efficacemente il tuo tempo. Ad esempio, Python. Altri linguaggi di particolare importanza per gli hacker sono Perl e LISP. Perl è degno di essere appreso per ragioni pratiche; è largamente utilizzato per costruire pagine web dinamiche e per l'amministrazione di sistema; così, anche se non dovrai mai scrivere in Perl, dovresti imparare almeno a leggerlo. Molte persone usano Perl nella maniera in cui io suggerisco di usare Python, per evitare di programmare in C quei lavori che non richiedono l'efficienza della macchina che C fornisce. Avrai bisogno di essere in grado di capire il loro codice. LISP è da imparare per un altro motivo: la profonda e illuminante esperienza che proverai quando finalmente riuscirai a farlo tuo. Questa esperienza ti renderà un programmatore migliore per il resto dei tuoi giorni, anche se non lo utilizzerai poi molto. È meglio, addirittura, imparare tutti questi cinque linguaggi (Python, Java, C/C++, Perl e LISP). Oltre che essere i linguaggi più importanti per l'hacking, essi rappresentano approcci molto differenti alla programmazione, e ognuno ti educherà in maniera preziosa. Non posso fornire qui delle istruzioni complete su come imparare a programmare - è un compito complesso. Ma posso dirti che libri e corsi vari non te lo insegnano (molti, forse la maggior parte dei migliori hacker è autodidatta). Puoi imparare le caratteristiche dei linguaggi - frammenti di conoscenza - dai libri, ma l'approccio mentale che trasforma quella conoscenza in reali capacità può essere appreso solo mediante la pratica e l'apprendistato. Ciò che devi fare è (a) leggere codice e (b) scrivere codice. Imparare a programmare è come imparare a scrivere bene nel linguaggio nativo. Il miglior modo per farlo è leggere del materiale scritto dai maestri della forma, scrivere qualcosa per conto proprio, leggere molto di più, scrivere qualcosa in più, leggere molto di più, scrivere qualcosa in più... e ripetere il tutto finché la tua scrittura inizia a sviluppare la forza e l'economia che vedi nei tuoi modelli. Una volta, trovare del buon codice da leggere era un'impresa ardua, poiché esistevano ben pochi programmi disponibili anche sotto forma di codice sorgente, a disposizione degli hacker per la lettura e la manipolazione. Tutto ciò è cambiato radicalmente; software open-source, strumenti per la programmazione e sistemi operativi (tutti costruiti da hacker) sono oggi largamente disponibili. Questo mi porta al prossimo argomento...

2. Procurati un sistema Unix open-source e impara ad utilizzarlo.
Sto assumendo che tu abbia un personal computer o che possa averne accesso (questi giovani d'oggi lo ottengono facilmente :-)). L'unico passo importante che un principiante possa compiere per acquisire delle capacità da hacker è procurarsi una copia di Linux o di uno degli Unix BSD, installarlo sulla propria macchina ed utilizzarlo. Certo, ci sono altri sistemi operativi al mondo oltre a Unix. Ma sono distribuiti solo in forma di file binari - non puoi leggerne il codice sorgente e non puoi neppure modificarlo. Imparare l'hacking su macchine DOS o Windows o MacOS è come cercare di imparare a ballare mentre si è ingessati. Unix, inoltre, è il sistema operativo di Internet. Sebbene tu possa imparare ad utilizzare Internet senza conoscere Unix, non puoi essere un hacker di Internet senza capire Unix. Per questa ragione, la cultura hacker oggi è fortemente centrata su Unix. (Questo non è sempre stato vero, e alcuni hacker dei tempi andati non ne sono molto contenti, ma la simbiosi tra Unix e Internet è diventata forte abbastanza che neppure i muscoli della Microsoft sembrano in grado di rappresentare una seria minaccia.) Pertanto, procurati un sistema Unix - io amo Linux, ma ci sono altre scelte (è vero, puoi anche far girare DOS/Windows e Linux sulla stessa macchina). Impara ad usarlo. Fallo girare. Armeggiaci sopra. Usalo per connetterti a Internet. Leggine il codice sorgente e modificalo. Avrai a disposizione i migliori strumenti di programmazione (incluso C, LISP, Python e Perl) che qualsiasi sistema operativo della Microsoft possa mai sognarsi, ti divertirai, acquisirai più conoscenza di quanto saprai rendertene conto, finché non lo guarderai con gli occhi di un maestro hacker. (Nota: se sei un principiante non ti consiglio di installare Linux o BSD da solo. Per Linux, trova un Linux User Group nella tua zona e chiedi aiuto a loro oppure contatta l'Open Projects Network. LISC mantiene dei canali IRC dove puoi ottenere aiuto.)

3. Impara come usare il World Wide Web e scrivere in HTML.

La maggior parte delle cose che la cultura hacker ha costruito operano in posti assolutamente non in vista, contribuendo a far funzionare aziende, uffici e università senza alcun evidente impatto sulla vita dei non- hacker. Il Web è l'unica, grande eccezione, il gigantesco e splendido giocattolo degli hacker che, come anche i politici ammettono, sta cambiando il mondo. Basterebbe questa ragione (e ce ne sarebbero molte altre, altrettanto buone), per capire che hai bisogno di imparare come funziona il Web. Questo non significa solamente imparare ad utilizzare un browser (chiunque può farlo), ma imparare a scrivere in HTML, il linguaggio di marcatori del Web. Se ancora non sai programmare, scrivere in HTML ti fornirà delle abitudini mentali che ti aiuteranno ad imparare. Costruisci quindi una home page. (Esistono alcuni buoni tutorial per principianti sul Web; eccone uno.) Ma avere solamente una home page non è sufficiente a fare di te un hacker. Il Web è pieno di home page. Molte sono inutili, poltiglia senza contenuti, bella da vedere, certo, ma sempre poltiglia (per maggiori dettagli vedi The HTML Hell Page). Per essere meritevole, la tua home page deve avere contenuti: dovrebbe essere interessante e/o utile agli altri hacker. E questo ci porta al prossimo argomento...

4. Se non comprendi l'Inglese, imparalo.
L'inglese è la lingua base per la cultura hacker e per internet, e che avrai bisogno di conoscerlo per essere funzionale nella comunità hacker. Questo è profondamente vero. Ho saputo che molti hacker che conoscevano l'Inglese come seconda lingua utilizzavano questo nelle discussioni tecniche, anche quando condividevano informazioni con un loro connazionale; all'epoca mi fu detto che l'Inglese disponeva di un vocabolario tecnico più ricco di qualsiasi altra lingua e comunque è uno strumento migliore per il lavoro. Per ragioni analoghe, le traduzioni di libri tecnici scritti in Inglese sono spesso insoddisfacenti (quando sono fatte). Linus Torvalds, un Finlandese, commenta il proprio codice in Inglese (e apparentemente non ha mai avuto bisogno di fare altrimenti). La sua dimestichezza con l'Inglese è stata un importante fattore nella sua capacità di aggregare una comunità mondiale di sviluppatori attorno a Linux. Questo rappresenta un esempio da seguire.





Fonte per conoscenze base dell'hacking: www.ba.infn.it

domenica 9 novembre 2008

I 10 virus più pericolosi della storia

C'era una volta Cih. Tutto inizia nel 1998. Siamo agli albori di internet quando Cih viene diffuso da Taiwan: è conosciuto come uno dei peggiori della storia perché in grado di sovrascrivere file e cancellare il Bios del computer infettato, rendendone impossibile l'avvio. Sulle sue vittime erano installati Windows 95, 98 e Millenium Edition, ma è stato reso innocuo dall'evoluzione della sicurezza di Windows 2000. Secondo le stime avrebbe "bruciato" fino a 80 milioni di dollari.

Donne e amore. Nel 1999 fu Melissa a colpire il cuore dei nostri computer: "Questo è il documento che mi hai chiesto... non farlo vedere a nessuno ;-)". Tanto è bastato per provocare i nostri clic: furono infettati il 20% dei pc, con danni fino a 600 milioni di dollari.
Bruscolini rispetto al famoso "Iloveyou", che come Melissa si auto-inviava a tutta la rubrica. Inoltre copiava le username e le password registate sul computer e le mandava all'autore. Danni? Appena 10 miliardi di dollari.

I virus del nuovo millennio. "Code red" e "Sql Slammer" si attaccavano ai server web della Microsoft. Tra il 2001 e il 2003 hanno infettato oltre due milioni di computer con una velocità di diffusione ragguardevole: in mezza giornata, Slammer ha toccato 500mila computer. Danni peggiori (fino a 20 miliardi di dollari!) sono arrivati nell'agosto del 2003 da "Blaster" e da "Sobig.F". Entrambi si auto-diffondevano velocemente e si impadronivano dei computer ospitanti. Sobig.F si è disattivato automaticamente circa 20 giorni dopo, limitando i danni che poteva causare: la Microsoft ha messo una taglia di 250mila dollari sull'autore di Sobig.F. Ancora nessuno li ha incassati.

Bagle, MyDoom e Sasser. Il worm Bagle, con le sue decine di varianti, ha messo a rischio i dati personali, economici e finanziari protetti sui computer: ricevuto come allegato e attivato, creava una porta di accesso al computer tramite la quale utenti esterni potevano accedere e fare incetta di dati. Alcune sue varianti sono ancora attive.
E' stato poi il turno di MyDoom (in inglese: "il mio inferno"), il "velocista" della diffusione: già nelle prime ore, il 10% delle e-mail inviate conteneva il virus, che rallentava le performance di connessione a internet fino a un decimo. Fortunatamente, era programmato per disattivarsi in poco più di due settimane.
Ma il re dei virus è Sasser. E' riuscito, nell'aprile 2004, a chiudere le comunicazioni satellitari di alcune agenzie di stampa francesi, cancellare dei voli della Delta airlines e bloccare i sistemi di numerose compagnie in tutto il mondo. Si diffondeva sfruttando una falla di Windows 2000 e non col classico sistema via e-mail. I danni economici furono stranamente contenuti: decine di milioni di dollari. Il suo autore, un diciasettenne tedesco, non è stato incriminato perchè minorenne.

Come salvarsi da questi virus? "Con un Mac". Il consiglio arriva dalla Sophos, una delle maggiori aziende per la sicurezza dei computer. Sempre più spesso, spiegano alla Sophos, i virus vengono progettati per assalire i sistemi operativi della Microsoft. Quasi ovvio, in un mondo quasi monopolizzato da Windows: l'85% dei pc al mondo ne utilizza una qualche versione. "Sembra probabile - spiega quindi Graham Cluley, della Sophos - che i Mac continueranno ad essere più sicuri per gli utenti ancora per qualche tempo. Questo dovrebbe essere seriamente preso in considerazione da chi pensa di comprarsi un computer".

giovedì 6 novembre 2008

Team Viewer 3


Questo programma, scaricabile da TeamViewer.com permette di poter utlizzare il pc di un'altra persona... adesso spiego meglio!! quando apro questo programma, natualmente dopo aver effettuato l'installazione, si apre una piccola finestra divisa in due colonne (più o meno)... a sinistra c'è il vostro id, che serve per poter accedere da un'altro pc, e la password, che cambia ad ogni accesso (a meno che non si decida dalle opzioni di impostare sempre la solita, cosa comoda se si vuole accedere al nostro pc da un'altro)... nella colonna di destra è presente un campo in cui bisogna inserire l'id del computer a cui ci vogliamo collegare, e che tipo di collegamento vogliamo fare (consiglio supporto remoto)... se il pc a cui avete scelto di collegarvi è connesso a internet e avrà anch'esso installato TeamViewer allora potrete fare l'accesso, e vi apparirà il suo desktop... potrete muovere la freccetta e aprire cartelle e applicazioni, tutto normalmente!!! molto utile per risolvere problemi tecnici di programmi o del pc, che magari un vostro amico potrà risolvere!!!!

martedì 4 novembre 2008

Bypassare attivazione Office 2007

Su My Digital Life è stato segnalato un hack che permette di “attivare” Office 2007, o più correttamente, di bypassare l’attivazione della trial di 60 giorni di Office 2007, eliminando la dicitura trial e disattivando l’avviso di attivazione e di fine periodo di valutazione.

Per usare questo hack su Office 2007 sarà necessario installare il prodotto senza inserire alcun numero seriale o product key. My Digital Life fornisce anche delle istruzioni dettagliate che permettono di rimuovere queste informazioni dai registri nel caso siano già state inserite.

Si tratta di eliminare i due valori DigitalProductID e ProductID presenti nella sottochiave del registro relativo alla registrazione di Office 12, HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Registration.

Una volta installata la trial di Microsoft Office 2007 senza chiave prodotto, per eseguire l’hack basta modificare il file Proof.XML (in Programmi\File Comuni\Microsoft Shared\OFFICE12\Office Setup Controller\Proof.en) con un editor di testo.
Sarà necessario modificare la stringa OptionRef Id=”AlwaysInstalled” con OptionRef Id=”neverInstalled” nella sezione Feature Id=”SetupXmlFiles” Cost=”1248″.

Sarà ora possibile lanciare le applicazioni Microsoft Office 2007 come Word, Excel, Powerpoint e Outlook, senza ricevere l’avviso di attivazione del prodotto. Ovviamente si tratta di un hack e di un procedura non supportata. In mancanza di un a licenza valida e di una chiave prodotto legittima non sarà possibile accedere agli aggiornamenti per la suite disponibili su Microsoft Office Online.